info navigation

phpbb-belk.ru

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



Новая тема  [ Сообщений: 4 ]  Просмотры: 3251

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

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


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

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


Topic permissions - запрет на просмотр темы гостям и ботам

Интересная модификация, разрешающая пользователю при создании темы "отмечать" возможность блокировки создаваемой темы для гостей, ботов и поисковых систем. бывает и нужно.
вроде как "для внутреннего употребления". :-D

при создании темы эта возможность будет выглядеть так:

prosilver:

Вложение:
Комментарий к файлу: для prosilver
permission_pr.png
permission_pr.png [ 13.27 КБ | Просмотров: 3250 ] permission_pr.png



subsilver2 (снял скан с этого форума):

Вложение:
Комментарий к файлу: subsilver2
permission_sb.png
permission_sb.png [ 16.34 КБ | Просмотров: 3250 ] permission_sb.png




Скачать мод из архива сайта:

Скачать из файлового архива сайта

распаковать и содержимое папки root загрузить в корень сайта (где файл config.php).
если у вас уже есть на форуме папка umil - её можно не копировать.

Теперь редактируем файлы:

Открыть posting.php
Найти

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

   $post_data['enable_sig']      = (!$config['allow_sig'] || !$auth->acl_get('f_sigs', $forum_id) || !$auth->acl_get('u_sig')) ? false : ((isset($_POST['attach_sig']) && $user->data['is_registered']) ? true : false);


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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
   $post_data['topic_permissions']   = (isset($_POST['topic_permissions'])) ? true : false;
// Topic permissions MOD - Addition end -----------------------------------------------------------


Найти

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

            'enable_sig'         => (bool) $post_data['enable_sig'],


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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
            'topic_permissions'      => (int) $post_data['topic_permissions'],
// Topic permissions MOD - Addition end -----------------------------------------------------------


Найти

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

$sig_checked      = $post_data['enable_sig'];


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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
$topic_permissions_checked   = (isset($post_data['topic_permissions'])) ? ($post_data['topic_permissions']) ? true : false : false;
// Topic permissions MOD - Addition end -----------------------------------------------------------


Найти

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

   'S_SIGNATURE_CHECKED'      => ($sig_checked) ? ' checked="checked"' : '',


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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
   'S_TOPIC_PERMISSIONS_ALLOWED'   => (($auth->acl_get('a_') || $auth->acl_get('m_', $forum_id)) && ($mode == 'post' || ($mode == 'edit' && $post_id == $post_data['topic_first_post_id']))) ? true : false,
   'S_TOPIC_PERMISSIONS_CHECKED'   => ($topic_permissions_checked) ? ' checked="checked"' : '',
// Topic permissions MOD - Addition end -----------------------------------------------------------



Открыть viewtopic.php

Найти

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

if (!$auth->acl_get('f_read', $forum_id))
{
   if ($user->data['user_id'] != ANONYMOUS)
   {
      trigger_error('SORRY_AUTH_READ');
   }

   login_box('', $user->lang['LOGIN_VIEWFORUM']);
}


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

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

