Управление несколькими макетами с помощью Zend_Layout? - PullRequest
1 голос
/ 20 октября 2011

Я пытаюсь реализовать шаблонную систему в Zend Framework.

Я в основном использую, чтобы поместить все файлы partials и варианты шаблона в один файл, но по мере увеличения шаблонов это становится очень неуправляемым.

например

/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'); раньше, но для новинки я не могу использовать это сейчас.

КакМогу ли я сделать что-то это?

1 Ответ

2 голосов
/ 20 октября 2011

Вы также можете определить полный путь в вашей функции layout.

$this->_helper->layout->setLayout('template1/partial/banner');

Еще один способ выполнить эту задачу - отключить макет для текущего действия, а затем отобразить его в любом файле phtml. Например первый disable макет для текущего действия

   $this->_helper->layout->disableLayout();

Затем просто визуализируйте в любой HTML-файл, подобный этому

      $this->render("complete path to your phmtl file");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...