Новости Joomla на русском
Главная Новости Форум Статьи и обзоры Вопросы и Ответы
Joomla! по-русски
Вышла стабильная версия Joomla 2.5.1! Исправлено 32 ошибки (2 ошибки безопасности низкого уровня), увеличена скорость работы Joomla на Windows Azure, исправлены ошибки в функциях пакетной обработки и поиска. Библиотека MooTools обновлена до версии 1.4.3. Разработчики настоятельно рекомендуют обновиться до Joomla 2.5.1. Пакет русской локализации Joomla 2.5 уже доступен для загрузки.
 
Tuesday, 07 February 2012 Главная arrow Статьи и обзоры arrow Создание кнопки для визуального редактора в Joomla 1.5
Категории
Статьи
Обзоры
Модификации и хаки
Для разработчиков
Joomla!® CMS
Russian Joomla Translation Team
Безопасность
Популярные статьи

Advego.ru - наполнение сайтов информацией

Замечание

Joomla!® является торговой маркой компании Open Source Matters inc в США и др. странах. Название Joomla! и его вариации, такие как J, Joom и т.д., используются в рамках ограниченной лицензии, определённой компанией Open Source Matters. Проект Joomlaportal не относится к компании Open Source Matters или проекту Joomla! Точки зрения представленные на данном сайте не являются официальными точками зрения Joomla Project или Open Source Matters.

Торговая марка Joomla® и логотип используются в рамках ограниченной лицензии, предоставленной Open Source Matters.

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

13.01.2009 | smartСтатьи и обзоры / Для разработчиков

Весьма серьезным преимуществом 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-файла для простейшего плагина:

 
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="editors-xtd">
       <name>Button - Hello</name>
       <author>Joomla! Project</author>
       <creationDate>March 2006</creationDate>
       <copyright>Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.</copyright>
       <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
       <authorEmail>admin@joomla.org</authorEmail>
       <authorUrl>www.joomla.org</authorUrl>
       <version>1.5</version>
       <description>My Description</description>
       <files>
               <filename plugin="hello">hello.php</filename>
       </files>
       <params />
</install>

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

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

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

 
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.plugin.plugin' );
 
class plgButtonHello extends JPlugin
{
       function plgButtonHello(& $subject, $config)
       {
               parent::__construct($subject, $config);
       }
 
       function onDisplay($name)
       {
               $getContent = $this->_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}.

 
< Пред.   След. >
Загрузить Joomla!® CMS

Joomla 2.5

Joomla 2.5.1

Joomla 2.5.0 Joomla 2.5.1

Локализация Joomla 2.5

Пакет русской локализации Joomla 2.5.1

Joomla 1.7

Joomla 1.7.5

Joomla 1.7.3 Russian
(русифицированная версия)

Joomla 1.7.4 Joomla 1.7.5

Локализация Joomla 1.7

Пакет русской локализации Joomla 1.7.5

Joomla 1.5

Joomla 1.5.25

Joomla 1.5.25 Russian
(русифицированная версия)

Joomla 1.5.24 Joomla 1.5.25

Локализация Joomla 1.5

Русский язык для лицевой панели (site)
Русский язык для административной панели (admin)

Как обновить Joomla 1.0
до версии Joomla 1.5?

Документация

Joomla 1.7 FAQ
Joomla 1.5 FAQ
Joomla 1.0 FAQ


Русская версия Joomla

Joomla 1.7 Russian
Joomla 1.5 Russian