Я создал элемент формы и помощник, используя ZendX_JQuery_View_Helper_UiWidget
для создания CKEditor с адаптером jQuery. Вот код обоих файлов:
ZendExt_Form_Element_CKEditor
:
class ZendExt_Form_Element_CKEditor extends ZendX_JQuery_Form_Element_UiWidget
{
/**
* Use formCKeditor view helper by default
* @var string
*/
public $helper = 'formCKEditor';
/**
* Default ckeditor options
*
* @var array
*/
public $jQueryParams = array(
'toolbar' => 'Basic'
);
}
И ZendExt_View_Helper_FormCKEditor
:
class ZendExt_View_Helper_FormCKEditor extends ZendX_JQuery_View_Helper_UiWidget
{
static $set = false;
public function formCKEditor($name, $value = null, $params = null, $attribs = null)
{
$hTextA = new Zend_View_Helper_FormTextarea();
$hTextA -> setView($this -> view);
$xhtml = $hTextA -> formTextarea($name, $value, $attribs);
$xhtml .= '<script type="text/javascript">$(document).ready(function(){$("#' . $this->_normalizeId($name) . '").ckeditor(' . (!is_null($params) ? 'function(){},' . Zend_Json_Encoder::encode($params) : '') . ')});</script>';
if (self::$set == false) {
$this -> view -> headScript() -> appendFile($this -> view -> baseUrl() . '/js/ckeditor/ckeditor.js');
$this -> view -> headScript() -> appendFile($this -> view -> baseUrl() . '/js/ckeditor/adapters/jquery.js');
self::$set = true;
}
return $xhtml;
}
}
Вы можете использовать его как любой другой элемент формы ZF после того, как скопировали эти 2 файла в:
* libraries/ZendExt/Form/Element/
для ZendExt_Form_Element_CKEditor
класс
* libraries/ZendExt/View/Helper/
для ZendExt_View_Helper_FormCKEditor
класс
и добавил пространство имен ZendExt
в файл конфигурации (или, если у вас уже есть библиотека, и вы хотите ее использовать, просто поместите в нее оба файла и измените имя классов, чтобы оно соответствовало вашему). Затем вы получите tel ZF, что ZendExt/View/Helper
- это каталог для поиска помощников вида (в конфигурационном файле .ini он будет выглядеть так: resources.view.helperPath.ZendExt_View_Helper = "ZendExt/View/Helper"
).
Затем в своем коде просто позвоните $ckEditor = new ZendExt_Form_Element_CKEditor();
, чтобы создать новый CKEditor. Затем вы можете добавить все необходимые параметры к элементу, используя $ckEditor -> setJQueryParam($key, $value);
, как указано в документации здесь: http://framework.zend.com/manual/fr/zendx.jquery.html. Например: $ckEditor -> setJQueryParam('height', '100px');
. Я понимаю, что это не компонент jQuery, но это был самый простой способ сделать это, поскольку там есть все необходимое.
Чтобы отобразить его, просто наберите <?=$this -> ckEditor?>
, и все хорошо.
Убедитесь, что вы поместили ckeditor.js
и adapters/jquery.js
в ваш публичный каталог в / js / ckeditor / или измените путь в помощнике соответственно.