// Topic permissions MOD - Addition begin ------------------------------------------------------
if ($topic_data['topic_permissions'] == true && ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot']))
{
   login_box('', $user->lang['LOGIN_VIEWTOPIC']);
}
// Topic permissions MOD - Addition end --------------------------------------------------------



Открыть includes/functions_posting.php

Найти

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

            'topic_attachment'         => (!empty($data['attachment_data'])) ? 1 : 0,


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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
            'topic_permissions'         => $data['topic_permissions'],
// Topic permissions MOD - Addition end -----------------------------------------------------------


Найти

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

            'topic_attachment'         => (!empty($data['attachment_data'])) ? 1 : (isset($data['topic_attachment']) ? $data['topic_attachment'] : 0),


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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
            'topic_permissions'         => $data['topic_permissions'],
// Topic permissions MOD - Addition end -----------------------------------------------------------



языковые правки EN
Открыть language/en/common.php

Найти



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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
$lang = array_merge($lang, array(
   'LOGIN_VIEWTOPIC'         => 'The board requires you to be registered and logged in to view this topic.',
));
// Topic permissions MOD - Addition end -----------------------------------------------------------



Открыть language/en/posting.php
Найти



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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
$lang = array_merge($lang, array(
   'TOPIC_PERMISSIONS'         => 'Access denied for guests, search engines and bots',
));
// Topic permissions MOD - Addition end -----------------------------------------------------------


языковые правки RU
Открыть language/ru/common.php

Найти



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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
$lang = array_merge($lang, array(
   'LOGIN_VIEWTOPIC'         => 'Для просмотра данной темы вам необходимо зарегистрироваться либо войти на форум.',
));
// Topic permissions MOD - Addition end -----------------------------------------------------------



Открыть language/ru/posting.php
Найти



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

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

// Topic permissions MOD - Addition begin ---------------------------------------------------------
$lang = array_merge($lang, array(
   'TOPIC_PERMISSIONS'         => 'Запретить просмотр темы гостям, ботам и поисковым системам',
));
// Topic permissions MOD - Addition end -----------------------------------------------------------


Для стилей на основе prosilver:

Открыть styles/prosilver/template/posting_editor.html
Найти

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

         <!-- IF S_LOCK_POST_ALLOWED -->
            <div><label for="lock_post"><input type="checkbox" name="lock_post" id="lock_post"{S_LOCK_POST_CHECKED} /> {L_LOCK_POST} [{L_LOCK_POST_EXPLAIN}]</label></div>
         <!-- ENDIF -->


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

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

<!-- Topic permissions MOD - Addition begin =================================================== -->
         <!-- IF S_TOPIC_PERMISSIONS_ALLOWED -->
            <div><label for="topic_permissions"><input type="checkbox" name="topic_permissions" id="topic_permissions"{S_TOPIC_PERMISSIONS_CHECKED} /> {L_TOPIC_PERMISSIONS}</label></div>
         <!-- ENDIF -->
<!-- Topic permissions MOD - Addition end ===================================================== -->


Для стилей на основе subsilver2:

Открыть styles/subsilver2/template/posting_body.html
Найти

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

         <!-- IF S_LOCK_POST_ALLOWED -->
            <tr>
               <td><input type="checkbox" class="radio" name="lock_post"{S_LOCK_POST_CHECKED} /></td>
               <td class="gen">{L_LOCK_POST} [{L_LOCK_POST_EXPLAIN}]</td>
            </tr>
         <!-- ENDIF -->


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

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

<!-- Topic permissions MOD - Addition begin =================================================== -->
         <!-- IF S_TOPIC_PERMISSIONS_ALLOWED -->
            <tr>
               <td><input type="checkbox" class="radio" name="topic_permissions"{S_TOPIC_PERMISSIONS_CHECKED}" /></td>
               <td class="gen">{L_TOPIC_PERMISSIONS}</td>
            </tr>         
         <!-- ENDIF -->
<!-- Topic permissions MOD - Addition end ===================================================== -->



Всё, правки закончены. Теперь, для завершения установки, необходимо запустить инсталлятор:

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

http://ваш сайт/install_topic_permissions_1.0.2.php


После отработки удалить файл install_topic_permissions_1.0.2.php с сервера.

Очистить кэш и можно пользоваться.

Удачного применения. :arigato:

оригинальная тема


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Topic permissions,phpbb 3.0,запрет на просмотр темы гостям и ботам
Не в сети
(макс)  

Стаж: 7 лет 7 месяцев 9 дней
Сообщения: 13


Стиль: prosilver


Репутация: 0






здравствуйте мне подсказали что эта строка отвечает за отображения модераторам сказали удалить и не будет показывать модераторам я удалил строку и пишет ошибку может не все удаляет в строке не подскажете как правильно сделать? (Открыть posting.php)( [code]$auth->acl_get('m_', $forum_id)) [/color]


Не в сети
(Андрей)  
2018-08-04 
Администратор
Аватара пользователя

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


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

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


я не очень дружу с php. :-D

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

"безболезненно" можно удалять только правки в html-коде и то смотреть приходится.

проще попробовать обернуть код вывода в html-шаблоне в условие, запрещающее видеть этот код модераторам

то есть как-то так:
открыть styles/prosilver/template/posting_editor.html (или styles/subsilver2/template/posting_body.html)

добавить условие:

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

<!-- IF not S_IS_MOD -->
<!-- Topic permissions MOD - Addition begin =================================================== -->
         <!-- IF S_TOPIC_PERMISSIONS_ALLOWED -->
здесь код вывода для соответствующего стиля
         <!-- ENDIF -->
<!-- Topic permissions MOD - Addition end ===================================================== -->
<!-- ENDIF -->


то есть эта строка

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

<!-- IF not S_IS_MOD -->


и есть условие запрета. не помню точно как выглядит. если в таком виде не сработает, попробуйте

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

<!-- IF not IS_MOD -->


такая модификация должна помочь и php-код ломать не придётся.

*************

немного не понял.

или вы имели в виду, чтобы и сама тема была не видна и модераторам? тогда у вас вряд ли получится.
я где-то читал, что и админы, и модераторы могут видеть заблокированную тему и эта функция в самом моде. может и в базе прописывается. не проверял.
может вам кто-то и сможет помочь, но я не могу.


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Не в сети
(макс)  
2018-08-04 

Стаж: 7 лет 7 месяцев 9 дней
Сообщения: 13


Стиль: prosilver


Репутация: 0






я имел в виду, сама кнопка чтобы не видна модераторам (запрет на просмотр темы гостям и ботам) спасибо.


Показать сообщения за:  Поле сортировки  
Ответить на тему  [ Сообщений: 4 ] 

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

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

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

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



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

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





Текущее время: 27 апр 2024, 15:35

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

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