2013-02-18 2 views
2

создать свою собственную форму Зенд элемент - App_Form_Element_WysiwygКак включить js и css в элементы формы Zend?

<?php 

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

} 

Затем я создаю помощника для 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 файлов для WYSIWYG редактора?

ответ

4

Помощник headScript() позволяет добавлять или изменять теги скриптов в заголовке. Таким образом, в вашем помощнике вы можете сделать:

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

то просто обеспечить ваш макет вызова помощника где-то в головной секции:

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

для вывода HTML. Существует также помощник headStyle(), который работает аналогичным образом и может использоваться для вашего CSS.

Соответствующие документы:

+0

Спасибо, это работает. Но что, если я хочу использовать AJAX, и в ответе сервера нет заголовка, только json с html формы и pates для js и css. Есть ли способ получить дорожки js и css из формы? – Ildar

+0

Если вы анализируете ответ AJAX как JSON, он ничего не может «запустить». Но JS-код, создающий запрос AJAX, может добавить JS и CSS в ваш заголовок страницы. Точно, как это сделать, это немного зависит от того, как вы делаете запрос AJAX. –

+0

Я делаю запрос AJAX, разбираю JSON, и если существует свойство js, я включаю js-файлы или js-код, если существует свойство css, я включаю css-файлы. – Ildar

Смежные вопросы