Для подключения 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;
}
Надеюсь что это сэкономит кому то не мало времени.