Изменение Zend_ViewHelper_Pagination_Controller Partial-Path - PullRequest
1 голос
/ 21 мая 2011

У меня есть приложение 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 -каталог

1 Ответ

3 голосов
/ 21 мая 2011

Как вы можете видеть здесь , поскольку элемент управления нумерацией ZF 1.6.2 может принимать массив вместо строки для частичного аргумента, и в этом массиве вы устанавливаете 1-е имя частичного и во 2-м имени модуля. Это все еще без документов .

Используя массив, вы можете указать модуль («общий»?) Для частичного использования.

Реальный вызов будет (с $ частичным вашим третьим аргументом для paginationControl () view helper):

$this->view->partial($partial[0], $partial[1], $pages);

Это полезно, если у вас есть «общий» модуль.

Теперь здесь вы используете общую папку. Вы должны установить его как общую папку для вашего Zend_View следующим образом (в Boostrap или в коде ресурса):

$view->addScriptPath("/root-directory/views");

или лучше:

$view->addScriptPath("/root-directory/views/partials");

И тогда вам не нужно указывать каталог модуля. Zend_View всегда должен проверять частичное в этой папке.

...