使用COMMON基本代码的Zend,MULTIPLE布局

时间:2012-08-02 15:03:26

标签: zend-framework layout

我知道如何使用多个布局(每个控制器和每个模块)。

我有5个不同的布局,每次调用diffirent模块时它们都会正常切换。但问题是我看到它们都有一些常用代码(如doctype,样式表等)。

你能告诉我Zend是否允许使用多个布局但是为它们设置公共根目录?现在,如果我想添加样式表,我需要修改5个不同的布局,我相信可以更好的方式完成。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我通常会创建一个包装器布局,使用子布局呈现内容。

  1. 在名为sublayouts的布局中创建一个新文件夹
  2. 使用一个默认值创建所需数量的子布局,因此如果您不需要,则无需进行设置。

    /应用   /布局     wrapper.phtml     / sublayouts       default.phtml

  3. 在wrapper.phtml中:

    $sublayout = $this->layout()->sublayout ? $this->layout()->sublayout : 'default';
    echo $this->render('sublayouts/' . $sublayout . '.phtml');
    

    在sublayouts / default.phtml中(添加任何内容):

    <?= $this->layout()->content ?>
    

答案 1 :(得分:0)

有用于这些情况的视图帮助程序。 headScriptheadLink

在您的布局中,您需要做的就是

echo $this->headScript(), $this->headStyle();

然后,在你的bootstrap中添加:

public function _initScriptsAndStyles()
{
  //get the view object
  $this->bootstrap('view');
  $view = $this->getResource('view');

  //add javascript
  $view->headScript()
       ->appendFile('/js/your-js.js')
       ->appendFile('/js/another-js.js');

  //add css files
  $view->headLink()
       ->appendStylesheet('/styles/basic.css');
}