Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Зачем нужны темы в yii?

#php #yii


Здравствуйте. Подскажите, зачем нужны темы и когда лучше их использовать? Почему
бы не пользоваться просто представлением для разделения статических частей страницы
(шапка, футер)? Не совсем понимаю...
И еще, можно ли задавать несколько тем? Допустим для самого сайта, а потом для админской
панели? Как реализуется смена темы?    


Ответы

Ответ 1



Подскажите, зачем нужны темы и когда лучше их использовать? Для того же, для чего и в вордпрессе: для предоставления возможности разного дизайна одного и того же приложения без необходимости переписывать файлы. Также темы костыльно реализуют наследственность шаблонов: при задании шаблонов в дефолтной папке приложения их можно переопределить шаблонами в папке темы, и, таким образом, отобразить измененное представление в дефолтном лейауте и наоборот. Почему бы не пользоваться просто представлением для разделения статических частей страницы (шапка, футер)? Потому что в Yii сделан выбор в пользу общего шаблона (лейаута) и виджетов. Произвольные места в шаблоне все равно упираются в необходимость виджетов, и статические части просто становятся лишним грузом - их проще оформить в виде виджетов и не тратить время на поддержку ненужной сущности. Не говоря уж о том, что в серьезном приложении всегда находятся какие-нибудь промо-страницы, где все перевернуто с ног на голову, и тут проще уже написать отдельный лейаут. Ну и никто не мешает отдельные файлы в лейауте подключать. И еще, можно ли задавать несколько тем? Одновременно - нет, задавать произвольную тему при запросе - пожалуйста: Yii::app()->theme = 'default'; // используется тема default. Но, в общем, в этом нет большого смысла, этот функционал требуется крайне редко. Допустим для самого сайта, а потом для админской панели? Можно, но я бы не стал так делать. Вам надо задавать тему либо в конфиге, либо в рантайме, и это может быть просто лишней информацией. С другой стороны, если у вас разные конфиги для админки и фронтэнда, то почему бы и не развязать визуальные представления.

Ответ 2



Можно задавать сколько угодно тем. При использовании темы ее надо указать в конфиге: return array( 'name' => 'SiteName', 'theme' => 'themeDirectory' //Чувствительна к регистру в Unix-based системах //... ); Использовать можно на свое усмотрение, и сколько угодно (Например разрешить авторизированным пользователям выбирать тему самим, а неавторизированным писать ее же в куки) Вот небольшой Guide по темам

Комментариев нет:

Отправить комментарий