Sunday, May 6, 2012

Module in Zend Framework


File application.ini

includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
autoloadernamespaces[] = "Vts_"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1

;enable module
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.view[] =
;Set run bootstrap module.
resources.modules[] = "default"
resources.modules[] = "admin"
;set module default
resources.frontController.defaultModule = "default"

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/"

;create plugin layout
resources.frontController.plugins.layout = "Application_Plugin_Layout"

resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password =
resources.db.params.dbname = tincongnghevn
resources.db.isDefaultTableAdapter = true
resources.db.params.driver_options.1002 = "SET NAMES UTF8;"

Plugin layout

<?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;
            }
        }
    }
}
?>

Bootstrap Admin

<?php
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap  {

    protected function _initAutoload(){      
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'basePath' => APPLICATION_PATH.'/modules/admin/',
            'namespace' => 'Admin_'
        ));
        return $autoloader;
    }
}


No comments:

Post a Comment