Как мне включить верхний и нижний колонтитулы с макетом в 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 - Как включить частичное из библиотеки

Другие вопросы по тегам