Как сделать сортировку по Группам пользователей

 
Посетитель
small user social cms
Медаль
Сообщений: 146
В каждом профиле наверху текстом указывается группа, к которой пользователь принадлежит. Например "Писатели" или "Пользователи".

Как бы исхитриться, чтобы сделать по ссылке (что в любом темплейте) вверху профиля - вызов сортировки, по которой выводились бы все пользовователи, которые принадлежат к данной группе (в данном случае "Писатели" или "Пользователи")? (Если делать разные группы на сайте, необходимая фишка получается)

По идее как в общем списке сайт.ру/users выводить список юзеров группы, только показываются только те, кто в данной группе ?

Буду благодарен за любую реальную подсказку по поводу вызова(использования) (функции\запроса) по группам пользователей.
Редактировалось: 3 раз (Последний: 22 августа 2010 в 20:20)
VPS от 7.65$ - Включен ISP Manager, 256Ram, 500Mhz CPU и 5Gb - использую уже почти два года.
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
1) В шаблоне com_users_profile.tpl поправим вывод группы пользователя. Для этого поменяем статический текст на ссылку.

Вместо строки:
Код PHP:
  1. {if $cfg.showgroup}<div class="usr_group" style="float:right">{$usr.grp}</div>{/if}
Напишем:
Код PHP:
  1. {if $cfg.showgroup}<div class="usr_group" style="float:right"><a href="group{$usr.group_id}">{$usr.grp}</a></div>{/if}
2) Поправим Файл components\users\router.php

После строчек
Код PHP:
  1. //RewriteRule ^users/hobby/(.*)$ /index.php?view=users&do=hobby&hobby=$1
  2. $routes[] = array(
  3. '_uri' => '/^users\/hobby\/(.+)$/i',
  4. 'do' => 'hobby',
  5. 1 => 'hobby'
  6. );
Напишем новое правило:

Код PHP:
  1. //RewriteRule ^users/group([0-9]*).html$ /index.php?view=users&do=group&group_id=$1
  2. $routes[] = array(
  3. '_uri' => '/^users\/group([0-9]+)$/i',
  4. 'do' => 'group',
  5. 1 => 'group_id'
  6. );
  7.  
3) Ну и в заключение в components\users\frontend.php

перед:

Код PHP:
  1. /////////////////////////////// SEARCH BY CITY ///////
  2. if ($do=='city'){
  3. .....
  4. ....
  5. ......
  6. }
  7.  
напишем:

Код PHP:
  1. /////////////////////////////// SEARCH BY GROUP //////////////////////////////////
  2. if ($do=='group'){
  3.  
  4. $group_id = $inCore->request('group_id', 'int');
  5.  
  6. $querysql = "SELECT u.*, p.*, u.id as id, u.regdate as fregdate, u.logdate as flogdate
  7. FROM cms_users u, cms_user_profiles p
  8. WHERE u.is_locked = 0 AND p.user_id = u.id AND u.group_id = $group_id AND u.is_deleted = 0
  9. ";
  10. $sql = "SELECT title FROM cms_user_groups WHERE id = $group_id LIMIT 1";
  11. $result = $inDB->query($sql) ;
  12.  
  13. if ($inDB->num_rows($result)){
  14. $group = $inDB->fetch_assoc($result);
  15. $querymsg = '<div class="con_description"><strong>Поиск по группе: </strong> '.$group['title'].' (<a href="/users/all.html">'.$_LANG['CANCEL_SEARCH'].'</a>)</div>';
  16. }
  17.  
  18. $do = 'view';
  19.  
  20. }
  21.  
Теперь нажав на ссылку-название группы в профиле пользователя нас перенесет на страницу поиска пользователей, где поиск будет именно по группе.

Вот. Как-то так. На сколько я понял суть вопроса...
Реклама
cms
Sometime CMS Community
Посетитель
no avatar
Сообщений: 24
Посетитель
small user social cms
Медаль
Сообщений: 146
Александр, большое спасибо! То самое что нужно было.

2Админы: мб если не сложно, можно включить в офф. релиз такую сортировку? имхо оч. удобно для пользователей, если делать групп больше, чем юзеры-модеры-админы
VPS от 7.65$ - Включен ISP Manager, 256Ram, 500Mhz CPU и 5Gb - использую уже почти два года.
Модератор
small user social cms
МедальМедаль за отзывчивостьКубок зрительских симпатий
Сообщений: 435
Александр, большое спасибо! То самое что нужно было.

Еще одно спасибо laugh

Так скоро разбогатею zst
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4338
L.B.Griffin:
2Админы: мб если не сложно, можно включить в офф. релиз такую сортировку?
Да что уж там, давайте вообще все включим - все хаки, модули в официальную сборку. Чтоб прямо сразу скачал и опа нате вам сайт.

Невозможно сделать CMS, угодив всем. Любой КОНКРЕТНЫЙ проект требует СВОЕЙ доработки - иногда большой, а иногда и не очень. Не вижу смысла включать данный хак в оф релиз. При наличии базовых знаний и желания таких сортировок можно сделать много, как видите это совсем не сложно. v
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Sometime CMS Community
Посетитель
no avatar
Сообщений: 35
Отличная штука!!!! Автору сенкс большой!!!
И в продолжении развития темы... А можно-ли сделать так, что бы при регистрации пользователь сам выбирал в какой группе ему быть. Естественно, что про админство и модераторство речи не идет. Допустим, создаем несколько групп: футболисты, хоккеисты, теннисисты.... болельщики. Они "открыты в доступе", у каждого свои привилегии. А при регистрации пользователь сам выбирает с кем ему водиться. И таким образом болельщикам очень легко будет отыскать нужное. v
Sometime CMS Community
Посетитель
no avatar
Сообщений: 35
Глубоко извиняюсь перед Александром. Поиск никто не отменял, и, представьте, нашел ответ на вопрос выше изложенный, написанный всё тем же Александром. Спасибо.
Посетитель
small user social cms
Сообщений: 52
Fuze:
Вот вот, а ещё всевозможный контент, что бы потом не парится с написанием, так-же все которые на данный момент есть шаблоны, с всевозможными вариантами.
Грамотно и умело поставленный вопрос позволяет получить всю необходимую информацию
Если тебе не нравится что я пишу-закрой глаза, а лучше свой рот!
Посетитель
small user social cms
Медаль
Сообщений: 256
не работает на 1.9
Посетитель
small user social cms
Медаль
Сообщений: 166
Хорошо было бы под 1.10.3
Устанавливаю и настраиваю. (Почта в профиле)
Посетитель
small user social cms
Медаль
Сообщений: 243
Поддерживаю, под 1.10.3 было бы круто)
Бесплатный хостинг? http://api.hostinger.ru/redir/1345261
Посетитель
small user social cms
Медаль
Сообщений: 243
Может быть попробовать сделать так что бы вместо "Интересы" было выбор "Групп". Потому что пункт "Интересы" уже есть в поиске. Но наверное это даже сложнее)
Бесплатный хостинг? http://api.hostinger.ru/redir/1345261
Посетитель
small user social cms
Медаль
Сообщений: 243
Александр, ну где же вы?
Бесплатный хостинг? http://api.hostinger.ru/redir/1345261
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
По многочисленным просьбам Доротеи, набросал данный хак для 1.10.3. Глянуть можно здесь логин test пароль 123456.
В профиле ссылка "группы".Файлы здесь, не забываем подключить файл menu_pols.css.
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.