Блог → Yii: CKEditor и CRUD на диалоговых окнах

Недавно ко мне обратился один человек и попросил разобраться с проблемой, которая заключается в том, что визуальный редактор CKEditor отказывается работать в диалоговых окнах из этой статьи. Не вдаваясь в подробности, ниже я приведу готовый рецепт, который поможет исправить эту проблему.

  1. Скачайте и подключите расширение SmartClientScript. Оно понадобиться для того, чтобы виджет, речь о котором пойдет ниже, смог разместить javascript код в секции head до подключения js файлов.
  2. Установите JCKEditor. Этот виджет позволяет подключить CKEditor3 или CKEditor4 для textarea по указанному id.
  3. Откройте файл представления _form.php.
  4. Подключите CKEditor к нужному полю, например вот так:
  5. <div class="row">
        <?php echo $form->labelEx($model,'text'); ?>
        <?php echo $form->textArea($model,'text',array('rows'=>6, 'cols'=>50, 'id'=>'Champion_text_CK')); ?>
        <?php echo $form->error($model,'text'); ?>
    </div?>	
    
    <?php $this->widget('ext.JCKEditor.JCKEditorWidget', array(
        'id' => 'Champion_text_CK',        
        'height' => '200px',
        'width' => '400px',
        'toolbar' => 'myToolbar1',
        'path' => Yii::app()->getBaseUrl(true).'/ckeditor4/',
        'config'=>array(
            'language'=> 'ru',
        )
    )); ?>
    
  6. В виджете CJuiButton повесьте javascript функцию на событие onclick:
  7. 'onclick'=>'js:function(){for(instance in CKEDITOR.instances) {CKEDITOR.instances[instance].updateElement();}}',
  8. И, наконец, последняя проблема с которой вы можете столкнуться, будет состоять в том, что всплывающие диалоговые окна CKEditor будут заблокированы для редактирования. По крайней мере у меня так было с четвертой версией редактора. Чтобы этого избежать можно в директории темы редактора, в файле dialog.css подправить z-index: inherit для класса .cke_dialog_body.
  9. Пользуйтесь! Если у кого возникнут вопросы пишите. Постараюсь ответить.

Комментарии (2)

Александр
Не подскажите, по какой лицензии распространяется редактор CKEditor? Спасибо.
Ответить
Savvateev
Точное название лицензии не скажу, но знаю что он бесплатен как для некоммерческого так и коммерческого использования. За определенную плату предоставляется помощь в виде тех. поддержки. Еще для редактора есть отдельный файловый менеджер, он тоже платный. Вот собственно как монетизируется CKEditor.
Ответить


Оставить свой комментарий


Представтесь, пожалуйста *

Ваш комментарий

Число на картинке *

captcha

На хостинг