Как подключить FCKeditor

Обсуждение документации. Переводы Cookbook и авторские рецепты.
Аватара пользователя
Ozzy
Сообщения: 269
Зарегистрирован: 2009.04.02, 15:09
Откуда: Украина, Одесса

Как подключить FCKeditor

Сообщение Ozzy »

Для начала вам потребуется скачать последний релиз FCKeditor. Разархивируйте скачанный файл и поместите его в папку fckeditor (которую предварительно надо создать в root папке приложения). Далее необходимо скачать Yii FCKeditor extension (расширение) и разархивировать его в папку protected/extensions/fckeditor

Читать дальше "Как подключить FCKeditor"

UPD: рецепт добавлен на yiiframework.ru: http://yiiframework.ru/doc/cookbook/ru/form.fckeditor
Мой маленький блог - http://dbhelp.ru
Аватара пользователя
паша
Сообщения: 6
Зарегистрирован: 2011.02.17, 01:57
Откуда: Волшебная страна

Re: Как подключить FCKeditor

Сообщение паша »

Пожалуй, пора обновить статью, ибо со свежими версиями (на момент написания это Yii 1.1.6 и CKEditor 3.5.2), приведенный в ней код не работает.

Сначала я пользовался материалами вот отсюдова

Но потом, всё же решил воспользоваться расширением, предложенным в статье. Для этого, мне пришлось его немного перепилить.
А именно, в виде, к которому необходимо подключить редактор (я подключал его для создания\обновления постов в демо-блоге):

Код: Выделить всё

<?php $this->widget('ext.fckeditor.FCKEditorWidget', array(
            "model"=>$model,
              "attribute"=>'content',              
              "fckeditor"=>Yii::app()->basePath."/../ckeditor/ckeditor.php",
              "fckBasePath"=>Yii::app()->baseUrl."/ckeditor/",
              "config" => array(
            "EditorAreaCSS"=>Yii::app()->baseUrl.'/css/index.css',),    
          ));?>    
В файле расширения (FCKEditorWidget.php):

Код: Выделить всё

class FCKEditorWidget extends CInputWidget
{
    public $fckeditor;
    public $fckBasePath;    
    public $config;

    public function run()
    {
        if (!isset($this->fckeditor)){
            throw new CHttpException(500,'Parameter "fckeditor" has to be set!');
        }
        if (!isset($this->fckBasePath)){
            throw new CHttpException(500,'Parameter "fckBasePath" has to be set!');
        }
        if (!$this->hasModel() && !isset($this->name)) {
            throw new CHttpException(500,'Parameters "model" and "attribute" or "name" have to be set!');
        }        
        $this->render('fCKEditorWidget',array(
            "fckeditor"=>$this->fckeditor,
            "fckBasePath"=>$this->fckBasePath,
            "model"=>$this->model,
            "attribute"=>$this->attribute,
            "name"=>$this->name,
            "value"=>$this->value,            
            "config"=>$this->config,
        ));
    }
}
 
И в виде расширения (fCKEditorWidget.php):

Код: Выделить всё

require_once($fckeditor);

if (!empty($model) && !empty($attribute))
{
    $oFCKeditor = new CKeditor(get_class($model).'['.$attribute.']');        
}
$oFCKeditor->basePath = $fckBasePath;
$oFCKeditor->editor($name,$value,$config);
 
Увы, пришлось урезать почти весь функционал, который настраивался со старой версией. Впрочем, возможно, теперь необходимые настройки можно передавать в массиве $config. С этим я пока не разбирался.
десу же
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Как подключить FCKeditor

Сообщение samdark »

FCKeditor и CKeditor — это разные редакторы.
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Как подключить FCKeditor

Сообщение Ekstazi »

Есть быть поточнее - то CKEditor - это следующая версия FCKEditor.
Аватара пользователя
паша
Сообщения: 6
Зарегистрирован: 2011.02.17, 01:57
Откуда: Волшебная страна

Re: Как подключить FCKeditor

Сообщение паша »

Sam Dark писал(а):FCKeditor и CKeditor — это разные редакторы.
Согласен.
И всё же по ссылке, приведенной в статье, переход осуществляется на страницу загрузки именно CKeditor.

Ну вообще да, я немного слышал обо всей этой истории, с превратным пониманием буквосочетания fck и последующим переименованием продукта. Но всё же, думаю, есть смысл внести какие-либо изменения в статью, или хотя бы не удалять мой пост ^^, что бы новички, такие как я, могли быстрее разобраться.
десу же
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Как подключить FCKeditor

Сообщение samdark »

Нет. CK — это не просто следующая версия. Там внутри всё по-другому. Совсем.
Аватара пользователя
паша
Сообщения: 6
Зарегистрирован: 2011.02.17, 01:57
Откуда: Волшебная страна

Re: Как подключить FCKeditor

Сообщение паша »

Это я заметил, потому что пришлось немного поковырять внутренности обоих продуктов.
Но меня больше волнует другое - стоит ли искать более старый продукт(я не исключаю, что он может быть не хуже релизного) и пользоваться им, или пытаться найти другие пути подключения нового редактора? А может вообще перейти на тинимце?)
Это я к тому, что если целью рецептов является знакомство с некоторыми возможностями Yii, было бы не плохо, что бы код в них работал без последующей доработки.
десу же
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Как подключить FCKeditor

