我有幾個視圖助手在需要時添加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(); ?>
就像魅力一樣工作,即使助手處於默認狀態t模塊的助手目錄。但是,控制器和表單也是如此。
在控制器ProjectController.php
,versionAction()
,我試圖撥打:
$this->view->jQueryUI();
和效果是一個例外:
消息:插件通過名稱 'jQueryUI的' 在未找到註冊表;使用的路徑:Project_View_Helper_:C:/ XAMPP/htdocs中/ bugraid /應用/模塊/項目/視圖\助手/ Zend_View_Helper_:Zend的/視圖/助手/
類似地,在AddIssue.php
形式,我嘗試這樣做:
$this->getView()->wysiwyg();
並有再次異常:
消息:插件的名字「所見即所得」在註冊表中未找到;使用的路徑:Project_View_Helper_:C:/ XAMPP/htdocs中/ bugraid /應用/模塊/項目/視圖\助手/ Zend_View_Helper_:Zend公司/查看/助手/
顯然,這兩個會,如果我的看法傭工的工作它們被調用的模塊/控制器的輔助目錄,但由於它們在很多模塊中使用,所以我想讓它們在默認模塊的視圖助手目錄中。
所以,我的問題是:
- 我如何訪問這些視圖助手從控制器和表單中?
- 有沒有更簡單的方法來解決這個問題(除了簡單地包括佈局中的所有JavaScript文件)?就像創建一個插件或動作助手一樣? (我之前沒有做過這些事情,所以我真的不知道,我只是開始與ZF一起冒險)。
關於問題1.您應該能夠以通常的方式訪問幫助者。然而,由於它不起作用,我認爲你引導視圖資源的方式以及你如何執行協助者的音樂會註冊或者如何向其添加幫助者路徑存在問題。我粘貼一個在Bootsrap.php中添加助手路徑的示例:http://pastebin.com/5z6yzjnx。這個關閉過程通常適用於ZF的模塊化設置。 – Marcin 2011-02-12 17:12:58
您正在使用JQueryUI.php。是ZF盒子裏的東西還是自己做飯? – akond 2011-02-12 18:30:09
@akond:這是我的烹飪。它只是在頁面的頭部添加`jquery.js`,`jqueryui.js`和`ui.css`,沒什麼特別。我只在一個頁面上使用它,在那裏我需要一些可拖動的東西,並且認爲在所有頁面上都沒有意義。 @Marcin:你的洞察力與往常一樣無價。你介意把它發佈爲答案嗎? – mingos 2011-02-13 01:22:49