ZendFramework ZF2 : Загрузка страницы через AJAX

VEV

IT-шник
В общем, натягиваю bootstrap-шаблон, в нем часть страниц нужно грузить AJAX-ом, а часть нет. Причем, есть страницы, которые могут загружаться и так, и эдак.

При AJAX - контент вставляется в блок <div id="ajax"></div>
Если AJAX не используется - выводим <?php echo $this->content ?>

По сути, мне в layout надо поставить условие: если isXmlHttpRequest() - то echo не используем. Однако, не могу найти, как определить в шаблоне AJAX-ом пришел запрос или нет?

В шаблоне - потому как до некоторых классов я достать не могу, т.к. это сторонние модули. Например, вывод страницы с данными пользователя модуля zfcUser.
 

WMix

герр M:)ller
Партнер клуба
http://framework.zend.com/manual/current/en/modules/zend.view.quick-start.html#dealing-with-layouts
возможно это решается контроллером?
$view->setTerminal(true);
вообще от задачи к задаче это может быть иначе, и возможно есть смысл подумать о стратегии
http://framework.zend.com/manual/current/en/modules/zend.view.quick-start.html#creating-and-registering-alternate-rendering-and-response-strategies
 

VEV

IT-шник
Так вот, вся трабла в том, как в темплейте узнать вид запроса, т.е. объект Request получить. Как это делается в контроллерах и в классе модуля - написано много где. А вот как в шаблоне получить - чет не могу нагуглить. Хотя вроде бы где-то видел.
 

WMix

герр M:)ller
Партнер клуба
а почемуб контроллеру не решать "и в классе модуля" и/или на уровне загрузки модуля или даже акции контроллера, какой вид выбрать?, можно все что душе угодно во view передать (хоть Request, хоть $this ), а надо?
 

VEV

IT-шник
Страницы авторизации / регистрации / профиля модуля ZfcUser я переопределил в модуле Application (по wiki ZfcUser), т.е. они мне доступны для редактирования. Но залезть внутрь самого модуля я ж не могу.
 

p@R@dox 55RU

Новичок
зачем так усложнять??
в контроллере можно определить аякс, не аякс. А там уже передать данные во вьюху :) Всё просто же..

if($this->_request->isXmlHttpRequest()) { 'аля-трю-ля-ля....'; }
 
Сверху