Use user cards for user search results.

This commit is contained in:
flash 2019-04-14 01:20:04 +02:00
parent 58457634e0
commit 03a6e15fe1
4 changed files with 71 additions and 15 deletions

View file

@ -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;

View file

@ -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

View file

@ -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('

View file

@ -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">