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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

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

Сообщение 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')
 
Так какая же идеальная практика? Очень надеюсь на помощь.
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

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

Сообщение mkramer »

advenced - это когда админка отдельное приложение. Логику того, что вы хотите сделать, я вообще не понимаю, но может перенаправление авторизированного пользователя на др. контроллер?
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

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

Сообщение devv »

Да, возможно, что лендинг можно поместить на фронтенд, а самый главный шаблон, с которым будет работать пользователь на бэкенд. Только вот не будет ли это странно, т.к. ещё можно было прикрутить администраторскую панель?
Логика на самом деле проста. Гость сидит на лендинге, авторизировавшийся юзер в основном шаблоне. Причем шаблоны хотелось бы сделать как темы.
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

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

Сообщение mkramer »

Лендинг - это одна страница? Авторизированного юзера перенаправляйте по какому-нибудь адресу с лендинга. То, что вы пытаетесь сделать, это, ИМХО, слишком путано. Ведь для шаблона надо ещё данные подготовить, а вы хотите, чтоб их одни и те же action готовили...
devv
Сообщения: 39
Зарегистрирован: 2015.04.26, 22:37

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

Сообщение devv »

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