Yii: Как передать переменную в шаблон (layout) из контроллера?

Yii: Как передать переменную в шаблон (layout) из контроллера? Когда для разных контроллеров (читай, разных разделов сайта) нужно установить разный фон, но нет необходимости создавать новую тему оформления (theme), то просто передаём переменную с названием класса или id.

В начале соответствующего контроллера объявляю переменную

public $body_id = 'movies'; 

И дальше в шаблоне /views/layouts/main.php использую эту переменную (например, в теге <body>)

<body id="<?php echo isset($this->body_id) ? $this->body_id : ''; ?>">  

Осталось в css-файл добавить стиль оформления '#movies'

body {
background: #170a01 url(body-bg.jpg) no-repeat center top;
} 

body#movies {
background: #3f1d02 url(body-bg-movies.jpg) repeat-y center top;
} 
Натали Портман, Natalie Portman
Источник: loco.ru

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (1)     Подпишитесь на RSS комментариев к этой статье.

1 комментарий

#919
Владимир говорит:
July 19, 2013 at 12:11 am
Неплохо было бы и атрибут ID внести в тернарный оператор, что бы при отсутствии идентификатора он пустым на странице не был.