Witam. Chciałem podłączyć sobie FCK Editora do cms-u i zrobiłem to na takiej zasadzie:

Napisałem prostego Helpera :

  1. <?php
  2. class App_View_Helper_InitFck {
  3.  
  4.  
  5. /**
  6.   *
  7.   * podłączenie pod widok fckeditora z parametrami (widok,element textarea)
  8.   *
  9.   * @param Zend_View_Interface $view
  10.   * @param string $element
  11.   * @param boolean $java - dla ilości powyżej 1 parametr ustawiany na false tak by nie ładować n razy libsów
  12.   */
  13. public function __construct(Zend_View_Interface $view,$element,$java=true)
  14. {
  15. $this->view = $view;
  16. if($java)
  17. {
  18. $this->view->headScript()->prependFile("/public/js/fckeditor/fckeditor.js");
  19. }
  20.  
  21. ?>
  22. <script type="text/javascript">
  23. window.onload = function()
  24. {
  25. if(document.getElementById('<?=$element?>')) {
  26. var oFCKeditor = new FCKeditor('<?=$element?>') ;
  27. oFCKeditor.BasePath = "/public/js/fckeditor/" ;
  28. oFCKeditor.Height = 500;
  29. oFCKeditor.Widht = 800;
  30. oFCKeditor.ReplaceTextarea() ;
  31. }
  32. }
  33. </script>
  34. <?
  35.  
  36. $this->view->$element = ob_get_clean();
  37. }
  38. }


Teraz w kontrolerze w którym mam do dyspozycji pole z fck edytorem wrzucam taki oto kod:

  1. new App_View_Helper_InitFck($this->view,'content');


natomiast w widoku wykonuje podmianę elementów:

  1. echo $this->content;


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 ?