Thera_Form_Element_FCK

Filed Under (Software, Web) by Jirka Helmich on 09-08-2008

Tagged Under : , ,

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

Projekt Thera a rozloučení se Smarty

Filed Under (Nespoutaný tok myšlenek, Web) by Jirka Helmich on 10-03-2008

Tagged Under : , ,

Používal jsem Smarty. Měsíc. Na jediném projektu. V létě jsem s Goophym dělal na projektu hledejhracky.cz a hledejnaradi.cz a používali jsme Smarty, poměrně fajn knihovnu pro práci se šablonami. Lidem, kteří poznávají, co to je MVC a jak mají vypadat šablony strašně usnadní život. Ale je to zřejmě naposledy, co jsme tuto knihovnu použili. V současné době pracujeme na high-level PHP frameworku Thera, který bude postaven na Zend Frameworku a místo Smarty bude využívat třídu Zend_View, která narozdíl od Smartyho umí iterovat na objektech ve foreach cyklech. Navíc to bude o mnoho pohodlnější.

Ptáte se, co je to Thera? Nový, úžasný, skvělý high-level framework (cool, huh?), na který nemusíte narozdíl od jiných českých frameworků (…) čekat, protože … … … nebude veřejný, nebude to OpenSource, nebude zdarma a vy ho nikdy používat nebudete. Ale myšlenku prozradit můžu. Zkrátka jsem se zamyslel nad tím, jak zefektivnit práci na projektech. K čemu jsem došel? Začnu dělat web a vymýšlím, jak pracovat s databází, implementuji uživatele, moduly, práva, kategorie, logy. Znovu a znovu. Proto tedy Thera, která bude vše výše uvedené obsahovat ve zobecněné formě. Co se skrývá pod magickým “ve zobecněné formě”? Představte si, že se probudíte a klient, který vám volá po vás chce změnu autentifikace uživatelů. Už žádná databázová tabulka, ale LDAP. A vy začnete nadávat a na pár dní sedáte k PSPadu…