Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
galem
цитировать
Зарегистрирован: 22 Ноя 2007 09:18:15 Сообщения: 16
|
Добавлено: 11 Янв 2008 14:43:40 Заголовок сообщения: layouts |
|
|
Подскажите, пожста, как переключаться между layout'ами?!
Допустим, есть 2 layout: default.thtml и user.thtml
Везде используется default.thtml, но в действии X контроллера Y используется user.thtml. Как это сделать? Спасибо заранее. |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 11 Янв 2008 18:13:01 Заголовок сообщения: |
|
|
$this->layout = 'mysyper_layout'; |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 11 Янв 2008 18:14:06 Заголовок сообщения: |
|
|
http://api.cakephp.org/1.2/class_controller.html#ea20fa396e0fa1b8a500e7b8276e4d9a |
|
Вернуться к началу |
|
|
galem
цитировать
Зарегистрирован: 22 Ноя 2007 09:18:15 Сообщения: 16
|
Добавлено: 13 Янв 2008 00:44:05 Заголовок сообщения: |
|
|
Vlad писал(а): | $this->layout = 'mysyper_layout'; |
Я так понимаю, что данное определение подходит только если определяешь лэйаут для всего контроллера. Для конкретного действия это не подходит. По крайней мере у меня не получилось.
А вот товарищу КРОТОВУ спасибо за ссылку! Просмотрев, обнаружил функцию render(action, layout); Всё сработало, ещё раз спасибо!!! |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 13 Янв 2008 12:47:48 Заголовок сообщения: |
|
|
Подвох гдето. galem, render() тобой вызываться не должен (beforeRender\afterRender работать не будут и с кэшированием проблемы будут).
Установка $this->layout в методе контроллера достаточно (/forum/viewtopic.php?t=305)
Как и что ты вызываешь в контроллере и чего рендериш на странице? |
|
Вернуться к началу |
|
|
Антон Исайкин Site Admin цитировать
Зарегистрирован: 08 Окт 2007 12:02:56 Сообщения: 150 Откуда: Санкт-Петербург
|
Добавлено: 13 Янв 2008 12:49:48 Заголовок сообщения: |
|
|
galem писал(а): | Vlad писал(а): | $this->layout = 'mysyper_layout'; |
Я так понимаю, что данное определение подходит только если определяешь лэйаут для всего контроллера. Для конкретного действия это не подходит. По крайней мере у меня не получилось.
А вот товарищу КРОТОВУ спасибо за ссылку! Просмотрев, обнаружил функцию render(action, layout); Всё сработало, ещё раз спасибо!!! |
Да ну?
Код: |
class NewsController extends AppController {
var $layout = 'default';
function delete($id = null) {
// бла-бла
}
function feed() {
$this->layout = 'rss';
// бла-бла
}
}
|
Неужели на выходе получим одинаковые layout? |
|
Вернуться к началу |
|
|
galem
цитировать
Зарегистрирован: 22 Ноя 2007 09:18:15 Сообщения: 16
|
Добавлено: 14 Янв 2008 10:12:57 Заголовок сообщения: |
|
|
Антон Исайкин писал(а): | galem писал(а): | Vlad писал(а): | $this->layout = 'mysyper_layout'; |
Я так понимаю, что данное определение подходит только если определяешь лэйаут для всего контроллера. Для конкретного действия это не подходит. По крайней мере у меня не получилось.
А вот товарищу КРОТОВУ спасибо за ссылку! Просмотрев, обнаружил функцию render(action, layout); Всё сработало, ещё раз спасибо!!! |
Да ну?
Код: |
class NewsController extends AppController {
var $layout = 'default';
function delete($id = null) {
// бла-бла
}
function feed() {
$this->layout = 'rss';
// бла-бла
}
}
|
Неужели на выходе получим одинаковые layout? |
СОРИ-)
Сглупил. Действительно...работает! Просто ввиду своей рассеяности или чего ещё в методе лэйаут определял Код: | $this->layout = 'user'; | а вот переменную Код: | var $layout = 'default'; | - НЕТ!-) |
|
Вернуться к началу |
|
|
|