Сообщение slavcodev »

http://code.google.com/p/yiiext/source/ ... 2Fckeditor
если там не посл версия, то пытайтесь достучаться до автора, и он обновит виджет, зачем старые формы?
Жду Yii 3!
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Как подключить FCKeditor

Сообщение slavcodev »

Еще есть другой редактор
http://code.google.com/p/yiiext/source/ ... viRedactor
Мне он больше нравится. Он вроде проще, но пока хватает.
Жду Yii 3!
Аватара пользователя
паша
Сообщения: 6
Зарегистрирован: 2011.02.17, 01:57
Откуда: Волшебная страна

Re: Как подключить FCKeditor

Сообщение паша »

mc-bear писал(а):Еще есть другой редактор
http://code.google.com/p/yiiext/source/ ... viRedactor
Мне он больше нравится. Он вроде проще, но пока хватает.
Вот спасибо, хорошо. Для большинства нужд вполне достаточно. И сделан очень даже ничего себе. Особенно хорошо смотрится, если использовать тему, предложенную в книжке по Yii.
mc-bear писал(а):http://code.google.com/p/yiiext/source/ ... 2Fckeditor
если там не посл версия, то пытайтесь достучаться до автора, и он обновит виджет, зачем старые формы?
А это я не понял. Какие формы? Это ведь, кажется, то самое расширение, о котором рассказывается в этой статье (я давал на неё линк, в первом сообщении этого треда)

А вообще, вы пожалуйста не думайте, что я чем-то недоволен. Наоборот, я очень благодарен всем, кто принимал участие в создании русскоязычного сообщества и переводе статей. У меня хоть и нет проблем с английским, но практика показывает, что русский текст я воспринимаю гораздо быстрее. Особенно, некоторые трудные для меня темы.
Просто мне, как новичку, иногда сложно бывает, что-то починить, если не работает так как написано, хотя опытным разработчикам, я уверен, кажется, что не стоит даже объяснять как переделать, что бы работало. И случай с этой статьей пока единственный. Если, конечно, не считать руководства по созданию блога, которое довольно странно составлено.
десу же
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Как подключить FCKeditor

Сообщение Ekstazi »

Хорошо, достучались. Попробую на выходных этим заняться. Понравилась статья о моих расширениях )
SpiLLeR
Сообщения: 350
Зарегистрирован: 2009.09.17, 16:47
Откуда: Санкт-Петербург
Контактная информация:

Re: Как подключить FCKeditor

Сообщение SpiLLeR »

Автор той статьи я, написана она была по горячим следам полуночного прикручивания к проекту, поэтому возможно что-то упустил из виду)
Предупрежден - значит вооружен.
devKP.ru
Аватара пользователя
паша
Сообщения: 6
Зарегистрирован: 2011.02.17, 01:57
Откуда: Волшебная страна

Re: Как подключить FCKeditor

Сообщение паша »

О, все собрались))
Но я же никаких предъяв. Просто хотел сообщить что рецепт не совсем работает, хотя если погуглить, легко найти решение.
Так что спасибо всем, кто отозвался. Много опыта приобрел. И да - жду обновленного расширения)
десу же
Аватара пользователя
pls-kick-me
Сообщения: 42
Зарегистрирован: 2011.02.05, 22:39
Откуда: Украина, Донецк

Re: Как подключить FCKeditor

Сообщение pls-kick-me »

Примерно теже проблемы и главная: не отображается CKeditor. Вот какой код на странице вместо него
<textarea id="Post_content" style="width: 100%; height: 400px; visibility: hidden; " cols="40" rows="10" name="Post[content]"/>

Код в view:

Код: Выделить всё

<?php $this->widget('application.extensions.ckeditor.CKEditor', array(
'model'=>$model,
'attribute'=>'content',
'language'=>'en',
'editorTemplate'=>'full',
)); ?>
Может кто то встречался с подобной проблемой ? (А то уже каша в голове от FCKeditor, CKeditor и ЕCKeditor)
Yes I'm Insistent
Аватара пользователя
pls-kick-me
Сообщения: 42
Зарегистрирован: 2011.02.05, 22:39
Откуда: Украина, Донецк

Re: Как подключить FCKeditor

Сообщение pls-kick-me »

хмм, вырезал содержимое папки ckeditor на уровень выше и путь сделал

Код: Выделить всё

