Изменение шаблона при авторизации

Авторизация через Login. При авторизации нужно изменить шаблоны всех ресурсов на другой. Пишу такую вот такой плагин по событию OnLoadWebDocument:
if($modx->getLoginUserID()) {
	$resource = $modx->resource
	$resource->set('template', 3);
	$resource->save();
	return $resource;
	}
Естественно, ничего не получается. В программировании новичок. Прошу помощи. Заранее спасибо
Олег Момот
08 августа 2014, 09:20
modx.pro
861
0

Комментарии: 3

Олег Момот
08 августа 2014, 14:25
0
Поменял шаблон
<?php
$id = $modx->resource->get('id');
$resource = $modx->getObject('modResource', $id); // with a document id
$resource->set('template', 3);
$resource->save();
Но после logout подменный шаблон остается. Куда записывать первоначальный шаблон, чтобы потом его вернуть?
    Василий Наумкин
    08 августа 2014, 15:45
    0
    Ты делаешь совершенно неправильно.

    Во-первых, не нужно менять шаблон. Сейчас ты меняешь шаблон ресурса навсегда — то есть, при авторизации одного юзера другой шаблон увидят все.

    Во-вторых, при смене шаблона нужно сбросить кэш сайта, иначе изменений не будет видно — а это довольно медленная операция.

    Ну и в третьих, шаблоны нужно разделять на чанки — и вот их уже можно менять в зависимости от авторизации юзера.
    [[$[[!+modx.user.id:isloggedin=`auth`:else=`not_auth`]]]]
      Олег Момот
      08 августа 2014, 16:07
      0
      Спасибо, а то я уже ушел в дебри формирования динамической страницы с подменой контента.
      А решение как всегда лежит на поверхности. Ещё раз спасибо.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3