Создание и использование плагинов FCKeditor

Теги: , ,

Как и обещал ранее, выкладываю перевод документации по плагинам FCKeditor.

Данный текст является вольным переводом официальной документации по созданию и использованию плагинов FCKeditor

Создание плагина

Структура каталога для плагина должна всегда соответствовать одному шаблону. Каталог с плагином должен иметь то же имя, чтои плагин, и он должен содержать файл fckplugin.js. Также каталог плагина может включать каталог переводов пользовательского интерфейса плагина на другие языки. Каждый языковой файл определяет один язык, и их имена (без .js) - это то, что следует указывать в методе FCKConfig.Plugins.Add. Если ваша команда не содержит пользовательского интерфейса, то вам нет нужды создавать языковые файлы.

Для плагина 'findreplace', структура будет выглядеть выглядеть примерно так (в качестве пути к плагинам у нас будет выступать editor/plugins/):

/editor/plugins/findreplace/fckplugin.js
/editor/plugins/findreplace/lang/en.js
/editor/plugins/findreplace/lang/it.js

Файл fckplugin.js определяет ваш плагин. Здесь должны регистрироваться команды, связанные с плагином, и элементы панели инструментов для каждму файлу. ой из них.

// Регистрируем связанные команды.
FCKCommands.RegisterCommand(
 'My_Find' ,
new FCKDialogCommand(
 FCKLang['DlgMyFindTitle'] ,
  FCKLang['DlgMyFindTitle'] ,
FCKConfig.PluginsPath + 'findreplace/find.html' ,
340,
  170
)
) ;
FCKCommands.RegisterCommand(
 'My_Replace' ,
  new FCKDialogCommand(
 FCKLang['DlgMyReplaceTitle'],
  FCKLang['DlgMyReplaceTitle'] ,
 FCKConfig.PluginsPath + 'findreplace/replace.html',
 340,
 200
 )
) ;

// Создаем кнопку "Find" на панели инструментов.
var oFindItem = new FCKToolbarButton( 'My_Find', FCKLang['DlgMyFindTitle'] ) ;
oFindItem.IconPath = FCKConfig.PluginsPath + 'findreplace/find.gif' ;

FCKToolbarItems.RegisterItem( 'My_Find', oFindItem ) ;
// 'My_Find' - это имя, использованное в конфиге панели инструментов.

// Создаем кнопку "Replace" на панели инструментов.
var oReplaceItem = new FCKToolbarButton( 'My_Replace', FCKLang['DlgMyReplaceTitle'] ) ;
oReplaceItem.IconPath = FCKConfig.PluginsPath + 'findreplace/replace.gif' ;

FCKToolbarItems.RegisterItem( 'My_Replace', oReplaceItem ) ;
// 'My_Replace' это имя, использованное в конфиге панели инструментов
.

Установка и добавление плагина

Установка

Чтобы установить плагин, скопируйте распакованный каталог этого плагина в каталог plugins вашего редактора (editor/plugins). Т.е., для плагина "placeholder", путь к основному файлу будет 'editor/plugins/placeholder/fckplugin.js'. После этого, плагин можно считать установленным, и остается его добавить к редактору.

Добавление

Теперь вы можете добавить плагин в конфигурационном файле. Вы можете также использовать другой путь и добавить плагин, или использовать третий параметр в методе FCKConfig.Plugins.Add, чтобы определить путь к плагину:

// Изменяет путь к плагинам по умолчанию.
FCKConfig.PluginsPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + '_samples/_plugins/' ;

// Добавляем наш плагин к списку включенных плагинов.
// FCKConfig.Plugins.Add( pluginName, availableLanguages )
// pluginName: Имя плагина. Каталог плагина должен соответствовать этому имени.
// availableLanguages: список доступных языковых файлов для плагина (через запятую).
FCKConfig.Plugins.Add( 'findreplace', 'en,it,fr' ) ;
FCKConfig.Plugins.Add( 'samples' )

// Если хотите подключить плагин из другого каталога, укажите путь к нему в третьем параметре функции
var sOtherPluginPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + 'editor/plugins/' ;
FCKConfig.Plugins.Add( 'placeholder', 'en,it,de,fr', sOtherPluginPath ) ;
FCKConfig.Plugins.Add( 'tablecommands', null, sOtherPluginPath ) ;
FCKConfig.Plugins.Add( 'simplecommands', null, sOtherPluginPath ) ;

Рецепты плагинов

Здесь вы сможете найти дополнительные методы конфигурации, которые позволят вам лучше настроить плагины:

Дополнительная информация

Вы можете скачать плагины с соответствующей странички на Sourceforge. Инструкции иногда идут вместе с плагинами. Если нет, вы можете попробовать воспользоваться стандартной инструкцией.

Вот несколько хороших примеров реального создания плагинов, которые интегрируются с редактором:

Постовой:

К вопросу о монетизации сайтов - интересная статейка "продажа ссылок на сайпе" от seoadd.ru. Рассказывается даже про продажу ссылок из блогов на ya.ru.

WebGid.org - система коллективного поиска. Товарищи нестандартно подошли к реализации поисковой системы, основав ее на человеческой модерации и оценке информации.

Статьи схожей тематики:

Новый плагин для FCKeditor - scaleimages

Документация по FCKeditor JavaScript API

Подключаем к FCKeditor видео с RuTube

FCKeditor и настройка диалогов

Минималистичный WYSIWYG

Комментарии(8):

rss-лента

Добавлено: 2009-09-11 08:59:43, Denis

Полный и почти исчерпывающий ответ. Вы бы еще перевели "дополнительные рецепты" Был бы очень признателен.

Добавлено: 2009-09-14 09:38:19, Elena

А самому перевести, слабо? Привык до халявы, да? Чувак, открывай переводчик и шпарь! А выложишь где, дай знатЬ! Я бы и сама, но увы, мало времени - работа.

Добавлено: 2009-09-28 04:40:42, Максим Безрукав

"Основанное на выделении (выделить, затем нажать кнопку) http://sourceforge.net/forum/message.php?msg_id=3091867"

К сожалению, страница уже не существует, не сохранилось ли названия документа, чтобы его поискать? =)

Заранее спасибо.

Добавлено: 2009-10-17 03:27:42, Valera

Вот это тема всегда хотел сам плагины писать, теперь научусь.

Добавлено: 2009-10-17 16:13:50, Сергей

Спасибо. Воспользуюсь при первой возможности.

Добавлено: 2009-10-31 18:39:10, BigBoss

Спасибо за проделанный тяжкий труд.

Добавлено: 2009-11-16 13:58:01, remix

О Господи, сколько разных циферок и значков, как в этом всем разобраться я не врубаю)

Добавлено: 2009-12-10 21:03:38, jeanx

Конечно не в тему, Bolzamo, жаль что блог забросил...

Добавить комментарий

Ваше имя:*
Ваш email:*(не публикуется)
Ваш блог:
Ваш комментарий:*

Переносы строк и url-адреса преобразуются автоматически, не забудьте отделить их пробелами. html и bb-коды не поддерживаются.