我创建了一个模块'admin'。我还为此管理模块创建了一个布局。如何将此布局永久附加到“admin”模块。有人可以建议我在哪里以及如何为此目的编写代码。它是否会在bootstrap文件中?
答案 0 :(得分:1)
如果这是一个像你说的模块,你可以简单地将layout.phtml文件添加到模块的layout / scripts /文件夹中。
如果您的layout.phtml有不同的名称,例如admin.phtml,您只需在控制器中添加以下内容
$this->_helper->layout->setLayout('admin');
应首先检查模块的布局文件夹,然后检查默认文件夹。
答案 1 :(得分:0)
您可以为布局脚本指定备用路径:
if (!$registered) {
//for PUBLIC role
Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH.'/layouts/scripts/pub');
} else {
//For registered users
Zend_Layout::getMvcInstance()->setLayoutPath(APPLICATION_PATH.'/layouts/scripts');
}
答案 2 :(得分:0)
在你的bootstrap文件中
protected function _initAutoloader() {
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH . '/modules/default'), array(
'namespace' => 'Admin',
'basePath' => APPLICATION_PATH . '/modules/admin'
)
);
return $autoloader;
}
的application.ini
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
includePaths.library = APPLICATION_PATH "/../library"
appnamespace = "Default"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.defaultModule = "default"
resources.frontController.defaultController = "index"
resources.frontController.defaultAction = "index"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "layout"
resources.modules = ""
resources.view[] =
在管理员的每个控制器中,您需要将此行添加到init函数以更改布局。
$这 - > _helper->布局() - > setLayout的( “管理员”);