Я попытался прочитать вопрос, найденный ЗДЕСЬ: Конфигурация модуля и конфигурация макета в Zend Framework Это было описано как все, что мне нужно знать о макетах - но - боюсь, я нахожу это немного трудно понять.
У меня есть несколько контроллеров Zend:
class FirstController extends Zend_Controller_Action {
public function init() { /* stuff */ }
public function indexAction() { /* stuff */ }
public function indexBrowse() { /* stuff */ }
}
class SecondController extends Zend_Controller_Action {
// stuff
}
class ThirdController extends Zend_Controller_Action {
// stuff
}
Мне нужно, чтобы у них была следующая договоренность.
- FirstController & Second Controller совместно используют заголовок
- FirstController - indexAction и browseAction совместно используют дополнительный заголовок
- Третий контроллер - имеет собственный заголовок или, возможно, «без заголовка» (для ajax)
Как есть, я получаю огромную репликацию в файле view/script/<actionname>.phtml
http://framework.zend.com/manual/en/zend.layout.quickstart.html
Имеет больше информации, но я не смог найти ключевые сведения, которые принесут мне все это домой.
Из первого документа, приведенного выше, я предполагаю, что в моем файле application.ini
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
Но должен ли я создать папку с именем "Layouts" или я должен использовать какую-то папку views/common
? Файл называется layout.php
?
Тогда внутри layout.php
правильно ли я понимаю, что
<div id="content"><?php echo $this->layout()->content ?></div>
Будет ли отображаться файл PHTML
отдельного действия? и
public function anotherAction() {
$this->_helper->layout->setLayout('foobaz');
}
Можно ли заставить все действие использовать другой файл макета (один в папке макетов с именем 'foobaz.php')?
Спасибо, что нашли время прояснить это для меня.