Napisałem prostego Helpera :
<?php class App_View_Helper_InitFck { /** * * podłączenie pod widok fckeditora z parametrami (widok,element textarea) * * @param Zend_View_Interface $view * @param string $element * @param boolean $java - dla ilości powyżej 1 parametr ustawiany na false tak by nie ładować n razy libsów */ public function __construct(Zend_View_Interface $view,$element,$java=true) { $this->view = $view; if($java) { $this->view->headScript()->prependFile("/public/js/fckeditor/fckeditor.js"); } ?> <script type="text/javascript"> window.onload = function() { if(document.getElementById('<?=$element?>')) { var oFCKeditor = new FCKeditor('<?=$element?>') ; oFCKeditor.BasePath = "/public/js/fckeditor/" ; oFCKeditor.Height = 500; oFCKeditor.Widht = 800; oFCKeditor.ReplaceTextarea() ; } } </script> <? } }
Teraz w kontrolerze w którym mam do dyspozycji pole z fck edytorem wrzucam taki oto kod:
new App_View_Helper_InitFck($this->view,'content');
natomiast w widoku wykonuje podmianę elementów:
I teraz słów kilka.
W helperza taka oto magiczna linijka:
oFCKeditor.ReplaceTextarea()
podmienia mi pod element przesłany pod zmienną $element cały edytor. Dzięki temu nie muszę zawsze w widoku wklejać tego kodu tylko inicjować w kontrolerze obiekt a w widoku wypisywać na ekranie kod JS dla odpowiedniego ID.
Teraz proszę o wypowiedzenie się czy takie podejście jest błędnę czy ujdzie w tłoku ?