読者です 読者をやめる 読者になる 読者になる

ZFでFCKeditorを使う

Zend Framework

DojoのEditorは画像アップロードなどの機能がないので、多機能エディタのFCKeditorが使えるようにする。
1.FCKeditorをダウンロードして、適当なところに展開する(libs/fckeditor/など)
2.展開した場所をrewriteの対象から外すように、.htaccessを編集する。(RewriteRule libs/(.*) - )(FCKeditorはインラインフレームでfckeditor/editor/fckeditor.htmlを表示するのでリライトされないようにする必要があります)

3.カスタムフォーム要素と独自のデコレータを作成する。
library/
_Zend/ ... Zend Framework
_My/
__Decorator/
___FCKeditor.php ... (a)FCKeditorデコレータ
__Element/
___FCKeditor.php ... (b)FCKeditorフォーム要素
(a)
class My_Decorator_FCKeditor extends Zend_Form_Decorator_Abstract
{
public function render($content)
{
$element = $this->getElement();
include_once("/libs/fckeditor/fckeditor.php");
$oFCKeditor = new FCKeditor($element->getName());
$oFCKeditor->BasePath = '/libs/fckeditor/';
$oFCKeditor->Value = $element->getValue();
ob_start();
echo $element->getLabel();
echo $oFCKeditor->CreateHtml();
$ret = ob_get_contents();
ob_end_clean();
return $ret;
}
}
(b)
class My_Element_FCKeditor extends Zend_Form_Element
{
public function init()
{
$this->addPrefixPath('My_Decorator', 'My/Decorator/', 'decorator')
->addDecorator('FCKeditor');
}
}
4.以下のようにしてカスタム要素FCKeditorが使用できるようになる。
$element = $form->createElement('FCKeditor', 'fck')
->setLabel('fck')
->setRequired(true);