Модульная Платформа Зенда с основой partials

В настоящее время я нахожу, что должен продолжать копировать partials для различных модулей.

Я хотел бы иметь каталог случая для всего partials, к которому получат доступ.

У кого-либо есть хороший способ сделать это?

Спасибо

7
задан Charles 6 April 2011 в 03:10
поделиться

2 ответа

$this->partial('directoryOfPartials/partial.phtml', $model);

Я думаю, вы также можете использовать $ this-> partial с тремя аргументами. Второй аргумент - это имя модуля, а третий аргумент становится моделью.

Взято из: http://framework.zend.com/manual/en/zend.view.helpers.html

Пример № 10 Отрисовка частичных файлов в Другое Модули Иногда часть будет существовать в другом модуле. Если вы знаете имя модуля, вы можете передать его в качестве второго аргумента функции либо partial (), либо partialLoop (), перемещая $ аргумент модели для третьей позиции . Например, если есть часть пейджера , которую вы хотите использовать, это в модуле 'list', вы можете получить его следующим образом:

  partial ('pager.phtml', 'list', $ pagerData)?> 
 

Таким образом, вы можете повторно использовать частичные данные , созданные специально для других {{1 }} модули. Тем не менее, вероятно, лучше помещать повторно используемые частичные файлы в пути к сценариям общего представления.

РЕДАКТИРОВАТЬ - Доступ к частичному представлению из области действия контроллера

$this->view->getHelper('partial')->partial('comments.phtml');
8
ответ дан 7 December 2019 в 01:19
поделиться

Отличное спасибо :)

Однако, как мне сделать это через контроллер? У меня есть fancybox и я настроил ajax layout:

$this->view->layout()->setLayout('ajax');

$errors = array('You have lost your rights to download this clip, you have downloaded it the maximum amount of times.');

$this->render($this->view->partial('partials/errors.phtml', 'default', array('errors' => $errors)), NULL, true);

Всплывающее окно как нужно, но со следующей ошибкой:

Problem: Method "partial" does not exist and was not trapped in __call()

Я вроде как предполагал, что $this->view->partial будет таким же, как использование $this->partial внутри шаблона представления, но, похоже, нет. Идеи?

Решено с помощью:

Bootstrap initView, добавлено:

$view->addScriptPath('../application/layouts/partials');

Переместил мои partials в эту директорию. Затем в моем контроллере я делаю:

$this->view->layout()->setLayout('ajax');
$this->view->form  = $form;
$this->renderScript('login.phtml');

Thanks goes out to #zftalks SmartSsa

2
ответ дан 7 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: