К вопросу интеграции. Чтение групп.

Идеи для расширения функциональности phpBB 2.0.x
Аватара пользователя
Alf
phpBB 1.4.1
Сообщения: 45
Стаж: 19 лет 9 месяцев
Откуда: Архангельск

К вопросу интеграции. Чтение групп.

Сообщение Alf »

У меня есть самописанная фотогалерея с авторизацией из phpBB. в фотогалерее есть возможность комментирования фотографий, необходимо сделать возможность модерирования комментариев (в моем случае это простое удаление) группе пользователей из phpBB, т.е. модераторам. На данный момент у меня просто стоит блок

Код: Выделить всё

if ($userdata[user_id]==3)
, где 3 - это ид юзера который может модерировать комментарии.

Я понимаю, что можно написать запрос непосредственно к таблице с группами. Но меня интерисует нет ли готового решения, как это сделать силами phpBB,
т.е. например же есть такой массив $userdata, а нет лм в нем параметра который бы описывал принадлежность к группе?
Рулевой по развлекательной жизни Архангельска
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год 1 месяц

Сообщение Jovani »

Я как-то задавал тут подобный вопрос, но ответа не получил.
Пришлось думать самому.

Тебе, наверно, можно сделать так ...
После инициализации юзера, делаем запрос о принадлежности к группе $groupid

Код: Выделить всё

$sql ="SELECT * FROM " . USER_GROUP_TABLE . " 
      WHERE group_id= $groupid
      AND user_id='" . $userdata[user_id] . "' 
      LIMIT 1"; 

if ( !($result = $db->sql_query($sql)) ) 
{ 
   message_die(CRITICAL_ERROR, 'Could not obtain data from users groups table', '', __LINE__, __FILE__, $sql); 
}
$row = $db->sql_fetchrow($result);
Далее, можно вставить еще одну проверку где выясняем, может он еще только ожидает одобрям.
Если не нужно, в SQL-запросе добавляем "AND user_pending = 0"

Код: Выделить всё

// Проверяем юзера
if ($db->sql_numrows($result) == 0) 
{ 
   $isMember = 'False'; 
   $isPendingMember = 'False'; 
} 


// Проверяем юзера ожидает или уже получил одобрям
elseif ($row[user_pending] == 1) 

{ 
   $isMember = 'False'; 
   $isPendingMember = 'True'; 
} 

else 
{ 
   $isMember = 'True'; 
   $isPendingMember = 'False'; 
}
Ну и далее, собственно, условие, делай как нужно тебе, например:

Код: Выделить всё

if ($isMember == 'True') 
   { 
 echo 'Допущен';
   } 
       
elseif  ($isMember == 'False') 
   { 
 echo 'Нет допуска';
   }
Последний раз редактировалось Jovani 06.11.2005 15:42, всего редактировалось 2 раза.
Аватара пользователя
Alf
phpBB 1.4.1
Сообщения: 45
Стаж: 19 лет 9 месяцев
Откуда: Архангельск

Сообщение Alf »

Большое спасибо. Буду реализовывать
Рулевой по развлекательной жизни Архангельска
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год 1 месяц

Сообщение Jovani »

Писал на память, возможно ошибся, во всяком случае, код подрихтовал, проверяй ...
Аватара пользователя
DiMk@™
phpBB 1.2.1
Сообщения: 22
Стаж: 20 лет 8 месяцев
Откуда: KiEv

Сообщение DiMk@™ »

Alf
ежели токмо админам и модерам то так проше

Код: Выделить всё

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_VIEWMEMBERS);
init_userprefs($userdata);
//
// End session management
//
//
// Start auth check
//
if ($userdata['user_level'] != ADMIN AND $userdata['user_level'] != MOD)
{
        message_die(GENERAL_MESSAGE, 'У вас нет прав для просмотра этой страницы');
}
☠☠☠
[GetTrackerUA-IX]

Вернуться в «Запросы модов для phpBB 2.0.x»