макеты Zend Framework - PullRequest
       2

макеты Zend Framework

0 голосов
/ 22 марта 2012

Согласно Руководству Роба Аллена : чтобы использовать макет в моем приложении Zend, я должен поместить:

$response = $this->getResponse();
$response->insert('header', $this->view->render('header.phtml')); 
$response->insert('sidebar', $this->view->render('sidebar.phtml')); 
$response->insert('footer', $this->view->render('footer.phtml')); 

в функцию init () IndexController, чтобы сгенерировать заголовок, нижний колонтитул и боковая панель для каждого действия.Я хотел бы использовать один и тот же макет для всех моих представлений, я должен поместить эту часть кода во все контроллеры ???(Я использую ZF 1.11)

спасибо.

Ответы [ 4 ]

1 голос
/ 22 марта 2012

Блог, на который вы ссылаетесь, уже почти 5 лет и никоим образом не отражает текущее состояние ZF 1.11. Вам следует использовать официальную документацию Zend_Layout или Учебник по Robs ZF1

1 голос
/ 22 марта 2012

Вы можете инициализировать макет Zend, выполнив в загрузчике следующее:

Zend_Layout::startMvc();

и вы также можете указать, где вы храните макеты

$layout = Zend_Layout::getMvcInstance();
$layout->setLayoutPath(__PATH_TO_LAYOUT_FOLDER_);

Когда это будет сделано, это будет намного эффективнее, чем рендеринг одного и того же представления во всех ваших контроллерах.

0 голосов
/ 22 марта 2012

это даже проще, чем пока представлено.В вашем application.ini добавьте эту строку

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" и макет по умолчанию для этого пути будет называться layout.phtml.

Если вы хотите изменить путь или макет по умолчанию, вам может понадобиться две строки в вашем application.ini

resources.layout.layoutPath = APPLICATION_PATH "/layouts"
resources.layout.layout = master

в этом случае макет по умолчанию будет master.phtml.

Чтобы перейти от макета по умолчанию к альтернативному, достаточно просто добавить:

public function preDispatch() {

        $this->_helper->layout->setLayout('admin');
    }

к контроллеру, которому требуется новый макет, можно добавить логику, чтобы альтернативный макетприменяется к определенным действиям.

0 голосов
/ 22 марта 2012

Вы хотите макет по умолчанию.Вы можете сделать это вызывая в шаблоне макета.Документация Zend Framework показывает это лучше: http://framework.zend.com/manual/en/zend.layout.quickstart.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...