SITE_CLOSE_MODE для страниц и разделов

Подскажите решение, как сделать закрытыми для гостей некоторые разделы или страницы, например site.ru/people/ или site.ru/page/.../.

По образцу настройки SITE_CLOSE_MODE: Использовать закрытый режим работы сайта, сайт будет доступен только авторизованным пользователям.

12 комментариев

avatar
Данный вопрос легко решается правкой шаблонов
  • Geatu
  • 0
avatar
Легко он не решается.
Проконсультируйте, плиз.
Версия 0.3.1.
avatar
не шаблонов, а роутинга
avatar
повесь проверку авторизации на конкретные события акшинов, либо в роутере на акшины.
  • tih
  • 0
avatar
А если поэтапно?
1…
2…
3…
avatar
Хех, вот создаешь файл в хуках и вешаешь перехваты на нужные акшины. Надеюсь из примера все понятно.

/classes/hooks/HookCloseSome.class.php

<?php
class HookCloseSome extends Hook {
    public function RegisterHook() {
        $this->AddHook('action_init_ActionBlog_before','Check',__CLASS__,0); //Закрываем блоги
                $this->AddHook('action_init_ActionPeople_before','Check',__CLASS__,0); //Закрываем людей

    }

    public function Check() {
                /**
         * Проверяем авторизован ли пользователь
         */
                    
        if (!$this->User_IsAuthorization()) {
            $this->Message_AddNoticeSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('attention'));
                        Router::Action('login');
                        Router::getInstance()->ExecAction();
                       }
             }
}
?>
avatar
Премного благодарю.
avatar
Начал ковыряться, возникли вопросы.
Допустим, закрываем страницу с людьми. Файл по примеру в хуках создал. Пример ясен. Где ещё нужно внести какие изменения?
avatar
больше нигде. акшины будут блокироваться до авторизации
avatar
К сожалению, не работает.
Версия 0.3.1.
avatar
ну дык про версию надо было сразу это для 0.4.2
avatar
упс, я чото ступил. в первом коменте же
в 0.3.1 тоже есть хуки. надо уточнить как там оно действует
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.