Изменение Zend_ViewHelper_Pagination_Controller Partial-Path
У меня есть приложение Zend-Framework. Я использую модуль-структуру, которая Zend_Controller_Front
обеспечивает. Вот небольшая выдержка из моей структуры каталогов (только важные части для этого вопроса):
root-directory
- modules
- blog
- views
- scripts
- index_index.phtml
- views
- pagination_control.phtml
Как вы можете видеть, у меня есть скрипты вида, специфичные для модуля / контроллера / действия. Эти виды расположены в соответствующем пути (в данном случае modules/blog/views
, У меня также есть более общий каталог просмотра, расположенный в корневом каталоге моего приложения.
Что я делаю сейчас, чтобы позвонить PaginationControl
-ViewHelper в modules/blog/views/scripts/index_index.phtml
, Этот помощник по видам, однако, как вы знаете, представляет частичное представление. ViewHelper пытается найти частичное представление в том же каталоге (то есть modules/blog/views/scripts
, Так как я хочу использовать тот же view-частичный скрипт (pagination_control.phtml
) в разных модулях я хочу сделать это частичное представление доступным из каждого модуля. Поэтому я хочу поместить этот файл в общем views
-папка в корневом каталоге.
Однако это не работает. ViewHelper всегда ищет скрипт вида в соответствующей папке модуля.
Любой человек может помочь сделать его доступным из моего общего views
-directory?
1 ответ
Как вы можете видеть здесь, поскольку элемент управления разбиением на страницы ZF 1.6.2 может принимать массив вместо строки для частичного аргумента, и в этом массиве вы устанавливаете 1-е имя частичного и 2-е имя модуля. Это все еще без документов.
Используя массив, вы можете указать модуль ("общий"?) Для частичного использования.
Реальный вызов будет (с $part ваш третий аргумент для помощника представления paginationControl()):
$this->view->partial($partial[0], $partial[1], $pages);
Это полезно, если у вас есть "общий" модуль.
Теперь здесь вы используете общую папку. Вы должны установить его как общую папку для вашего Zend_View следующим образом (в Boostrap или в коде ресурсов):
$view->addScriptPath("/root-directory/views");
или лучше:
$view->addScriptPath("/root-directory/views/partials");
И тогда вам не нужно указывать каталог модуля. Zend_View всегда должен проверять частичное в этой папке.