Как загрузить шаблоны представления по умолчанию, когда они недоступны в модуле? Zend Framework - PullRequest
0 голосов
/ 20 марта 2010

Привет, моя проблема с Zend Framework ... к сожалению, не решен после 3 часов поиска:

У меня есть модульное Zend-приложение, которое работает нормально, если у меня есть модуль и шаблоны ошибок в вызываемом модуле. Если я удаляю error / error.phtml из представлений / скриптов /, появляется фатальная ошибка, что каталог отсутствует.

Короче говоря: как я могу определить, что Zend возвращается к модулю по умолчанию в этой ситуации?

Большое спасибо заранее.

1 Ответ

1 голос
/ 20 марта 2010

Когда вы визуализируете представления, существует своего рода «стек», который средство просмотра представлений ищет для путей к вашим сценариям представления. Порядок, в который вы добавляете пути скриптов к представлению, определяет порядок поиска. Итак:

$view = new Zend_View();
$view->addScriptPath(APPLICATION_PATH . "/default/views/scripts/")
     ->addScriptPath(APPLICATION_PATH . "/modules/module/views/scripts/");

В приведенном выше примере он сначала просматривает «/ modules ...», затем «/ default ...», а затем на самом деле ищет представление в текущем каталоге, для которого выполняется скрипт ваш скрипт просмотра.

Вы также можете добавить пути макета, используя тот же метод. Еще один совет, который я нашел полезным, - это изменение viewScriptPathSpec, который сообщает представлению путь к файлу для рендеринга:

$this->_helper->viewRenderer->setViewScriptPathSpec(":controller/:action.:suffix");

Я считаю, что это настройка по умолчанию, но вы можете изменить ее, если хотите. Например, у меня есть модуль CMS, который, независимо от имени контроллера, всегда отображает сценарии в папке сценариев представления «crud»:

$this->_helper->viewRenderer->setViewScriptPathSpec("crud/:action.:suffix");
...