Archive

Posts Tagged ‘FCKEditor’

Thera_Form_Element_FCK

Srpen 9th, 2008

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);

Software, Web , ,