#php #yii
Здравствуйте. Подскажите, зачем нужны темы и когда лучше их использовать? Почему бы не пользоваться просто представлением для разделения статических частей страницы (шапка, футер)? Не совсем понимаю... И еще, можно ли задавать несколько тем? Допустим для самого сайта, а потом для админской панели? Как реализуется смена темы?
Ответы
Ответ 1
Подскажите, зачем нужны темы и когда лучше их использовать? Для того же, для чего и в вордпрессе: для предоставления возможности разного дизайна одного и того же приложения без необходимости переписывать файлы. Также темы костыльно реализуют наследственность шаблонов: при задании шаблонов в дефолтной папке приложения их можно переопределить шаблонами в папке темы, и, таким образом, отобразить измененное представление в дефолтном лейауте и наоборот. Почему бы не пользоваться просто представлением для разделения статических частей страницы (шапка, футер)? Потому что в Yii сделан выбор в пользу общего шаблона (лейаута) и виджетов. Произвольные места в шаблоне все равно упираются в необходимость виджетов, и статические части просто становятся лишним грузом - их проще оформить в виде виджетов и не тратить время на поддержку ненужной сущности. Не говоря уж о том, что в серьезном приложении всегда находятся какие-нибудь промо-страницы, где все перевернуто с ног на голову, и тут проще уже написать отдельный лейаут. Ну и никто не мешает отдельные файлы в лейауте подключать. И еще, можно ли задавать несколько тем? Одновременно - нет, задавать произвольную тему при запросе - пожалуйста: Yii::app()->theme = 'default'; // используется тема default. Но, в общем, в этом нет большого смысла, этот функционал требуется крайне редко. Допустим для самого сайта, а потом для админской панели? Можно, но я бы не стал так делать. Вам надо задавать тему либо в конфиге, либо в рантайме, и это может быть просто лишней информацией. С другой стороны, если у вас разные конфиги для админки и фронтэнда, то почему бы и не развязать визуальные представления.Ответ 2
Можно задавать сколько угодно тем. При использовании темы ее надо указать в конфиге: return array( 'name' => 'SiteName', 'theme' => 'themeDirectory' //Чувствительна к регистру в Unix-based системах //... ); Использовать можно на свое усмотрение, и сколько угодно (Например разрешить авторизированным пользователям выбирать тему самим, а неавторизированным писать ее же в куки) Вот небольшой Guide по темам
Комментариев нет:
Отправить комментарий