Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]Czy komus udało się zaimplementować edytor fck w formularzach symfony 1.2?
Forum PHP.pl > Forum > PHP > Frameworki
stachuf11
witam, czy komuś udało się zaimplementować edytor fck w w forms widgetach w symfony 1.2 ?
pozdrawiam

juz mam rozwiązanie
poniżej jedno z możliwych rozwiązań

najpierw zainstalować należy plugin sfFormExtraPlugin
http://trac.symfony-project.org/attachment...ditor.class.php

a pozniej dodać klasę do tego pluginu z strony
http://trac.symfony-project.org/attachment...ditor.class.php

jeszcze sciągnąc trzeba bibliotekę fckeditora, rozpakować w web/js i to wszystko

działa bez problemu
pozdrawiam
Cysiaczek
A mógłbyś pokazać resztę kodu - jak to uruchamiasz? Bo przyznam, że już od jakiegoś czasu próbuję i nic.

Pozdrawiam
stachuf11
tak, podam
wiec po sciągnieciu tej klasy ze strony
http://trac.symfony-project.org/attachment...ditor.class.php
i dodaniu jej do pluginu sfFormExtraPlugin, trzeba też sciągnąc kod edytora FCK i załadować do katalogu js/fckeditor

pozniej w aplikacji w config/settings.yml
dodajesz
  1. <?php
  2. rich_text_fck_js_dir:   js/fckeditor
  3. ?>


i jeszcze w pliku view.yml
  1. <?php
  2. javascripts:    [ fckeditor/fckeditor]
  3. ?>


w tej klasie sciągniętej zmieniłem tresc funkcji render na

  1. <?php
  2. public function render($name, $value = null, $attributes = array(), $errors = array())
  3.       {
  4.      
  5.       $path1=sfContext::getInstance()->getRequest()->getRelativeUrlRoot().'/'.sfConfig::get('sf_rich_text_fck_js_dir').'/';
  6.       $path2=sfContext::getInstance()->getRequest()->getRelativeUrlRoot().'/js/fckeditor/fckconfig.js';
  7.     $textarea = parent::render($name, $value, $attributes, $errors);
  8.    
  9.         $js = sprintf(<<<EOF
  10. <script type="text/javascript">
  11.     var oFCKeditor = new FCKeditor('%s','%s','%s');
  12.     oFCKeditor.BasePath = '%s' ;
  13.     oFCKeditor.Config['CustomConfigurationsPath'] = '%s';
  14.     oFCKeditor.ReplaceTextarea();
  15. </script>
  16. EOF
  17.         ,  
  18.           $name,
  19.           $this->getOption('width')                     ? $this->getOption('width')                    : '100%',
  20.           $this->getOption('height')                    ? $this->getOption('height')                   : '200',
  21.           $this->getOption('BasePath')                  ? $this->getOption('BasePath')                 : $path1,
  22.           $this->getOption('CustomConfigurationsPath')  ? $this->getOption('CustomConfigurationsPath') : $path2
  23.         );
  24.    
  25.         return $textarea.$js;
  26.       }
  27. ?>

czyli usunieta finkcja document.onload, ponieważ onload ;pozwalało na odpalenie tylko jednego edytora fck, a jak chciałem kilka edytorów na stronie to nie działało, a teraz dxiała z kilkoma edytorami

definiowanie pola w lib/forms/...Form.class.php tak wygłada

  1. <?php
  2. $this->widgetSchema['longdescription'] = new sfWidgetFormTextareaFCKEditor(array('width'=>'800',    
  3.                                                                            'height'=>'400'));
  4. ?>



i działa bez problemu, tez pola z I18N działąją ok, gdybyś miał problemy to pisz jeszcze
pozdrawiam
Stachu
Cysiaczek
Dzięki wielkie! Miałem nie spatchowaną klasę i brak wpisu w view.yml (wcześniej nie był potrzebny).

Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.