<?php $this->widget('application.extensions.CKEditor', array( 
заработало...
Yes I'm Insistent
faeton
Сообщения: 88
Зарегистрирован: 2011.06.06, 01:00

Re: Как подключить FCKeditor

Сообщение faeton »

Я подключал редактор, расширив CHtml

поступил так потому что viewtopic.php?f=4&t=3932

Код: Выделить всё

<?php
class ExtHtml extends CHtml
{
    public static function activeCKEditor($model,$attribute,$htmlOptions=array())
    {
        self::resolveNameID($model,$attribute,$htmlOptions);
        self::clientChange('change',$htmlOptions);
        if($model->hasErrors($attribute))
            self::addErrorCss($htmlOptions);
        $text=self::resolveValue($model,$attribute);
        
        include_once "ckeditor/ckeditor.php";

        $CKEditor = new CKEditor();
        $CKEditor->basePath = '/ckeditor/';
        $CKEditor->editor($htmlOptions['name'], $text);
    }
}
?>
Изображение
Аватара пользователя
Granny
Сообщения: 2
Зарегистрирован: 2012.10.18, 19:04

Re: Как подключить FCKeditor

Сообщение Granny »

Как подключить FCKeditor? Что должно стоять в строке
"model"=>$pages, ? Название моей модели Subsection. Файл называетя protected/models/Subsection.php.
Получаю предупреждение
Parameters "model" and "attribute" or "name" have to be set!
Последний раз редактировалось Granny 2012.10.19, 18:31, всего редактировалось 1 раз.
Ну разве это много, xочу чтоб мой портрет застенчиво и строго смотрел со всех газет.
Аватара пользователя
Granny
Сообщения: 2
Зарегистрирован: 2012.10.18, 19:04

Re: Как подключить FCKeditor

Сообщение Granny »

Как подключить FCKeditor? Что должно стоять в строке
"model"=>$pages, ? Ответ на мой собственный вопрос.
Правильно:

"model"=>$model,


Я пытаюсь подключить FCKeditor следуя инструкции
http://yiiframework.ru/doc/cookbook/ru/form.fckeditor

1. "Для начала вам потребуется скачать последний релиз FCKeditor."

Я следуя ссылки попадаем на сайт CKeditor, а не FCKeditor.
Скачиваю версию CKEditor 3.6.5.

2. " Разархивируйте скачанный файл и поместите его в папку fckeditor (которую предварительно надо создать в корневой папке приложения)."

Я разархивировала CKEditor 3.6.5 и поместила дирректорию ckeditor в корневую дирректорию

assets
css
protected
ckeditor
. . ckeditor.php
themes

3. И закомментировала в view/subsection/_form.php
строчки

Код: Выделить всё

     #Optional address settings if you did not copy ckeditor on application root
  //"ckEditor"=>Yii::app()->basePath."\ckeditor\ckeditor.php",
                                  # Path to ckeditor.php
  //"ckBasePath"=>Yii::app()->baseUrl."/ckeditor/",
                                  # Realtive Path to the Editor (from Web-Root)
3. "Далее необходимо скачать расширение Yii fckeditor-integration и разархивировать его в папку protected/extensions/fckeditor."

Я скачала расширение ckeditor.zip с
http://www.yiiframework.com/extension/c ... ntegration
и поместила дирректорию ckeditor в папку protected/extensions/

protected
. extensions
. . ckeditor
. . . CKEditorWidget.php
. . . README.txt

4. Создала таблицу subsection c двумя столбцами
TABLE subsection
id INT(11) AUTO_INCREMENT PRIMARY KEY,
section TEXT

5. Через gii создала model и CRUD.
Model generator
-------------------------------
Table name subsection
Model class Subsection
--------------------------------
CRUD generator
-------------------------------
Model class Subsection
ControllerID subsection

6. В view/subsection/_form.php
после виджета CActiveForm добавила виджет CKEditorWidget

Код: Выделить всё

<?php $this->widget('ext.ckeditor.CKEditorWidget',array(
  "model"=>$model,                 # Data-Model
  "attribute"=>'section',          # Attribute in the Data-Model
  "defaultValue"=>"Test Text",     # Optional
 
  # Additional Parameter (Check http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html)
  "config" => array(
      "height"=>"400px",
      "width"=>"100%",
      "toolbar"=>"Basic",
      ),
 
  #Optional address settings if you did not copy ckeditor on application root
  //"ckEditor"=>Yii::app()->basePath."\ckeditor\ckeditor.php",
                                  # Path to ckeditor.php
  //"ckBasePath"=>Yii::app()->baseUrl."/ckeditor/",
                                  # Realtive Path to the Editor (from Web-Root)
  ) );?>

7. Я изменила
"model"=>$pages,
на
"model"=>$model,

"attribute"=>'content',
на
"attribute"=>'section',
Ну разве это много, xочу чтоб мой портрет застенчиво и строго смотрел со всех газет.
maxyc
Сообщения: 124
Зарегистрирован: 2010.01.13, 09:11

Re: Как подключить FCKeditor

Сообщение maxyc »

Модам и мсье. Обьясните глупцу, для чего писать 10 строк кода виджета? Почему нельзя тупо подключить CKEditor посредством jQuery.ckeditor? К чему все эти сложности?
Если нужны в разных разделах разный набор тулбаров? ну создайте несколько шаблонов тулбаров. Бьюсь об заклад, у вас не выйдет более 5.
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Как подключить FCKeditor

Сообщение Ekstazi »

1. Виджет можно использовать в построителе форм
2. Так как виджет ответственен за подключение редактора, то в случае ошибок легче локализировать место ошибки.
Ответить