info navigation

phpbb-belk.ru

темы, связанные с форумом phpbb 3.0.x



Новая тема  [ 1 сообщение ]  Просмотры: 3163

Автор Сообщение
Не в сети
(Андрей)  
Администратор
Аватара пользователя

Стаж: 8 лет 8 месяцев 22 дня
Сообщения: 1223
Откуда: здешние мы


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


Условия для показа на форуме phpbb 3.0

На данном форуме реализовано удобное дополнение - условия для показа информации, то есть, проще говоря, вставляя небольшую строку текста в файл, можно разрешить просмотр данной информации только модераторам, только гостям, только гостям и ботам... То есть можно сразу таким образом выставить права просмотра.

Итак, вот эти условия:

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

<!-- IF not S_IS_BOT -->
текст, который не увидят боты
<!-- ENDIF -->


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

<!-- IF S_USER_LOGGED_IN -->
текст, который увидят только зарегистрированные пользователи
<!-- ENDIF -->


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

<!-- IF USER_IGNORE -->
текст, который не увидят гости и боты
<!-- ENDIF -->


для модераторов, супермодераторов и админов необходимо ещё и наличие в соответствующем php файле следующего кода

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

'IS_ADMIN'        => ($auth->acl_get('a_')) ? true : false,
        'IS_MOD'        => ($auth->acl_getf_global('m_')) ? true : false,
        'IS_GLOBAL_MOD'    => ($auth->acl_get('m_')) ? true : false,


тогда возможны и применения условий

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

<!-- IF IS_ADMIN -->
текст, который увидят только администраторы
<!-- ENDIF -->


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

<!-- IF IS_MOD -->
текст, который увидят только модераторы
<!-- ENDIF -->


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

<!-- IF IS_GLOBAL_MOD -->
текст, который увидят только супермодераторы
<!-- ENDIF -->


 вывод ссылки на модераторский раздел  код для встраивания в "чистый" php (новая статическая страничка) для вывода ссылки на модераторский раздел:

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

$template->assign_vars(array(
   'U_MCP'            => ($auth->acl_get('m_') || $auth->acl_getf_global('m_')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&amp;mode=front', true, $user->session_id) : ''
));


а вот этот код надо прописать в html-шаблон:

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

<!-- IF U_MCP --><a href="{U_MCP}">{L_MCP}</a><!-- ENDIF -->


Условия показа/скрытия информации можно и объединять:

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

<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->
текст, который не увидят боты, и увидят только залогиненные пользователи
<!-- ENDIF -->


Также условия можно применять и для показа только в определённых категориях форума:

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

<!-- IF SCRIPT_NAME == "viewtopic" -->
Контент, показываемый только на vietopic.php
<!-- ELSEIF SCRIPT_NAME != "index" and SCRIPT_NAME != "viewforum" -->
Контент, не показываемый нигде, кроме index.php и vietopic.php
<!-- ENDIF -->


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

<!-- IF FORUM_ID == 'N' -->Код, показываемый только в определённом форуме<!-- ENDIF -->


Практическое применение для примера:
Часто бывает (сам видел), что админы ставят для показа гостям всевозможные рекламы, ролики, картинки и тому подобное, мягко намекая, что от всего этого удовольствия при просмотре можно легко избавиться, если пройти регистрацию. :-D

При помощи 2 небольших условий легко реализовать данную функцию.

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

<!-- IF S_USER_LOGGED_IN --><!-- ELSE -->ЗДЕСЬ РЕКЛАМА<!-- ENDIF -->


Условие <!-- ELSE --> означает то, тогда. То есть если не выполняется первое условие (перед <!-- ELSE -->), то показывается второе (за <!-- ELSE -->).


Условие показа информации в теме, если пользователь набрал определённое количество сообщений
Открыть viewtopic.php
Найти

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

// Output the page


Вставить перед найденным

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

if($user->data['is_registered'])
{
  $template->assign_vars(array(
    'USERPOSTS'   => $user->data['user_posts'],
  ));
}


Тогда условие для показа (для вставки в html-шаблон) будет выглядеть так:

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

<!-- IF USERPOSTS >= 10 -->показываем код если число сообщений пользователя больше или равно 10<!-- ENDIF -->


условия показа для определённых групп (с id)
у каждой группы пользователей (зарегестрированные, модераторы, администраторы и так далее) есть свой id - по его номеру и применяется данное условие.

само условие применения:

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

<!-- IF S_USER_GROUP == N -->Ваш код<!-- ENDIF -->


чтобы условие работало - необходимо в файл includes/functions.php

добавить следующий код:

найти

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

   'S_USER_NEW'               => $user->data['user_new'],


вставить после найденного

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

'S_USER_GROUP'               => $user->data['group_id'],


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
phpbb,forum
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ 1 сообщение ] 

Кто сейчас на сайте:

Всего посетителей: 0, из них зарегистрированных: 0, скрытых: 0 и гостей: 0 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (122) здесь было 19 дек 2023, 12:10

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

Часовой пояс: UTC + 2 часа



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы не можете защищать свои темы паролем

Найти:
Перейти:  




cron

Текущее время: 14 июн 2024, 07:24

Создано на основе phpBB® Forum Software © phpBB Group
Яндекс.Метрика

Полная версия Мобильный вид