2013-02-18 54 views
2

創建我自己的Zend表單元素 - App_Form_Element_Wysiwyg如何在Zend表單元素中包含js和css?

<?php 

class App_Form_Element_Wysiwyg extends Zend_Form_Element_Xhtml 
{ 
    /** 
    * Default form view helper to use for rendering 
    * @var string 
    */ 
    public $helper = 'wysiwyg'; 

} 

然後我所見即所得創建幫手 - App_View_Helper_Wysiwyg

<?php 

class App_View_Helper_Wysiwyg extends Zend_View_Helper_FormTextarea 
{ 
    public function wysiwyg($name, $value = null, $attribs = null) 
    { 
     // Here I want to include js and css for wysiwyg editor 
     ... 
     $xhtml = '<textarea name="' . $this->view->escape($name) . '"' 
       . ' id="' . $this->view->escape($id) . '"' 
       . $disabled 
       . $this->_htmlAttribs($attribs) . '>' 
       . $this->view->escape($value) . '</textarea>'; 

     return $xhtml; 
    } 
} 

我如何可以包括所見即所得的編輯器JS和CSS文件?

回答

4

幫助器headScript()允許您添加或操作標題中的腳本標記。所以,你的助手裏,你可以這樣做:

$this->view->headScript()->appendFile('/path/to/file.js'); 

那麼就確保您的佈局在頭部的地方叫助手:

<?=$this->headScript()?> 

輸出HTML。還有一個headStyle()助手,它以類似的方式工作,可用於您的CSS。

相關的文檔:

+0

謝謝你,它的工作原理。但是,如果我想使用AJAX,並且服務器響應中沒有頭標記,只能使用json和css格式的html進行json。有沒有一種方法可以從窗體中獲取js和css? – Ildar 2013-02-18 22:16:27

+0

如果您將AJAX響應解析爲JSON,它不能「運行」任何東西。但是生成AJAX請求的JS代碼可以將JS和CSS添加到頁面頭部。究竟如何做到這一點取決於你如何製作AJAX請求。 – 2013-02-18 22:45:50

+0

我做AJAX請求,解析JSON,如果存在js屬性我包含js文件或js代碼,如果存在css屬性我包含css文件。 – Ildar 2013-02-18 22:52:59

相關問題