Zend Framework и шаблоны.

unlex

Новичок
Zend Framework и шаблоны.

Только начал разбираться с фрэймворком, поэтому многое еще не ясно. Задам вопрос на конкретном примере.
К примеру, на странице mysite/gallery/list надо вывести превьюшки фотографий с названием, в рамочке и т.д.
У меня есть собственное подобие фреймворка и я всегда работал так - главный контроллер определяет, что надо вызвать контроллер галереи, тот в свою очередь вызывает свой метод list(). Этот метод обращается к модели и формирует массив с данными о фотках. Есть шаблон photo.tpl, в который оборачивается каждая фотка из возвращенного массива. Работал со Smarty поэтому было примерно так:

PHP:
foreach ($raw_photo_array as $value){  
      $smarty->assign('photo',$value);
      $decorated_array[] = $smarty->fetch('photo');
 }
Затем передавал обернутый массив в шаблон list.tpl, где строил вывод изображений. А главный контроллер уже показывал layout.tpl и подставлял куда надо данные из list.tpl.

в случае с Zend Framework такая последовательность действий проблематична, а с использованием ViewRenderer вообще, по моему невозможна.
Таким образом проблема в том чтобы в одном и том же методе вытянуть данные из одного шаблона и затем впихнуть в другой, данные из которого затем должны подставиться в главный layout.

Надеюсь не слишком запутано. )
 

AmdY

Пью пиво
Команда форума
в Zend_View вроде тоже есть assign и fetch, в чём проблема.

-~{}~ 17.09.08 19:16:

foreach ($raw_photo_array as $value){
$view->photo = $value;
$decorated_array[] = $view->render('photo.php');
}
 

CCCP_MOCKBA

Новичок
в контроллере можно сделать так
$view = new Zend_View();
$view->setScriptPath('.');
$this->view->one = $view->render('/path/photo.phtml');

отрендерит твой теплейт photo.phtml в переменную которая будет в твоем темплейте list.phtml и все это будет вставлено к лайоут который ты указал

или же:

в своем темплейте list.phtml делай обращение к темплейту photo.phtml
<?= $this->partial('photo.phtml', array($this->variables)) ?>

вебщем методов достаточно как это реализовать
 

YuriyA

Новичок
Как-то мудрено вопрос ты задал. 3 раза перечитал, ничего не понял. Зачем данные по шаблонам гонять? Они и так видны в каждом шаблоне $this->var
 
Сверху