I've tried reading the question found HERE: Module configuration and layout configuration in zend framework It was described as being everything I need to know about layouts - but - I'm afraid I'm finding it a bit difficult to understand.
I've got a number of Zend controllers:
class FirstController extends Zend_Controller_Action {
public function init() { /* stuff */ }
public function indexAction() { /* stuff */ }
public function indexBrowse() { /* stuff */ }
}
class SecondController extends Zend_Controller_Action {
// stuff
}
class ThirdController extends Zend_Controller_Action {
// stuff
}
I need them to have the following arrangement.
- FirstController & Second Controller share a header
- FirstController - indexAction and browseAction share an additional header
- Thirdcontroller - has it's own header or possibly "no header" (for ajax)
As it stands, I'm getting tremendous replication in the view/script/<actionname>.phtml
file http://framework.zend.com/manual/en/zend.layout.quickstart.html
Has more information but I've not been able to find the key pieces of information that bring this all home for me.
From the first document above I'm guessing the following goes into my application.ini
file
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
But am I expected to create a folder called "Layouts" or should I be using some sort of views/common
folder? Is the file then called layout.php
?
Then, inside the layout.php
am I understanding correctly that
<div id="content"><?php echo $this->layout()->content ?></div>
Will render the individual action's PHTML
file? and
public function anotherAction() {
$this->_helper->layout->setLayout('foobaz');
}
Would make the entire action use a different layout file (one in the layouts folder called 'foobaz.php')?
Thanks for taking the time to clear this up for me.
Yea, you have it right,
Should render the page with a different layout, and simply output the views contents in the layout()->content place holder.
Another way would be to have a single layout, and use partials to load different headers.
In your action you could have
Then in your layout you could just do this
This is probably over the top.