Изменение шаблона при авторизации
Авторизация через Login. При авторизации нужно изменить шаблоны всех ресурсов на другой. Пишу такую вот такой плагин по событию OnLoadWebDocument:
if($modx->getLoginUserID()) {
$resource = $modx->resource
$resource->set('template', 3);
$resource->save();
return $resource;
}
Естественно, ничего не получается. В программировании новичок. Прошу помощи. Заранее спасибо Комментарии: 3
Поменял шаблон
<?php
$id = $modx->resource->get('id');
$resource = $modx->getObject('modResource', $id); // with a document id
$resource->set('template', 3);
$resource->save();
Но после logout подменный шаблон остается. Куда записывать первоначальный шаблон, чтобы потом его вернуть?
Ты делаешь совершенно неправильно.
Во-первых, не нужно менять шаблон. Сейчас ты меняешь шаблон ресурса навсегда — то есть, при авторизации одного юзера другой шаблон увидят все.
Во-вторых, при смене шаблона нужно сбросить кэш сайта, иначе изменений не будет видно — а это довольно медленная операция.
Ну и в третьих, шаблоны нужно разделять на чанки — и вот их уже можно менять в зависимости от авторизации юзера.
Во-первых, не нужно менять шаблон. Сейчас ты меняешь шаблон ресурса навсегда — то есть, при авторизации одного юзера другой шаблон увидят все.
Во-вторых, при смене шаблона нужно сбросить кэш сайта, иначе изменений не будет видно — а это довольно медленная операция.
Ну и в третьих, шаблоны нужно разделять на чанки — и вот их уже можно менять в зависимости от авторизации юзера.
[[$[[!+modx.user.id:isloggedin=`auth`:else=`not_auth`]]]]
Спасибо, а то я уже ушел в дебри формирования динамической страницы с подменой контента.
А решение как всегда лежит на поверхности. Ещё раз спасибо.
А решение как всегда лежит на поверхности. Ещё раз спасибо.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.