В каждом профиле наверху текстом указывается группа, к которой пользователь принадлежит. Например "Писатели" или "Пользователи".
Как бы исхитриться, чтобы сделать по ссылке (что в любом темплейте) вверху профиля - вызов сортировки, по которой выводились бы все пользовователи, которые принадлежат к данной группе (в данном случае "Писатели" или "Пользователи")? (Если делать разные группы на сайте, необходимая фишка получается)
По идее как в общем списке сайт.ру/users выводить список юзеров группы, только показываются только те, кто в данной группе ?
Буду благодарен за любую реальную подсказку по поводу вызова(использования) (функции\запроса) по группам пользователей.
Как сделать сортировку по Группам пользователей
Сообщений: 150 |
Редактировалось: 3 раз (Последний: 22 августа 2010 в 20:20) VPS от 7.65$ - Включен ISP Manager, 256Ram, 500Mhz CPU и 5Gb - использую уже почти два года. | ||||
Сообщений: 437 |
1) В шаблоне com_users_profile.tpl поправим вывод группы пользователя. Для этого поменяем статический текст на ссылку. Вместо строки: Код PHP: Напишем: {if $cfg.showgroup}<div class="usr_group" style="float:right">{$usr.grp}</div>{/if}Код PHP: 2) Поправим Файл components\users\router.php {if $cfg.showgroup}<div class="usr_group" style="float:right"><a href="group{$usr.group_id}">{$usr.grp}</a></div>{/if}После строчек Код PHP: Напишем новое правило: //RewriteRule ^users/hobby/(.*)$ /index.php?view=users&do=hobby&hobby=$1
$routes[] = array(
'_uri' => '/^users\/hobby\/(.+)$/i',
'do' => 'hobby',
1 => 'hobby'
);Код PHP: 3) Ну и в заключение в components\users\frontend.php //RewriteRule ^users/group([0-9]*).html$ /index.php?view=users&do=group&group_id=$1
$routes[] = array(
'_uri' => '/^users\/group([0-9]+)$/i',
'do' => 'group',
1 => 'group_id'
);
перед: Код PHP: напишем://///////////////////////////// SEARCH BY CITY ///////
if ($do=='city'){
.....
....
......
}
Код PHP: Теперь нажав на ссылку-название группы в профиле пользователя нас перенесет на страницу поиска пользователей, где поиск будет именно по группе. /////////////////////////////// SEARCH BY GROUP //////////////////////////////////
if ($do=='group'){
$group_id = $inCore->request('group_id', 'int');
$querysql = "SELECT u.*, p.*, u.id as id, u.regdate as fregdate, u.logdate as flogdate
FROM cms_users u, cms_user_profiles p
WHERE u.is_locked = 0 AND p.user_id = u.id AND u.group_id = $group_id AND u.is_deleted = 0
";
$sql = "SELECT title FROM cms_user_groups WHERE id = $group_id LIMIT 1";
$result = $inDB->query($sql) ;
if ($inDB->num_rows($result)){
$group = $inDB->fetch_assoc($result);
$querymsg = '<div class="con_description"><strong>Поиск по группе: </strong> '.$group['title'].' (<a href="/users/all.html">'.$_LANG['CANCEL_SEARCH'].'</a>)</div>';
}
$do = 'view';
}
Вот. Как-то так. На сколько я понял суть вопроса... | ||||
Сообщений: 0 |
| ||||
Сообщений: 150 |
Александр, большое спасибо! То самое что нужно было. 2Админы: мб если не сложно, можно включить в офф. релиз такую сортировку? имхо оч. удобно для пользователей, если делать групп больше, чем юзеры-модеры-админы VPS от 7.65$ - Включен ISP Manager, 256Ram, 500Mhz CPU и 5Gb - использую уже почти два года. | ||||
Сообщений: 437 |
Еще одно спасибо Так скоро разбогатею | ||||
Сообщений: 1779 |
Невозможно сделать CMS, угодив всем. Любой КОНКРЕТНЫЙ проект требует СВОЕЙ доработки - иногда большой, а иногда и не очень. Не вижу смысла включать данный хак в оф релиз. При наличии базовых знаний и желания таких сортировок можно сделать много, как видите это совсем не сложно. | ||||
Сообщений: 0 |
Отличная штука!!!! Автору сенкс большой!!! И в продолжении развития темы... А можно-ли сделать так, что бы при регистрации пользователь сам выбирал в какой группе ему быть. Естественно, что про админство и модераторство речи не идет. Допустим, создаем несколько групп: футболисты, хоккеисты, теннисисты.... болельщики. Они "открыты в доступе", у каждого свои привилегии. А при регистрации пользователь сам выбирает с кем ему водиться. И таким образом болельщикам очень легко будет отыскать нужное. | ||||
Сообщений: 0 |
Глубоко извиняюсь перед Александром. Поиск никто не отменял, и, представьте, нашел ответ на вопрос выше изложенный, написанный всё тем же Александром. Спасибо. | ||||
Сообщений: 42 |
| ||||
Сообщений: 257 |
не работает на 1.9 |
| В начало страницы |
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.
