Встраивание FCKeditor в ExpressionEngine
FCKeditor, пожалуй, является самым настраиваемым и мощным WYSIWYG редактором. Задача состояла в том, как же можно использовать этот мощный редактор для публикации новостей на сайте? После некоторых попыток анализа не было найдено никакого решения, кроме как внедрение непосредственно в сам код.
Всего вам придется отредактировать два файла. Один из них является файлом 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ая строчка:
Закомментируйте эту строчку и вставьте после неё следующее:
$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
Добавить в:








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