Пропустить

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

Форум для авторов модов для 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 КБ) Скачиваний: 142
Последний раз редактировалось dnk 30.07.2007 18:40, всего редактировалось 2 раз(а).

dnk
phpBB 2.0.10
 
Сообщения: 350
Зарегистрирован: 23.08.2006 19:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Может кто-нибудь помочь?

dnk
phpBB 2.0.10
 
Сообщения: 350
Зарегистрирован: 23.08.2006 19:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

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

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

chipp
...в течении 5 суток с момента последнего ответа в тему
- последнее сообщение было 30 июля.Лучше бы помогли решением проблемы.

dnk
phpBB 2.0.10
 
Сообщения: 350
Зарегистрирован: 23.08.2006 19:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

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

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

Сообщение 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.10
 
Сообщения: 350
Зарегистрирован: 23.08.2006 19:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Палыч » 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 только на форумах. По найму не работаю.
Аватара пользователя
Палыч
Просто Палыч
Просто Палыч
 
Сообщения: 9467
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 337 раз.

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

Палыч

Подставил исправленное - все равно не работает.
Что-то еще где-то значит.

dnk
phpBB 2.0.10
 
Сообщения: 350
Зарегистрирован: 23.08.2006 19:34
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


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

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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

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

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы