Страница 1 из 1

Как работать с темами (landing, admin)?

Добавлено: 2015.07.21, 23:19
devv
Приветствую! Очень много информации процедил о темизации в Yii2, но так и не нашел максимально подходящего для себя решения. Использую advanced шаблон, нужно разбить его на лендинг и админку. Лендинг видит только гость, админку - уже вошедший пользователь. И я подумал сделать вот так

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

'view' => [
    'theme' => [
        'pathMap' => [
            '@app/views' => Yii::$app->user->isGuest ? '@app/themes/canvas' : '@app/themes/adminDesign'
         ]
     ]
], 
Оператор определяет статус пользователя. Как я понял из крохотного описания тем в документации, при такой записи происходит переопределение алиаса @app/views. Но у меня вообще ничего не работает. Как было, так всё и осталось. А мне нужно, чтобы работа велась именно в директориях с темами. Вот этот экшн в главном контроллере отвечает за направление вообще.

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

public function actionIndex()
{
     return $this->render('index');
}
Пробовал писать по всякому, однако рендерится индексная страница, либо сама тема вот с такой записью @app/themes/canvas/views/index (почему-то без ассета). Может стоит попробовать здесь что-то похожее на 4 строчку в конфиге выше? Вообще, ко всему, я пробовал и такой вариант в layouts/main.php

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

    $this->beginContent('@app/views/layouts/_base.php')
 
Так какая же идеальная практика? Очень надеюсь на помощь.

Re: Как работать с темами (landing, admin)?

Добавлено: 2015.07.22, 00:46
mkramer
advenced - это когда админка отдельное приложение. Логику того, что вы хотите сделать, я вообще не понимаю, но может перенаправление авторизированного пользователя на др. контроллер?

Re: Как работать с темами (landing, admin)?

Добавлено: 2015.07.22, 08:45
devv
Да, возможно, что лендинг можно поместить на фронтенд, а самый главный шаблон, с которым будет работать пользователь на бэкенд. Только вот не будет ли это странно, т.к. ещё можно было прикрутить администраторскую панель?
Логика на самом деле проста. Гость сидит на лендинге, авторизировавшийся юзер в основном шаблоне. Причем шаблоны хотелось бы сделать как темы.

Re: Как работать с темами (landing, admin)?

Добавлено: 2015.07.22, 10:53
mkramer
Лендинг - это одна страница? Авторизированного юзера перенаправляйте по какому-нибудь адресу с лендинга. То, что вы пытаетесь сделать, это, ИМХО, слишком путано. Ведь для шаблона надо ещё данные подготовить, а вы хотите, чтоб их одни и те же action готовили...

Re: Как работать с темами (landing, admin)?

Добавлено: 2015.07.22, 15:28
devv
В целом, можно было оставить и ту же схему, которая была до того как я узнал о темизации. Кстати, перенаправлять наверное и не нужно, юзер всегда на индексном контроллере, без изменения адреса. Может что-то ещё можно сделать?