Создание кнопки для визуального редактора в Joomla 1.5

  • Среда, 14 января 2009

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

О создании кнопки для редактора в Joomla! 1.0 уже все написано. Рассмотрим теперь, как подобную задачу реализовать в Joomla 1.5.

Кнопка редактора является плагином (в Joomla! 1.0.x мамботом) расширения редактора и состоит из двух файлов:

  • plg_name.php
  • plg_name.xml

где plg_ — это общепринятый префикс для плагинов в Joomla! 1.5, name - имя плагина.

Инсталляционный XML-файл плагина

Данный файл предназначен для установки плагина в Joomla и содержит в себе различного рода информацию о данном расширении (тип, название, автор, дата выпуска, лицензия и т.д.). Пример инсталляционного XML-файла для простейшего плагина:



       Button - Hello
       Joomla! Project
       March 2006
       Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
       http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
       admin@joomla.org
       www.joomla.org
       1.5
       My Description
       
               hello.php
       
       

В теге name заключено имя плагина отображаемое в списке плагинов административной панели. Тег filename содержит имя файла плагина и название плагина без расширения. Этого вполне достаточно.

Основной php-файл плагина

Файл hello.php приведен ниже:

_subject->getContent($name);
               $js = "
                       function insertHello(editor) {
                               var content = $getContent
                                       jInsertEditorText('{hello}', editor);
                       }
                       ";
               $doc = & JFactory::getDocument();
               $doc->addScriptDeclaration($js);

               $button = new JObject();
               $button->set('modal', false);
               $button->set('onclick', 'insertHello(\''.$name.'\');return false;');
               $button->set('text', 'Hello');
               $button->set('name', 'hello');
               $button->set('link', '#');

               return $button;
       }
}?>

Разберем основные моменты. Любой плагин в Joomla 1.5 должен быть наследником от класса JPlugin, а плагин, реализующий кнопку для визуального редактора, должен реализовывать метод onDisplay. Данный метод, в результате своей работы должен вернуть объект, описывающий кнопку для визуального редактора.

В данном примере, для этих целей создается объект $button, и присваиваются минимально необходимые свойства:

  • modal — флаг, определяющий, является ли открывающееся окно модальным или нет (т.е. можно ли вернуться в редактор, не закрывая открывшееся окно).
  • onclick — обработчик события нажатия на кнопку (вызов JavaScript-функции)
  • name — имя кнопки и по совместительству название класса, присваиваемого кнопке (как правило совпадает с именем плагина).
  • text — текст, который будет написан на кнопке
  • link — ссылка (учитывая, что мы добавляем на кнопку обработчик события OnClick - ссылку делаем пустой, проставляя в качестве значения символ #)

Чуть выше определения объекта кнопки, можно заметить объявление JavaScript-функции, которую мы обозначили обработчиком события нажатия кнопки. Данная функция выполняет одно простое действие - вставляет тег {hello} в текущую позицию курсора редактора.

Объявление данной функции добавляется в код текущей страницы посредством вызова метода addScriptDeclaration у объекта типа JDocument, описывающего текущую страницу.

Вот собственно и все. Если указанные два файла упаковать в архив и установить, при редактировании материалов Joomla под редактором появится еще одна кнопочка, по нажатию на которой в поле редактора будет вставляться тег {test}.

Smart

Smart

Россия, Севастополь. http://www.joomlatune.com/

Статьи автора

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Коротко о главном в Joomla

Новости портала

Новое в блогах

Видео

Форум о Joomla