Для подключения CKEditor к YII, я использовал расширения из yiiext. Скачиваем его и распаковываем в каталлог с расширениями. У меня получилось: application.extensions.ckeditor
Теперь создаем в этом каталоге, папку assets и распаковываем туда файлы самого CKEditor, которые скачиваем с официально сайта (я скачал ckeditor 4). Виджет отказался запускаться ссылаясь на некоторые ошибки. Чтобы он заработал открываем файл ECKEditor.php идем на строку 69 и меняем:
private $skin='moono'; на public $skin='moono'; // тут также можем указать свою тему
Дальше функция setLanguage($value), меняем:
if(isset($this->allowedLanguages[$language])) $this->language=$language; на if(isset($this->allowedLanguages[$lang])) $this->language=$lang;
Теперь виджет можно подключить следующим образом, как стандартный виджет yii.
<?php $this->widget('application.extensions.ckeditor.ECKEditor', array( 'model'=>$model, 'attribute'=>'html', 'language'=>'ru', 'editorTemplate'=>'full', 'height'=>'500px' )); ?>
editorTemplate может быть также basic. В CKEditor 4 в конфигах не получается указать сразу несколько шаблонов как в предыдущих версиях редактора, поэтому в коде extesions дописал при выборе basic версии, такой вот код в replace:
if($this->editorTemplate=='basic') { $js =<<<EOP CKEDITOR.replace('{$name}', { toolbarGroups : [ { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] }, { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] }, { name: 'styles' }, { name: 'colors' }], height: '$this->height'}); EOP; } else { $js =<<<EOP CKEDITOR.replace('{$name}',{$options}); EOP; }
Также добавил настройки форматирования кода в редакторе и файл менеджер KCFinder для загрузки файлов через CKEditor, которые описывал тут: Настройка CKEditor 4, подключение файлменеджера KCFinder
Чтобы вам все это заново не делать, собрал все в один extension для Yii, архив нужно распаковать в /protected/extensions/, в корне сайта должна быть папка upload с правами на запись (туда будут складываться загруженные через редактор файлы)
Скачть Yii extension CKEditor c файлменеджером
Надеюсь что это сэкономит кому то не мало времени.
Спасибо большое!
То что надо! Огромное Вам спасибо!
Установил полный пакет. При нажатии на кнопку выбрать на сервере
вылазиет JS что cannot upload to … my dir. Хотя все права 777 все проверил
Благодарю!
Спасибо, давно искал такое расширения.
А как убрать лишние кнопки? Спасибо за ответ.
Спасибо, вроде уже разобрался сам. Если правильно понял, просто нужно в ECKEditor.php прописать как в примере в статье, только как advanced.
Если использовать «advanced», то при нажатии на вставить картинку нет кнопки «выбрать на сервере», как сделать?
Хорошо бы если вы выложили свой код на github.
2Denis:
проверьте версию php. у меня была похожая (не именно с KCFinder, а в целом с загрузкой) на 5.3, когда обновился на 5.5 все ок.
Спасибо!
Добрый день)
Спасибо за большое доброе дело)
Но встал вопрос- нужно загружать видео(во основном из youTube).
Пытался ставить плагин чисто для ютюба, так же стандартный плагин для iframe(то же годится).
Но не разобрался:
- Как настраивать вывод различных функций при выборе «full\basic»?
- Как подключить и активировать сам новый плагин?
Если кто то поможет\подскажет- буду благодарен)
Добрый день.
Как настраивать вывод нужный кнопок разобрался.
Можно вызвать CKEditor так: ‘editorTemplate’=>’advanced’, далее пишем ‘toolbar’=>array(
array( ‘Source’, ‘-’, ‘Bold’, ‘Italic’,),
array( »Underline’, ‘Strike’,)
),
Но как подключить новый плагин так и не разобрался. Буду благодарен если кто то обьяснит.
Спасибище огромнейшее! Залил – все работает, без всяких плясок))) Сэкономил КУЧУ времени! Спасибо!
Подскажите а позволяет ли это расширение вставлять ролики с youtube?
У меня возникли проблемы
При попытке загрузить катинку на сервер Фаербаг пишет:
«NetworkError: 404 Not Found – http://localhost/site.ru/uploads/images/IMAG0387.jpg»
Пробовал и с папкой upload и с папкой /uploads/images
не получается. Насколько мне известно права папке на локальном хосте указывать невозможно. Помогите разобраться. Спасибо.
увы но
евозможно обработать запрос «protected/extensions/ckeditor/kcfinder/browse.php».
и это логично, протектед напрямую не откроешь
Спасибо!!! после 24 часов плясок с ckeditor+ckfinder (на локальном сервере нормально все работало, а на боевом … ошибка XML и хоть ты тресни) набрел на вашу статью и ШАСЦЕ)))
Подключил как виджет в даминке к редактированию новостей.
Пишет,
Property «ClubNews.html» is not defined.
А у меня он не выводит кнопки выравнивания текста… уже сбрасывал и настраивал по тутору.. все равно
и еще одна беда: при отправке формы пишет post_text cannot be blank..
post_text это как раз то поле:
widget(‘application.extensions.ckeditor.ECKEditor’, array(
‘model’ => $model,
‘attribute’=>’post_text’,
‘language’=>’ru’,
‘editorTemplate’=>’full’,
‘height’=>’300px’
)); ?>
Огромное спасибо. Про***лся день, как-то сразу не нашел этот мануал
Как настроить чтобы, кроме картинок, еще файлы загружались?
Спасибо огромное. Отвел на решение этой правки целый день, а решил за 20 минут!
Спасибо огромное!!!!!