Форум -> Обо всём... -> Доступ группы к определенному модулю |
Доступ группы к определенному модулю |
---|
Artur | Дата: 18.12.2007, в 11:18 | Сообщение №1 |
УчастникПользователь №: 184 Сообщений: 66
| Serg_pnz возможно ли сделать доступный один из модулей только одной из групп чтоб даже пользователи сайта не могли его видеть до тех пор пока не попадут в эту группу для 2,5 lite
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно Serg_pnz 19.01.2009 г. в 10:45:22 |
|
|
|
Serg_pnz | Дата: 18.12.2007, в 11:44 | Сообщение №2 |
АдминистраторПользователь №: 1 Сообщений: 2242
| лог из асиЦитата | Serg
кстати ты в группы будешь сам народ сажать или они будут туда попадать по мере набирания баллов?
Artur
по мере набирания баллов и еще одна група в которую я сам буду сажать
|
Если создать группу, то в админке, при редактировании свойств модуля, появится поле, где можно указать какой группе открыт доступ к этому модулю.
К сожалению нельзя выбрать несколько групп. Поэтому предлагаю следующий вариант: модуль ставим доступным только определенной спецгруппе.
Так же пишем хак, который отслеживает сколько пользователь набрал очков. Как только пользователь набирает нужное количество - он переносится в спецгруппу.
Вариант 2. Назначаем модуль для обыкновенной группы. Тогда, что бы админ сам мог пропихнуть юзера, он идет в админку и редактирует свойства юзера, добавив ему необходимое количество очков.
Оба варианта имеют свои преимущества и недостатки в плане общего планирования учета рейтинга на сайте. Поэтому надо сначала всё хорошенько продумать - сколько будет групп и как будут распределяться очки. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
Artur | Дата: 18.12.2007, в 11:54 | Сообщение №3 |
УчастникПользователь №: 184 Сообщений: 66
| Serg_pnz первый вариант с написанием хака мне подходит больше |
|
|
Serg_pnz | Дата: 19.12.2007, в 10:39 | Сообщение №4 |
АдминистраторПользователь №: 1 Сообщений: 2242
| Нашел косячек в слаеде. Как протестю до конца - выложу хак | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
Serg_pnz | Дата: 26.12.2007, в 16:00 | Сообщение №5 |
АдминистраторПользователь №: 1 Сообщений: 2242
| Правим function/function.php
Код | 1
| function is_group($user, $name) {
global $prefix, $db;
if (is_user($user)) {
$uid = intval($user[0]);
list($points, $group) = $db->sql_fetchrow($db->sql_query("SELECT user_points, user_group FROM ".$prefix."_users WHERE user_id='$uid'"));
#====# начало вставки #===#
$ugr_perenos = 1; //в какую специальную группу зачислим при достижении нужного количества очков
$o4kov = 30; //сколько пунктов надо набрать, что бы попасть в специальную группу
if ($ugr_perenos != $group AND $points > ($o4kov-2)) {
$db->sql_query("UPDATE ".$prefix."_users SET user_group=".$ugr_perenos." WHERE user_id='$uid'");
}
#====# конец вставки #===#
list($mgroup, $grpoints, $grextra) = $db->sql_fetchrow($db->sql_query("SELECT m.mod_group, g.points, g.extra FROM ".$prefix."_modules AS m LEFT JOIN ".$prefix."_groups AS g ON (m.mod_group=g.id) WHERE m.title='$name'"));
if (intval($group) && $group != "" && $group == $mgroup && $grextra == "1") {
return 1;
} elseif (((intval($points) && $points >= $grpoints) || $mgroup == 0) && $grextra != "1") {
return 1;
}
}
return 0;
} |
| Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
Artur | Дата: 26.12.2007, в 17:50 | Сообщение №6 |
УчастникПользователь №: 184 Сообщений: 66
| спасибо большое Serg_pnz, |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|