Use user cards for user search results.
This commit is contained in:
parent
58457634e0
commit
03a6e15fe1
4 changed files with 71 additions and 15 deletions
|
@ -2,6 +2,8 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 2px;
|
||||||
|
|
||||||
&__item {
|
&__item {
|
||||||
margin: 2px;
|
margin: 2px;
|
||||||
|
|
|
@ -101,8 +101,8 @@ $getUsers = db_prepare(sprintf(
|
||||||
:current_user_id AS `current_user_id`,
|
:current_user_id AS `current_user_id`,
|
||||||
u.`user_id`, u.`username`, u.`user_country`,
|
u.`user_id`, u.`username`, u.`user_country`,
|
||||||
u.`user_created`, u.`user_active`, r.`role_id`,
|
u.`user_created`, u.`user_active`, r.`role_id`,
|
||||||
COALESCE(u.`user_title`, r.`role_title`) as `user_title`,
|
COALESCE(u.`user_title`, r.`role_title`) AS `user_title`,
|
||||||
COALESCE(u.`user_colour`, r.`role_colour`) as `user_colour`,
|
COALESCE(u.`user_colour`, r.`role_colour`) AS `user_colour`,
|
||||||
(
|
(
|
||||||
SELECT COUNT(`topic_id`)
|
SELECT COUNT(`topic_id`)
|
||||||
FROM `msz_forum_topics`
|
FROM `msz_forum_topics`
|
||||||
|
@ -139,10 +139,10 @@ $getUsers = db_prepare(sprintf(
|
||||||
WHERE `user_id` = u.`user_id`
|
WHERE `user_id` = u.`user_id`
|
||||||
AND `subject_id` = `current_user_id`
|
AND `subject_id` = `current_user_id`
|
||||||
) AS `user_is_follower`
|
) AS `user_is_follower`
|
||||||
FROM `msz_users` as u
|
FROM `msz_users` AS u
|
||||||
LEFT JOIN `msz_roles` as r
|
LEFT JOIN `msz_roles` AS r
|
||||||
ON r.`role_id` = u.`display_role`
|
ON r.`role_id` = u.`display_role`
|
||||||
LEFT JOIN `msz_user_roles` as ur
|
LEFT JOIN `msz_user_roles` AS ur
|
||||||
ON ur.`user_id` = u.`user_id`
|
ON ur.`user_id` = u.`user_id`
|
||||||
WHERE ur.`role_id` = :role_id
|
WHERE ur.`role_id` = :role_id
|
||||||
%1$s
|
%1$s
|
||||||
|
|
|
@ -26,12 +26,62 @@ if (!empty($searchQuery)) {
|
||||||
$findForumPosts->bindValue('query', $searchQuery);
|
$findForumPosts->bindValue('query', $searchQuery);
|
||||||
$forumPosts = db_fetch_all($findForumPosts);
|
$forumPosts = db_fetch_all($findForumPosts);
|
||||||
|
|
||||||
$findUsers = db_prepare('
|
$findUsers = db_prepare(sprintf(
|
||||||
SELECT `user_id`, `username`
|
'
|
||||||
FROM `msz_users`
|
SELECT
|
||||||
WHERE LOWER(`username`) LIKE CONCAT("%", LOWER(:query), "%");
|
:current_user_id AS `current_user_id`,
|
||||||
');
|
u.`user_id`, u.`username`, u.`user_country`,
|
||||||
|
u.`user_created`, u.`user_active`, r.`role_id`,
|
||||||
|
COALESCE(u.`user_title`, r.`role_title`) AS `user_title`,
|
||||||
|
COALESCE(u.`user_colour`, r.`role_colour`) AS `user_colour`,
|
||||||
|
(
|
||||||
|
SELECT COUNT(`topic_id`)
|
||||||
|
FROM `msz_forum_topics`
|
||||||
|
WHERE `user_id` = u.`user_id`
|
||||||
|
AND `topic_deleted` IS NULL
|
||||||
|
) AS `user_count_topics`,
|
||||||
|
(
|
||||||
|
SELECT COUNT(`post_Id`)
|
||||||
|
FROM `msz_forum_posts`
|
||||||
|
WHERE `user_id` = u.`user_id`
|
||||||
|
AND `post_deleted` IS NULL
|
||||||
|
) AS `user_count_posts`,
|
||||||
|
(
|
||||||
|
SELECT COUNT(`subject_id`)
|
||||||
|
FROM `msz_user_relations`
|
||||||
|
WHERE `user_id` = u.`user_id`
|
||||||
|
AND `relation_type` = %1$d
|
||||||
|
) AS `user_count_following`,
|
||||||
|
(
|
||||||
|
SELECT COUNT(`user_id`)
|
||||||
|
FROM `msz_user_relations`
|
||||||
|
WHERE `subject_id` = u.`user_id`
|
||||||
|
AND `relation_type` = %1$d
|
||||||
|
) AS `user_count_followers`,
|
||||||
|
(
|
||||||
|
SELECT `relation_type` = %1$d
|
||||||
|
FROM `msz_user_relations`
|
||||||
|
WHERE `user_id` = `current_user_id`
|
||||||
|
AND `subject_id` = u.`user_id`
|
||||||
|
) AS `user_is_following`,
|
||||||
|
(
|
||||||
|
SELECT `relation_type` = %1$d
|
||||||
|
FROM `msz_user_relations`
|
||||||
|
WHERE `user_id` = u.`user_id`
|
||||||
|
AND `subject_id` = `current_user_id`
|
||||||
|
) AS `user_is_follower`
|
||||||
|
FROM `msz_users` AS u
|
||||||
|
LEFT JOIN `msz_roles` AS r
|
||||||
|
ON r.`role_id` = u.`display_role`
|
||||||
|
LEFT JOIN `msz_user_roles` AS ur
|
||||||
|
ON ur.`user_id` = u.`user_id`
|
||||||
|
WHERE LOWER(u.`username`) LIKE CONCAT("%%", LOWER(:query), "%%")
|
||||||
|
GROUP BY u.`user_id`
|
||||||
|
',
|
||||||
|
MSZ_USER_RELATION_FOLLOW
|
||||||
|
));
|
||||||
$findUsers->bindValue('query', $searchQuery);
|
$findUsers->bindValue('query', $searchQuery);
|
||||||
|
$findUsers->bindValue('current_user_id', user_session_current('user_id', 0));
|
||||||
$users = db_fetch_all($findUsers);
|
$users = db_fetch_all($findUsers);
|
||||||
|
|
||||||
$findNewsPosts = db_prepare('
|
$findNewsPosts = db_prepare('
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{% extends 'home/master.twig' %}
|
{% extends 'home/master.twig' %}
|
||||||
{% from 'macros.twig' import container_title %}
|
{% from 'macros.twig' import container_title %}
|
||||||
{% from '_layout/input.twig' import input_text %}
|
{% from '_layout/input.twig' import input_text %}
|
||||||
|
{% from 'user/macros.twig' import user_card %}
|
||||||
|
|
||||||
{% set title = search_query|length < 1 ? 'Search' : 'Looking for ' ~ search_query %}
|
{% set title = search_query|length < 1 ? 'Search' : 'Looking for ' ~ search_query %}
|
||||||
{% set canonical_url = url('search-query', {'query': search_query}) %}
|
{% set canonical_url = url('search-query', {'query': search_query}) %}
|
||||||
|
@ -44,11 +45,14 @@
|
||||||
|
|
||||||
<div id="users" class="container container--lazy">
|
<div id="users" class="container container--lazy">
|
||||||
{{ container_title('Users (%s)'|format(users|length|number_format)) }}
|
{{ container_title('Users (%s)'|format(users|length|number_format)) }}
|
||||||
{% for user in users %}
|
|
||||||
<a href="{{ url('user-profile', {'user': user.user_id}) }}" class="link">
|
<div class="userlist">
|
||||||
{{ user.username }}
|
{% for user in users %}
|
||||||
</a><br>
|
<div class="userlist__item">
|
||||||
{% endfor %}
|
{{ user_card(user) }}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="news" class="container container--lazy">
|
<div id="news" class="container container--lazy">
|
||||||
|
|
Loading…
Add table
Reference in a new issue