必要に応じて 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 UI を含める
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 で冒険を始めたばかりです)。