I know & used the very basic Zend Framework's Layouts where I used 1 layout throughout the whole site. But now I need a more intermediate/organized setup.
div#mainContent
taking up the whole 12 columns (using 960gs)div#mainContent
taking up 9 columns + side bar with 3 columnsI am thinking of using 1 base layout where the 2 sub layouts will "extend". The base layout will just contain the <html>
declarations headScripts etc till the <body>
then the sublayouts will contain definations for the wrapping divs
div.grid_12, grid_9, grid_3
. How can I implement this "extending", basically, I just want to reuse code
Also whats a good way to render sidebar boxes/widgets
I'm switching between layouts depending on the subdomain of my website.
Here's the layout plugin I'm using...
class App_Layout_Controller_Plugin_Layout extends Zend_Layout_Controller_Plugin_Layout
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$layout = $this->getLayout();
$filename = $layout->getLayoutPath() . '/' . $request->getModuleName() . '.' . $layout->getViewSuffix();
//check if the layout template exists, if not use the default layout set in application.ini
if (file_exists($filename))
{
$this->getLayout()->setLayout($request->getModuleName());
}
}
}
Of course you can modify this for your own needs.
Make sure you set up you application.ini correctly too including elements like the following...
resources.layout.layout = "default"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.pluginClass = "App_Layout_Controller_Plugin_Layout"
In my case I have:
default.phtml, admin.phtml, clients.phtml
I hope this helps...
Angel