FCKEditor - как сделать простой плагин? - PullRequest
4 голосов
/ 17 марта 2009

У меня есть сайт, который использует FCKEditor. Я хотел бы сделать невероятно простой плагин: когда пользователь выбирает текст, а затем нажимает MyPluginIcon, редактор окружает текст в теге span определенным классом.

Так что это как кнопка Bold или Italic, но для:

<span class="blah">EtcEtc</span>

Я далеко не эксперт по JS, поэтому я искал плагин для копирования. Я посмотрел в FCK вики, но все плагины, которые я нашел, действительно сложны (файловые браузеры и еще много чего). Знаете ли вы о супер простом плагине FCK, на котором я могу основать свой плагин?

Спасибо!

1 Ответ

5 голосов
/ 17 марта 2009

Отвечая на мой вопрос! Надеюсь, если кто-то найдет это в будущем, это поможет.

Я использовал основной файл отсюда: http://www.iondev.lu/fckeditor/netnoi.txt

Я нашел и заменил «netnoi» своим собственным именем и раскомментировал линию иконок, чтобы сделать иконку (16x16).

И инструкция по его установке отсюда: http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Customization/Plug-ins

Убедитесь, что каталог плагинов правильный - в drupal папка плагинов отличается от стандартной установки FCK.

РЕДАКТИРОВАТЬ: Очевидно, netnoi.txt пропал. Вот что я использовал:

/***
 * Create blank command
 */
var FCKPixelCaps_command = function()
{

}

/***
 * Add Execute prototype
 */
FCKPixelCaps_command.prototype.Execute = function()
{
        // get whatever is selected in the FCKeditor window
        var selection = FCK.EditorDocument.getSelection();

        // if there is a selection, add tags around it
        if(selection.length > 0)
        {
                FCK.InsertHtml('<span class="caps">' + selection + '</span>');
        } else {
                // for debugging reasons, I added this alert so I see if nothing is selected
                alert('nothing selected');
        }
}

/***
 * Add GetState prototype
 * - This is one of the lines I can't explain
 */
FCKPixelCaps_command.prototype.GetState = function()
{
        return;
}

// register the command so it can be use by a button later
FCKCommands.RegisterCommand( 'PixelCaps_command' , new FCKPixelCaps_command() ) ;

/***
 * Create the  toolbar button.
 */

// create a button with the label "Netnoi" that calls the netnoi_command
var oPixelCaps = new FCKToolbarButton( 'PixelCaps_command', 'Pixels & Pulp Caps' ) ;
oPixelCaps.IconPath = FCKConfig.PluginsPath + 'PixelCaps/caps.gif' ;

// register the item so it can added to a toolbar
FCKToolbarItems.RegisterItem( 'PixelCaps', oPixelCaps ) ; 
...