Хук "Обработчик пользователей"

Необходимо создать обработчик хука, который бы определял логику отображения главной страницы.
Помогите как его создать.
Что бы авторизированных перекидывало на новости(топики) /feed/
А не авторизированых на главнусб страницу т.е. просто на /

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

avatar
Раз речь о хуках, то вам надо повесить обработчик на хук init_action и там проверять, если пользователь залогинен и текущий экшн — index то перекидывать на /feed/. Как-то так:

Зарегистрировать хук
$this->AddHook('init_action', 'InitAction');


добавить обработчик
public function InitAction($aParam)
    {
        if ($this->User_GetUserCurrent() && Router::GetAction() == 'index')
        {
            Router::Location('/feed/');
        }
    }


Если же вам не нада, чтобы зарегистрированных пользователей перекидывало на /feed/ со страниц типа /index/newall то условие надо написать

if ($this->User_GetUserCurrent() && Router::GetAction() == 'index' && !Router::GetActionEvent())


Не проверял, но должно работать.
  • kerby
  • 0
avatar
эээ… если надо, чтобы НЕ перекидывало.
avatar
Я нельзя типо сделать если не зарегистрирован на сайте то что бы перекидывало на другую страницу т.е. ели зареган то / если нет то /page/login/
avatar
Можно :)

Но это сильно зависит от конкретной задачи, что надо в результате.
avatar
Допустим я не авторизирован и зашел на сайт и меня сразу перекинуло на /login/ и если авторизован то спокойно захожу сразу на / но если не авторизован то можно что бы лазить по сайту
avatar
Перекидывать на /login/ должно только с главной страницы, или с любой страницы?

В любом случае это не самая лучшая мысль, так как может нарушить индексацию сайта (или только главной страницы) поисковыми роботами. Лучшим решением было бы загрузка страницы и сразу показ модального окна логина. Мне так кажется.
avatar
Что бы зашли на главную страницу и перекинуло на /login/ только 1 раз, а дальше что-бы нажимали на главную страницу и переходило нормально
avatar
Ну это гораздо более комплексное решение, включая контроль куки и всякой фигни. Не для пары строчек в комментариях.
avatar
не разбираюсь в коде ЛС, код что вы привели нужно вставить на главную страницу темы шаблонна?
avatar
Боюсь, что обучать разбираться в коде ЛС у меня нет возможности.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.