Итак нашел на Joomlaportal такую статью:
Весьма серьезным преимуществом Joomla перед другими системами является довольно широкие возможности расширения базового функционала системы посредством различного рода расширений. В этой статье мы расскажем, как создать плагин, добавляющий дополнительную кнопку для редактора материалов, по нажатию на которую в редактируемый вставлялся бы некий текст.
О создании кнопки для редактора в Joomla! 1.0 уже все написано. Рассмотрим теперь, как подобную задачу реализовать в Joomla 1.5.
Кнопка редактора является плагином (в Joomla! 1.0.x мамботом) расширения редактора и состоит из двух файлов:
plg_name.php
plg_name.xml
где
plg_ — это общепринятый префикс для плагинов в Joomla! 1.5,
name - имя плагина.
ОСНОВНОЙ 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 1.5
Оригинал статьи: Создание кнопки Joomla! Скомпилированный мною плагин: Итак плагин работает, выводя на страницу код:
при желании можно вставить свой код...
Но вопрос остался прежним, не могу догнать как вывести вместо
{hello} следующее:
| Код: |
<span class="info"><a href="">Демо</a></span></p>
|
Притом что-бы работало так, вставляешь в контент ссылку к примеру:
| Код: |
http://nrg-design.ru
|
после выделяешь ее и нажимаешь на созданную нами кнопку, и получаем вот такое:
| Код: |
<span class="info"><a href="http://nrg-design.ru">Демо</a></span></p>
|
Перепробовал уже все, не фурычит так вообще, кто хорошо php знает или js?