Права доступа к просмотру профилей, к поиску и пр. для групп

Форум для авторов модов для phpBB 2.0.x. Здесь можно попросить помощи в разработке у коллег.

Права доступа к просмотру профилей, к поиску и пр. для групп

Сообщение dnk 30.07.2007 17:41

Пока еще выходит и дорабатывается phpbb 3, где это уже есть, мне захотелось сделать такую функцию на ныне используемом phpbb 2
Суть: Произвести модификацию кода движка так, чтобы через админку можно было задавать конкретным группам право на просмотр:

а) Профилей участников
б) Право пользования поиском
в) Списка участников
г) Списка групп
д) Списка администрации (Staff site mod)

Ниже привожу мод, основанный на моде Manage guest permissions
См. вложение:

В чем проблема: даже несмотря на то, что в базе по указанным полям устанавливаются нули (отключаю просмотр для конкретной группы), все равно просмотр остается разрешенным.
Как мне кажется нужно в коде
Код: Выделить всё
$group_profile_yes = ( $group_info['group_profile'] ) ? "checked=\"checked\"" : "";

вместо переменной $group_info указывать переменную $group_list и ее же указать в скриптах memberlist.php, serach.php и остальных
Код: Выделить всё
if ( $group_list['group_memberlist'] = 0 )
{

   message_die(GENERAL_MESSAGE, $lang['only_members_memberlist']);
    exit;
}


Помогите разобраться
Вложения
Group view permissions.zip
(2.15 Кб) Скачиваний: 118
Последний раз редактировалось dnk 30.07.2007 18:40, всего редактировалось 2 раз(а).
dnk
phpBB 2.0.9
 
Сообщения: 371
Зарегистрирован: 23.08.2006 19:34

Сообщение dnk 08.08.2007 20:21

Может кто-нибудь помочь?
dnk
phpBB 2.0.9
 
Сообщения: 371
Зарегистрирован: 23.08.2006 19:34

Сообщение chipp 08.08.2007 22:08

dnk п.3.5 правил
Хочешь задать вопрос? Подумай! Может его уже задавали? Поиск жжет! И еще: если ошибка на буржуйском, на то есть словарь:!:
Аватара пользователя
chipp
phpBB 2.0.1
 
Сообщения: 127
Зарегистрирован: 14.03.2007 0:46
Откуда: Беларусь, Минск

Сообщение dnk 08.08.2007 22:14

chipp
...в течении 5 суток с момента последнего ответа в тему
- последнее сообщение было 30 июля.Лучше бы помогли решением проблемы.
dnk
phpBB 2.0.9
 
Сообщения: 371
Зарегистрирован: 23.08.2006 19:34

Сообщение Палыч 08.08.2007 22:16

chipp
Вот, совершенно не к месту.
А для вас, в данном случае, скорее 2.9 :evil:

dnk
Ну так сами попробуйте ваш же рецепт и убедитесь.
Судя по приведённому коду, по-моему, вы правы.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Никогда не бойся делать то, что ты пока не умеешь. Помни, что Ковчег был построен любителем. Профессионалы строили Титаник...
Аватара пользователя
Палыч
Просто Палыч
 
Сообщения: 6166
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер

Сообщение dnk 09.08.2007 0:36

Палыч
Нет, не работает у меня он.
В admin_groups.php можно ставить только код
Код: Выделить всё
$group_info
, так как
Код: Выделить всё
$group_list
работать не будет - это раз.
Во-вторых, даже если в скриптах типа memberlist.php или staff.php указываю
такое:

Код: Выделить всё
if ( !$group_info['group_staff'] || !$board_config['guest_staff'])
{
if( !$userdata['session_logged_in'])
  {
    message_die(GENERAL_MESSAGE, $lang['only_members_staff']);
    exit;
}   
}


или такое:

Код: Выделить всё
if ( $group_info['group_staff'] == 0 || !$board_config['guest_staff'])
{
if( !$userdata['session_logged_in'])
  {
    message_die(GENERAL_MESSAGE, $lang['only_members_staff']);
    exit;
}   
}


или такое:

Код: Выделить всё
if ( $group_info['group_staff'] = 0 || !$board_config['guest_staff'])
{
if( !$userdata['session_logged_in'])
  {
    message_die(GENERAL_MESSAGE, $lang['only_members_staff']);
    exit;
}   
}


Аналогично, если взять и заменить
Код: Выделить всё
$group_info
на
Код: Выделить всё
$group_list
в скриптах staff.php и др. - тоже не проходит...

Добавлено спустя 1 час 23 минуты 58 секунд:

В скрипте staff.php перед
Код: Выделить всё
if ( !$group_list['group_staff'] || !$board_config['guest_staff'])
{
if( !$userdata['session_logged_in'])
  {
    message_die(GENERAL_MESSAGE, $lang['only_members_staff']);
    exit;
}   
}

я вставил
Код: Выделить всё
$sql = "SELECT g.group_staff FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug WHERE ug.user_id = $userdata['user_id'] AND g.group_id = ug.group_id";
   if ( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Error getting user information', '', __LINE__, __FILE__, $sql);
   }

и мне выдало:

Код: Выделить всё
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ....\www\forums\staff.php on line 19
dnk
phpBB 2.0.9
 
Сообщения: 371
Зарегистрирован: 23.08.2006 19:34

Сообщение Палыч 09.08.2007 0:39

В синтаксе ошибка
Код: Выделить всё
   $user_id = $userdata['user_id'];
   $sql = "SELECT g.group_staff FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug WHERE ug.user_id = $user_id AND g.group_id = ug.group_id";
   if ( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Error getting user information', '', __LINE__, __FILE__, $sql);
   }

Но это просто пример, идея должна быть аналогичной, но более приемлимой
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Никогда не бойся делать то, что ты пока не умеешь. Помни, что Ковчег был построен любителем. Профессионалы строили Титаник...
Аватара пользователя
Палыч
Просто Палыч
 
Сообщения: 6166
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер

Сообщение dnk 09.08.2007 0:52

Палыч

Подставил исправленное - все равно не работает.
Что-то еще где-то значит.
dnk
phpBB 2.0.9
 
Сообщения: 371
Зарегистрирован: 23.08.2006 19:34


Вернуться в Для авторов (phpBB 2.0.x)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0