Sunday, April 29, 2012

Module and Layout in Zend Framework

Enable module 

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.view[] =
resources.frontController.defaultModule = "default"

Layout follow module

resources.layout.layout = "layout"
resources.layout.layoutpath = APPLICATION_PATH "/layouts/scripts/default/"

admin.resources.layout.layout = "layout"
admin.resources.layout.layoutpath = APPLICATION_PATH "/layouts/scripts/admin/"
resources.frontController.plugins.layout = "Application_Plugin_Layout"

Create folder layout
layouts
     scripts
        admin
           layout.phtml
        default
          layout.phtml
   
Class Layout Plugin

<?php
class Application_Plugin_Layout extends Zend_Controller_Plugin_Abstract {
    public function preDispatch() {
        $front = Zend_Controller_Front::getInstance();
        $request = $front->getRequest();
        $layout = Zend_Layout::getMvcInstance();
        $module = $request->getModuleName();
       
        switch ($module) {
            case 'admin': {
                $layout->setLayoutPath(APPLICATION_PATH.'/layouts/scripts/'.$module);
                $layout->setLayout('layout');
                break;
            }
            default:{
                $layout->setLayoutPath(APPLICATION_PATH.'/layouts/scripts/default');
                $layout->setLayout('layout');
                break;
            }
        }
    }
}
?>


No comments:

Post a Comment