Вход

View Full Version : много интересных вопросов (может только для меня?)


kim
05.08.2005, 20:18
1. Создано несколько групп пользователей: Group_1, Group_2, Group_3.
Как распределить несколько пользователей по этим группам через Нюку не
используя там всякие наборы баллов? Ручками так сказать определить
пользователям группу.
2. Есть секция Download, в ней есть разделы: Razdel_1, Razdel_2, Razdel_3. Как сделать так чтобы Razdel_1 был виден только Group_1 и никому больше? И так по аналогии с другими разделами для групп.
3. Как сделать так чтобы разным пользователям разных групп показывалась разная начальная страница и меню? Вообще разные версии сайта для разных пользователей и групп?
4. Как сделать так чтобы разным пользователям разных групп на форуме показывались не все темы а только те которые им определит для просмотра администратор?
:oooo:

Soniks
05.08.2005, 20:38
kim
1. http://forum.mynuke.ru/showthread.php?t=279
2. делать проверку в модуле по анологии как это устроино в файле modules.php при проверке доступа к модулю конкретной группы.
3. Ну к примеру написать отдельный модуль и сделать там проверку на группы, и вывод информации зависищая от группы в которую входит данный пользователь.
4. в форуме есть отдельные настройки групп, там можно задать права конкретной группы разделу форума.

kim
05.08.2005, 21:40
С первым вопросом понятно - создал, сделал.
Со вторым вопросом нифига не получается :sad:
Один юзер в групе, у которой по идее есть доступ к скачке. Второй юзер просто зарегистрирован но не в группе.
В правах доступа к модулю определен доступ зарегистрированным пользователям плюс группе. На деле оказывается, что доступ получают и те кто в группе и те кто не в группе. Как быть??? :englishma
И если не сочтете за труд, подскажите где примерно делать проверку чтобы определенной группе выводилась своя категория в разделе скачки и никакая больше. В каком месте файла, ну и небольшая помощь от вас. Просто пока в нюке мало понимаю, но пхп хорошо знаю.

Soniks
05.08.2005, 23:46
kim
насчет доступа только группы а не пользователя, найди в файлу modules.php
} else if ($view == 1 AND (is_user($user) OR is_group($user, $name)) OR is_admin($admin)) {

и замени на:
} else if ($view == 1 AND (is_user($user) AND is_group($user, $name)) OR is_admin($admin)) {


а насчет Даунлода, то это надо добавить проверку в скажем функцию index() (может и в другую придется)
напримет такую:
перед первым $sql запросома из таблицы _downloads_categories
добавить проверку типа:

global $user, $cookie, $admin;
cookiedecode($user);
$result = $db->sql_query("SELECT points FROM ".$user_prefix."_users WHERE user_id='$cookie[0]'");
$row = $db->sql_fetchrow($result);
$points = intval($row['points']);
if (($points >= 0 AND $points >= 40) AND is_user($user) OR is_admin($admin)) {
$cid_t = "1,2,3";
}

где,
40 - это чисто очков данной группы.
дальше можно продолжить проверку таким же образом, перечисляя все нужные вам очки, т.е все нужные вам группы и для каждой задовать свои $cid_t
$cid_t - id категории, которая будет видна данной группе.

а далее в сам запрос после WHERE parentid='0' добавляем:
AND cid IN ($cid_t)
в принципе все.

kim
07.08.2005, 04:21
На счет даунлоада все помогло. Теперь пользователям только определенной группы видны только им назначенные разделы. Только маленькое дополнение:
вместо global $user, $cookie, $admin;
надо global $user, $cookie, $admin, $user_prefix;
Плюс дополнительная проверка на баллы для групп. И все работает.
Авот относительно первой части поста - я ничего не понял!!!???

Soniks
07.08.2005, 18:25
kim в что именно не понятно? я же не телепат...

kim
08.08.2005, 08:27
насчет доступа только группы а не пользователя, найди в файлу modules.php
...
и замени на:

Soniks
08.08.2005, 10:48
kim ну так выполните и будет у вас доступ по указанным группам