我正在尝试在zend框架中实现模板系统。
我基本上习惯将所有部分文件和模板变体放在一个文件中,但随着模板的增加,这种情况非常难以管理。
例如
/application/layout/script/template1partial-banner.phtml
/application/layout/script/template1partial-footer.phtml
/application/layout/script/template1variation1.phtml
/application/layout/script/template1variation2.phtml
/application/layout/script/template2variation1.phtml
/application/layout/script/template2variation2.phtml
你可以看到,这是多么难以管理 所以我想在这个结构下管理它
/application/layout/script/template1/partial/banner.phtml
/application/layout/script/template1/partial/footer.phtml
/application/layout/script/template1/variation/1.phtml
/application/layout/script/template1/variation/2.phtml
/application/layout/script/template2/partial/banner.phtml
/application/layout/script/template2/partial/footer.phtml
/application/layout/script/template2/variation/1.phtml
/application/layout/script/template2/variation/2.phtml
定义部分不是问题,您可以使用$this -> render($this -> getTemplateName()."/partials/banner.phtml");
它的变化,这是主要问题
我之前使用过$this -> _helper -> layout -> setLayout('template1variation1');
,但对于新的东西我现在不能使用它。
我该怎么办呢?
答案 0 :(得分:2)
您还可以在layout
功能中定义完整路径。
$this->_helper->layout->setLayout('template1/partial/banner');
执行此任务的另一种方法是禁用当前操作的布局,然后将其呈现给任何phtml文件。例如,当前操作的第一个disable
布局
$this->_helper->layout->disableLayout();
然后只渲染到像这样的任何html文件
$this->render("complete path to your phmtl file");