Как мне включить верхний и нижний колонтитулы с макетом в Zend Framework?
Я бы хотел, чтобы Zend_Layout включал header.phtml и footer.phtml с [layouy name].phtml.
Как я могу это сделать? Я пытался читать коды в Zend_Layout, Zend_Layout_Controller_Plugin_Layout. Я до сих пор не могу понять это..
4 ответа
Вы можете включить файлы верхнего и нижнего колонтитула в файл layout.phtml. Вот пример:
<div id="header"><?= $this->render('layouts/header.phtml') ?></div>
<div id="nav"><?= $this->render('layouts/nav.phtml') ?></div>
<div id="content"><?= $this->layout()->content ?></div>
<div id="footer"><?= $this->render('layouts/footer.phtml') ?></div>
Ответ Cballou, вероятно, то, что вы хотите, но я думал, что я добавлю это там для хорошей меры. Если вы хотите визуализировать отдельные скрипты верхнего и нижнего колонтитула в разных частях вашего сайта, вы можете сделать это из каждого контроллера следующим образом:
Zend_Loader::loadClass('Zend_View');
$header = new Zend_View();
//Set header variables here
$this->view->header = $header->render('header.phtml');
Затем используйте заголовок $this->, чтобы вытащить визуализированный заголовок из макета. Аналогично с нижним колонтитулом.
Просто еще один способ:
Это пойдет в контроллере:
$this->view->header = "header.phtml";
Это пойдет в представлении:
include($this->header);
Даже если мы не используем контроллер (но только в виде), мы можем использовать:
include("header.phtml");
Я понимаю, что этот вопрос задан 4 годами, но для тех, кто сталкивается с этим и не понимает, что есть лучший способ сделать это с последним ZF2, вот "лучший способ" - Zend Framework 2 - Как включить частичное из библиотеки