Встраивание FCKeditor в ExpressionEngine

FCKeditor, пожалуй, является самым настраиваемым и мощным WYSIWYG редактором. Задача состояла в том, как же можно использовать этот мощный редактор для публикации новостей на сайте? После некоторых попыток анализа не было найдено никакого решения, кроме как внедрение непосредственно в сам код.

image

Всего вам придется отредактировать два файла. Один из них является файлом ExpressionEngine, другой - частью FCKeditor. Я загрузил папку с редактором в /system/modules dir. Теперь приступим к редактированию.

fckeditor_php5.php
В зависимости от того, какой версией PHP вы пользуетесь, вы должны будете отредактировать либо этот файл, либо файл fckeditor_php4.php. Для того, чтобы редактор мог работать с системой, нам необходимо вернуть результаты в переменную, вместо того, чтобы вывести сразу же на экран (EE использует переменную $r). По умолчанию редактор использует оператор echo чтобы вывести результаты своей работы на экран, но нам это абсолютно не надо, поэтому мы должны запенить оператор echo на return.

Найдите метод Create() и замените его следующим кодом:

function Create()

{

// было

// echo $this->CreateHtml() ;

return $this->CreateHtml() ;

}

cp.publish.php
Теперь, после того, как мы научили FCKeditor работать с ExpressionEngine, нам нужно сказать EE о том, что мы будем использовать. Откройте файл cp.publish.php file в директории /system/cp directory. Вы должны найти строчку, которую мы будем менять. В моей EE 1.6.2 это была 2747ая строчка:

$r .= $DSP->input_textarea(’field_id_’.$row[’field_id’], $field_data, $rows, ‘textarea’, ‘100%’, $field_js, $convert_ascii, $text_direction);

Закомментируйте эту строчку и вставьте после неё следующее:

include_once(dirname(__FILE__)."/../modules/fckeditor/fckeditor.php");
$oFCKeditor = new FCKeditor(’field_id_’.$row[’field_id’]) ;
$oFCKeditor->BasePath = ‘modules/fckeditor/’;
$oFCKeditor->Value = $field_data;
$r .= $oFCKeditor->Create();

Вот и все :) Вы получили работающую версию fckEditor в EE. Однако для полной совместимости вам необходимо загрузить пустой файл с именем lang.fckeditor.php в system/language/english dir, так как до этого мы поместили наш FCKeditor в директорию modules, а ExpressionEngine пытается найти языковой файл для каждой папки, расположенной в директории modules

Опубликовано 08:10 06.07.2008 в: Blogging | ExpressionEngine | Комментарии (9)
Добавить в: Digg it! Tech it! Delicious! StumbleUpon! Reddit! Magnolia! Facebook it! Google! Yahoo!
1 budulay | 07/27 13:12

А загрузка файлов работает? :)

2 Midgard | 07/27 15:36

А что может мешать ей работать? :) Есть загрузка файлов от ExpressionEngine, которая работает, насколько я знаю, по дефолту; есть загрузка файлов от FCKeditor, загрузка эта не работает изначально, её надо включить, отредактировав файл коннектора, который располагается примерно в следующем месте: /editor/filemanager/connectors/php

3 budulay | 07/27 15:48

у меня просто tinymce на сайте :) ладно попробую и FCKeditor, раньше от него отказался так как не работал он под оперой:(

4 Midgard | 07/27 15:58

Ну теперь и Опера немного другая (9.5), да и возможностей у FCKeditor намного больше, и если я не ошибаюсь, то на выходе у FCKeditor более валидный код, нежели у TinyMCE. Удачного перехода! :)

5 budulay | 07/27 16:10

Спасибо! О и еще, у вас не работает просмотр коментариев и сайт в кодировке windows-1251 а письма идут в utf-8. В настройках почти нада кодировку исправить.

6 Дмитрий | 11/07 21:59

Создаю сайт, а там используется черный фон. Можно ли настроить FCKeditor так, чтобы цвет текста по умолчанию был другой а не черный, а также размер текста?

7 Midgard | 11/08 00:50

Файлы стилей при редактировании подключаются отдельно в редакторе. Путь к ним можно задать в файле config.js. Там же можно задать и цвет фона, и размер шрифта.

8 Антон | 04/21 11:30

Здравствуйте, делаю дома - всё прекрасно работает. Но когда запускаю у провайдера, то панели fckeditor уезжают куда то на самый вверх экрана. С чем это может быть связано?

9 Midgard | 04/21 11:38

Добрый день! Хотелось бы узнать некоторые вещи более подробно. Естественно, домашнюю (локальную) версию я посмотреть не смогу, а вот посмотреть то, что располагается на сервере я могу. Поэтому было бы замечательно, если бы вы прислали (написали комментарий), в котором указали бы ссылку на ваш конфигурационный файл (fckconfig.js) и адрес сайта, на котором вы тестировали (с логином и паролем для того, чтобы можно было просмотреть). В случае, если текущая версия EE изменилась, я внесу дополнительные правки в статью.

Страница 1 (1 всего)

Имя:

Email:

URL:

Запомнить мои данные

Подписаться на комментарии?

Следующая запись: All models are wrong

предыдущая запись: the essence of strategy

<< Back to main