Перезаписать текущую тему в YII

0

Так что я воюю с давних пор, чтобы перезаписать текущую тему. По некоторым причинам мне нужно включить новую тему из моего контроллера и что мне нужно изменить текущую тему активации. Как я могу переписать значение индекса темы для основной функции environment.php

private function _main() {
 return array(
            // Base Path
            'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
            // Theme Name
            'theme' => 'front_theme',
}

Теперь в контроллере я хочу изменить тему с фронта на user_theme.

Заранее спасибо.

Теги:
themes
yii

2 ответа

0
Лучший ответ

Финал я нашел решение. Чтобы перезаписать текущую активированную тему, вам нужно создать функцию init в контроллере и указать название вашей новой темы. Вот код:

public function init()
    {
       Yii::app()->theme = 'user';
       parent::init();
    }
0

В Yii 1 у вас есть разные способы настройки темы, которая используется.

Вы можете иметь динамический способ, как вы обнаружили, путем инициализации метода свойства Yii::app()->theme методе init().

Или вы можете установить тему в глобальном масштабе для приложения, что, вероятно, будет тем, что я бы предложил использовать, если у вас нет конкретных требований в config/main.php:

return array(
    // ...
    'theme' => 'mytheme'
    // ...
) 

Это подберет тему, которую вы хотите использовать из /themes/mytheme/ и /themes/mytheme/ к /protected/views/ если шаблон не найден в первом.

Как последнее слово совета, если вы начинаете новый проект, я предлагаю начать прямо с Yii 2, а не Yii 1, так как теперь это предпочтительная и более современная версия фреймворка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню