Yii2 Возможность: темы

Yii2 Возможность: темы

Тема - это каталог с файлами видов контроллеров (views) и шаблонов (layouts). Каждый файл в директории темы как бы "перекрывает" соответствующий файл приложения в директории @app/views. Приложение может иметь множество тем, и каждая тема может предоставлять совершенно иную функциональность. В любое время активна только одна тема.

Что бы включить возможность темизации, можно создать в директории приложения директорию themes (название произвольно) в ней будут находится директории тем. И указать эту директорию в конфиге, как viewPath приложения.

viewPath - относительный путь к каталогу view, он резолвится при помощи basePath - по-умолчанию указывает на корень приложения

// www/vendor/yiisoft/yii2/base/Module.php
$this->_viewPath = $this->getBasePath() . DIRECTORY_SEPARATOR . 'views';

Предположим, что мы хотим создать тему с названием "default" - создадим директорию @app/themes/default, в неё скопируем директорию @app/view - та самая что содержит layouts и site (по-умолчанию). Все шаблоны, которые не будут найдены в @app/themes/default/views/... будут искаться в @app/views/... туда можно помещать шаблоны, которые не предполагается темизировать.

Примерная структура диреторий:

application
    |
    |-themes
        |
        |-default
            |
            |-views
                |
                |-layouts
                |   |- ...
                |
                |-site
                    |-...

Далее в конфиге прописываем использование темы. Тема - это свойство компонента view - класс yii\web\View, который, кстати создается неявно, и не требует явной записи в конфиге, но для использования темы пропишем его явно:

    ...
    'components' => [
            ... ,
            'view' => [
                'theme' => [
                    'class'=> yii\base\Theme::className(),
                    'basePath'=>'@app/themes/default'    // путь в дир-ию темы
                ], ...
            ],
            ...
        ],
    ...

Добавить комментарий


Защитный код
Обновить


Кто на сайте
Сейчас 150 гостей онлайн