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

Редирект гостя на страницу логина при входе на форум

У вас есть идея для расширения функциональности phpBB 3.0.x? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
dnk
phpBB 2.0.4
Сообщения: 433
Стаж: 20 лет 1 месяц
Благодарил (а): 12 раз
Поблагодарили: 1 раз

Редирект гостя на страницу логина при входе на форум

Сообщение dnk »

phpbb 3.0.12 ru
Необходимо, чтобы гость при попадании на любую страницу сайта сначала залогинивался, а потом уже творил всё, что ему надо (например, для того, чтобы не совали свой длинный нос и взгляд на категории и форумы, предназначенные только для вошедших определенных участников).
Есть вариант:

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



Перенаправление анонимных посетителей на страницу входа

СообщениеАвтор: Kastaneda » 21.04.2008, 14:17
Следующие изменения в коде переадресовывают гостей с главной страницы на страницу входа.

Открыть: index.php
Найти что-то вроде этого:

Код: Выделить все
    <?php

    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

    // Start session management
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup('viewforum');  


После найденного добавить:

Код: Выделить все
    if (!$user->data['is_registered'])
        {
            login_box();
        }  


Это же изменение может работать и на других страницах, таких как FAQ список участников. Возьмём для примера список участников (по умолчанию список участником итак скрыт от гостей, поэтому нет необходимости в изменениях — я просто даю пример). Добавьте вышеприведённый код после следующие кода в файле memberlist.php:

Код: Выделить все
    // Start session management
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup(array('memberlist', 'groups'));  


Предотвратить гостям доступ к страницам просмотра тем и форумов можно следующим образом:
Открыть: viewtopic.php
Найти:

Код: Выделить все
    // Initial var setup
    $forum_id    = request_var('f', 0);
    $topic_id    = request_var('t', 0);
    $post_id    = request_var('p', 0);
    $voted_id    = request_var('vote_id', array('' => 0));

    $start        = request_var('start', 0);
    $view        = request_var('view', '');

    $sort_days    = request_var('st', ((!empty($user->data['user_post_show_days'])) ? $user->data['user_post_show_days'] : 0));
    $sort_key    = request_var('sk', ((!empty($user->data['user_post_sortby_type'])) ? $user->data['user_post_sortby_type'] : 't'));
    $sort_dir    = request_var('sd', ((!empty($user->data['user_post_sortby_dir'])) ? $user->data['user_post_sortby_dir'] : 'a'));  


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

Код: Выделить все
    if (!$user->data['is_registered'])
        {
            login_box();
        }  


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

Код: Выделить все
    // Start initial var setup
    $forum_id    = request_var('f', 0);
    $mark_read    = request_var('mark', '');
    $start        = request_var('start', 0);

    $sort_days    = request_var('st', ((!empty($user->data['user_topic_show_days'])) ? $user->data['user_topic_show_days'] : 0));
    $sort_key    = request_var('sk', ((!empty($user->data['user_topic_sortby_type'])) ? $user->data['user_topic_sortby_type'] : 't'));
    $sort_dir    = request_var('sd', ((!empty($user->data['user_topic_sortby_dir'])) ? $user->data['user_topic_sortby_dir'] : 'd'));  


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

Код: Выделить все
    if (!$user->data['is_registered'])
        {
            login_box();
        }  
Сам его не пробовал.
Вопрос: Есть ли вариант. в т.ч., если нужно и с использованием вышеуказанного кода, чтобы можно было включать и выключать функцию редиректа на залогинивание через админ-панель?

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