Thera_Form_Element_FCK
Další milník pokořen, podařilo se mi do Thera Frameworku založeném na Zend Frameworku integrovat FCK Editor. Bylo třeba chvíli laborovat s umístěním souborů a způsobem implementace, ale myslím, že to za to stálo.
Stačilo PHP soubor umístit do /library/fckeditor/ a ten zbytek nasypat do složky /public/fckeditor. Aby vše fungovalo jednoduše, chtěl jsem, aby byl FCK Editor běžným Zend Form Elementem, aby na něj platily validátory a vše ostatní. V první fázi tedy bylo třeba vytvořit si vlastní Element, vzhledem k tomu, že to, co FCK doopravdy odesílá není Textarea, ale Hidden pole, zvolil jsem odpovídající variantu a extendoval jsem Zend_Form_Element_Text. Pak bylo třeba vytvořit helper. Jediné, co bylo třeba napsat byl konstruktor, kde vytvořím novou instanci FCK Editoru s příslušnými parametry a nechám si vypsat XHTML kód.
Vypadá to tedy následovně:
<?php
class Thera_Form_Element_FCK extends Zend_Form_Element_Text
{
public $helper = ‘FCK’;
}
?>
<?php
class Zend_View_Helper_FCK extends Zend_View_Helper_FormElement
{
public function FCK($name, $value = null, $attribs = null)
{
$info = $this->_getInfo($name, $value, $attribs);
extract($info); // name, value, attribs, options, listsep, disable
include_once(dirname(__FILE__).’/../../../../../library/fckeditor/fckeditor.php’);
$oFCKeditor = new FCKeditor($this->view->escape($name)) ;
$oFCKeditor->BasePath = ‘/public/fckeditor/’;
$oFCKeditor->Value = $value;
foreach ($attribs as $key => $value)
{
$oFCKeditor->Config[$key] = $value;
}
$xhtml = $oFCKeditor->CreateHtml();return $xhtml;
}
}
?>
Považte, výše uvedné není nijak náročný kód. O mnoho jednodušší je pak přitom vložení celého FCKEditoru do formuláře:
$fck = new Thera_Form_Element_FCK(’fck’);
$fck->setLabel(’Editor’);
$form->addElement($fck);
Poslední komentáře