Сейчас друзья пользователя в профиле выводятся по порядку их добавления….Таким образом постоянно одни и те же лица в друзьях пользователя… Вот есть у меня 50 друзей, а в поле зрение попадают только первые 6, про остальных 44 как бы и не вспоминаю…
Я подумал, а что если сделать вывод друзей по дате посещения.
Онлайн | Онлайн | 2 часа назад | 5часов назад |12 часов назад |1 день наза|
Таким образом в поле зрения будут периодически попадать все друзья.
Подскажите как сделать такой вывод друзей в профиле.
#1
23 января 2012 в 23:03
Компонент users
файл frontend.php
строка
usrFriends вот функция отвечающая за вывод
её искать в папке includes компонента users
файл usercore.php
там в запросе $sql нужно, скорее всего добавить order by u.logdate
эта функция также отвечает за вывод друзей, так что лучше новую создать (ну это я предполагаю конечно) ну или оставить всё как есть и тогда люди и в друзьях будут так выводиться.
Сам не проверял. Предположил что так правильно будет.
файл frontend.php
строка
$usr['friends'] = usrFriends($usr['id'], $usr['friends_total'], 6);
её искать в папке includes компонента users
файл usercore.php
там в запросе $sql нужно, скорее всего добавить order by u.logdate
эта функция также отвечает за вывод друзей, так что лучше новую создать (ну это я предполагаю конечно) ну или оставить всё как есть и тогда люди и в друзьях будут так выводиться.
Сам не проверял. Предположил что так правильно будет.
#3
25 января 2012 в 00:07
Спасибо Михаил!
order by u.logdate desc Кажется помогло…
order by u.logdate desc Кажется помогло…
Сегодня в 08:49
#4
25 января 2012 в 02:03
А можно по подробнее где какой запрос изменить? А то их там достаточно.
В файле \components\users\includes\usercore.php
найдите такую строчку- function usrFriends($user_id, &$total, $perpage=10, $page=1){
Ниже в запрос вставляете- order by u.logdate desc
должно быть так:
найдите такую строчку- function usrFriends($user_id, &$total, $perpage=10, $page=1){
Ниже в запрос вставляете- order by u.logdate desc
должно быть так:
$sql = "SELECT CASE WHEN f.from_id = $user_id THEN f.to_id WHEN f.to_id = $user_id THEN f.from_id END AS id_friends, u.id as id, u.nickname as nickname, u.login as login, u.is_deleted as is_deleted, u.status, p.imageurl as avatar, u.logdate as flogdate, o.id as online FROM cms_user_friends f LEFT JOIN cms_users u ON u.id = CASE WHEN f.from_id = $user_id THEN f.to_id WHEN f.to_id = $user_id THEN f.from_id END LEFT JOIN cms_user_profiles p ON p.user_id = u.id LEFT JOIN cms_online o ON p.user_id = o.user_id WHERE (from_id = '$user_id' OR to_id = '$user_id') AND is_accepted =1 ORDER BY u.logdate desc LIMIT ".(($page-1)*$perpage).", $perpage"; $result = $inDB->query($sql) ;
#6
25 января 2012 в 03:44
Спасибо, работает!
#7
25 января 2012 в 03:48
А вот хотелось бы узнать можно их как нибудь выравнять? А то у кого имя короткое оно маленькое а кого большое они большие, и смотрится как то то больше то меньше, хотелось бы в одинаковый размер всех поставить.