В попытке улучшения своей CMS пришел к тому, что нужно ввести папку themes, но сейчас в раздумьях как лучше организовать и правильнее. Сейчас у меня структура такая:
protected
–views
—layouts
----admin.php
----guest.php
А в папке public есть css, img, js, в кждой из которых по две папки - admin и guest со своими файлами.
Вопросы такие:
Как мигрировать guest в тему, а admin оставить лежать в protected, т.к. форма и содержание админки не меняется, а гостевые темы меняются часто.
Где переопределить
class CThemeManager extends CApplicationComponent
{
/**
* default themes base path
*/
const DEFAULT_BASEPATH='themes';
Создавать наследуемый файл в components или extensions ради одной строчки? или это можно задать из конфига?
Просто перенести виды для guest в каталог с темами. Далее, если у вас одна точка входа, в конфигурации приложения назначить тему, а в контроллерах админки сделать в методе init() её обнуление. Если две точки входа, с двумя разными конфигурациями для фронтальной и административной части, то ещё проще. Просто прописать в конфигурации фронтальной части название темы.
Переопределить можно через конфигурацию. Смотрите свойства basePath и baseUrl компонента CThemeManager, они не read only.
Это очень спорный вопрос, админку можно держать как отдельным модулем, так и отдельным приложением со своим конфигом и точкой входа, а можно держать в основном приложении, разруливая права RBAC. Оптимального варианта нет, у каждого случая есть свои плюсы и минусы.