Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

layouts

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
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';
- НЕТ!-)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru