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

PDO Транзакции

Тема — это каталог с файлами видов контроллеров (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'    // путь в дир-ию темы

            ], ...

        ],

        ...

    ],

...

 

Возможно Вас заинтересуют эти материалы

Yii2: Работа с ресурсами

В данной статье разбираются варианты создания менеджера ресурсов в Yii2 и их использование, а так

Yii2 локализация

За локализацию приложения Yii2 отвечает класс yii\i18n\I18N. Данные локазиции могут зраниться как в БД так

Yii2 basic на разделяемом хостинге

При установке на разделяемый хостинг часто нет возможности прописать директиву DocumentRoot чтобы избавиться от префикса