views:

840

answers:

2

Hi,

I would like to let Zend_Layout include header.phtml and footer.phtml with [layouy name].phtml.

How do I do that? I tried to read codes in Zend_Layout, Zend_Layout_Controller_Plugin_Layout. I still can't figure out it..

+2  A: 

You could include your header and footer files from within your layout.phtml file. Here's an example:

<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
+2  A: 

cballou's answer is likely what you want, but I thought I'd throw this in there for good measure. If you'd like to render separate header and footer view scripts in different parts of your site, you can do it from within each controller like so:

Zend_Loader::loadClass('Zend_View');
$header = new Zend_View();
//Set header variables here
$this->view->header = $header->render('header.phtml');

Then use $this->header to pull the rendered header from within your layout. Likewise with the footer.

Travis
I didn't know that I can store rendered html in a variable!! thanks a lot!
Moon