Интересная модификация, разрешающая пользователю при создании темы "отмечать" возможность блокировки создаваемой темы для гостей, ботов и поисковых систем. бывает и нужно.
вроде как "для внутреннего употребления".
при создании темы эта возможность будет выглядеть так:
prosilver:
Вложение:
Комментарий к файлу: для prosilver
subsilver2 (снял скан с этого форума):
Вложение:
Скачать мод из архива сайта:
Скачать из файлового архива сайта
распаковать и содержимое папки 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
языковые правки RU
Для стилей на основе 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 с сервера.
Очистить кэш и можно пользоваться.
Удачного применения.