У меня есть несколько помощников вида, которые добавляют файлы JavaScript, когда они необходимы (например, чтобы только формы использовали CKEditor и тому подобное).Моя структура каталогов (упрощенная для включения только соответствующих файлов) такова:
application
--forms
--Project
AddIssue.php
--modules
--default
--views
--helpers
JQueryUI.php
Wysiwyg.php
--project
--controllers
ProjectController.php
--views
--scripts
--project
version.phtml
issueadd.phtml
Что я хочу сделать:
- включить CKEditor в представление
project/project/issueadd
- включает пользовательский интерфейс jQuery в
project/project/version
Когда я нахожусь внутри скрипта вида, вызов <?php $this->jQueryUI(); ?>
работает как чудо, даже если помощник находится в каталоге помощников модуля по умолчанию.Однако это не относится к контроллеру и форме.
В контроллере ProjectController.php
, versionAction()
я попытался позвонить:
$this->view->jQueryUI();
, и эффект былисключение:
Сообщение: Плагин с именем 'JQueryUI' не найден в реестре;используемые пути: Project_View_Helper_: C: / xampp / htdocs / bugraid / application / modules / project / views \ helpers / Zend_View_Helper_: Zend / View / Helper /
Аналогично, в форме AddIssue.php
,Я попробовал это:
$this->getView()->wysiwyg();
и снова возникло исключение:
Сообщение: Плагин по имени 'Wysiwyg' не найден в реестре;используемые пути: Project_View_Helper_: C: / xampp / htdocs / bugraid / application / modules / project / views \ helpers / Zend_View_Helper_: Zend / View / Helper /
Очевидно, что оба сработают, если мои помощники по просмотрунаходились в справочных каталогах модулей / контроллеров, из которых они вызываются, но поскольку они используются во многих модулях, я бы хотел, чтобы они были в каталоге помощников вида модуля по умолчанию.
Итак,мои вопросы:
- Как мне получить доступ к этим помощникам вида из контроллера и формы?
- Есть ли более простой способ обойти это (кроме простого включения всего javascriptфайлы в макете)?Как создать плагин или помощник действий?(Я не делал этого раньше, поэтому я действительно не знаю, я только начинаю свое приключение с ZF).