Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: CKeditor
Forum PHP.pl > Forum > Po stronie przeglądarki
sponsoriada
Witam. Mam problem z konfiguracją CKeditora. Wygląda to następująco:

Wszystko jest Ok przy pierwszym zapisie wiadomości.
Przeglądarka ładnie interpretuje wszystkie style itp.
Jednak jeśli chcę wyedytować już zamieszczoną wiadomość w CKeditorze nie widzę ładnie wyglądającego posta tylko:
  1. <p> <span style="color:#800000;">asda</span></p> <p> &nbsp;</p> <p> <span style="color:#ffff00;">asda</span></p>

Po dodaniu do takiej wiadomości nowego wiersza ,słowa w Ckeditorze wygląda to następująco:
  1. <p> &lt;p&gt; &lt;span style=&quot;color:#800000;&quot;&gt;asda&lt;/span&gt;&lt;/p&gt; &lt;p&gt; &amp;nbsp;&lt;/p&gt; &lt;p&gt; &lt;span style=&quot;color:#ffff00;&quot;&gt;asda&lt;/span&gt;&lt;/p&gt;</p> <p> sada</p> <p> &nbsp;</p>

A na stronie stara treść wiadomości nie jest już interpretowana jako HTML
sponsoriada
To nie wina php'a tylko ustawień ckeditora. Nie mogę tego zwalczyć heh.
Kshyhoo
Pierwsza sprawa: pokaż kod, którym wpinasz edytor.
Sprawa druga: na stronie edytora wszystko jest dobrze opisane.
sponsoriada
  1. <?php
  2. echo $session->flash();
  3. echo $cksource->create('Post');
  4. echo $form->input('title');
  5. echo $form->hidden('user_name', array('value'=>$User['User']['username']));
  6. echo $form->hidden('user_id', array('value'=>$User['User']['id']));
  7. echo $cksource->ckeditor('body');
  8.  
  9.  
  10. $config['toolbar'] = array(
  11. array('Source', '-', 'Bold', 'Italic', 'Underline', 'Strike' ),
  12. array( 'Image', 'Link', 'Unlink', 'Anchor' )
  13. );
  14. $events['instanceSave'] = 'function (ev) {
  15. alert("Loaded: " + ev.editor.name);
  16. }';
  17.  
  18.  
  19. echo $cksource->end();
  20. ?>

Robię to przez helpera do cakea

  1. <?php
  2.  
  3. class CksourceHelper extends FormHelper {
  4.  
  5. var $helpers = array('Html');
  6.  
  7. function ckeditor($fieldName, $options = array()) {
  8. //CakePHP 1.2.4.8284
  9. $options = $this->_initInputField($fieldName, $options);
  10. //If you have probelms, try adding a second underscore to _initInputField. I haven't tested this, but some commenters say it works.
  11. //$options = $this->__initInputField($fieldName, $options);
  12. $value = null;
  13. $config = null;
  14. $events = null;
  15.  
  16. if (array_key_exists('value', $options)) {
  17. $value = $options['value'];
  18. if (!array_key_exists('escape', $options) || $options['escape'] !== false) {
  19. $value = h($value);
  20. }
  21. unset($options['value']);
  22. }
  23. if (array_key_exists('config', $options)) {
  24. $config = $options['config'];
  25. unset($options['config']);
  26. }
  27. if (array_key_exists('events', $options)) {
  28. $events = $options['events'];
  29. unset($options['events']);
  30. }
  31.  
  32. require_once WWW_ROOT . DS . 'js' . DS . 'ckeditor' . DS . 'ckeditor.php';
  33. $CKEditor = new CKEditor();
  34. $CKEditor->basePath = $this->webroot . 'js/ckeditor/';
  35.  
  36. return $CKEditor->editor($options['name'], $value, $config, $events);
  37. }
  38.  
  39. }
  40.  
  41. ?>


Udało się ! Problem leżał w helperze. Klasyczną metodą wszystko działa tak jak powinno.
Temat można zamknąć.
Pozdrawiam.
Blazej78
Podepnę się pod temat CKeditor'a.

Chcę aby belka narzędziowa "pływała" przypięta do elementu którego treść chcę edytować. Można to osiągnąć ustawiając atrybut elementu na contentEditable = true. Jak uzyskać ten efekt gdy edytor wstawiam z pomocą funkcji:

Kod
var editor;
        function replaceDiv( div ) {
            if ( editor )
                editor.destroy();
            editor = CKEDITOR.replace( div );            
        }
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.