сайт на данный момент является архивом информации по форуму phpbb 3.0. объяснения и помощь больше не предоставляются. старый сайт

Белк на PhpBB 3.0.14

информация по этому форуму. bbcode, моды и прочее, проверенное Белком. (перенос данных продолжается...)

Сегодня на конференции было 52 посетителей :: 1 зарегистрированный, 0 скрытых, 1 бот и 50 гостей (основано на активности посетителей за последние 24 часа)




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

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

Стиль сайта: subsilver2
Настоящее имя: Андрей


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

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

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

prosilver:

Вложение:
permission_pr.png
permission_pr.png [ 13.27 КБ | Просмотров: 47 ] permission_pr.png



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

Вложение:
permission_sb.png
permission_sb.png [ 16.34 КБ | Просмотров: 47 ] 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:

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


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

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

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

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

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



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

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

cron

Текущее время: 26 июн 2026, 20:48

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB.