Новости Joomla

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 4800 Просмотров
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Создание плагина для 1.5
« : 03.01.2007, 15:37:49 »
Плагин (бывший мамбот) можно сделать аж тремя(!!!) вариациями.

1. Old way (Legacy mambot) - по старинке, как в 1.0.
для разработки новых плагинов не рекомендуется, существует только для совместимости со старыми.
требуется включение режима legacy mode в админке джумлы.

2. New way (new API supported)
Промежуточный вариант. В таком формате сейчас (для бета 1) оригинальные плагины, в силу исторически сложившихся причин. Для новых разработок рекомендуется 3-ий формат.

3. Extended new object scheme
Новый формат для разработки новых плагинов для 1.5. Не совместим с 1.0.
Вот его и будем рассматривать.

Пример плагина мы обзавём MyPlugin и будет он работать в материалах (для com_content).
примечание: рекомендую все имена файлов и их расширений писать только маленькими буквами (!!!)

Плагин как и раньше, состоит из двух основных файлов - myplugin.xml и myplugin.php
Далее уже появляются различия между 1.0 и 1.5 - любой плагин в 1.5 может быть локализован с помощью ini-файла.
И тут очень важно имя файла.
Выглядит оно вот так: {код_языка}.plg_{группа}_{название_плагина}.ini

ПРИМЕР: для русского языка, плагин с именем файла myplugin.php и обработкой событий в контенте будет выглятеть как
ru-RU.plg_content_myplugin.ini

Внимание (!!!)
физическая кодировка XML и PHP файлов - ANSI (iso-8859-1 или win-1251)
кодировка языковых INI-файлов - UTF-8



текст в разработке
« Последнее редактирование: 03.01.2007, 19:59:06 от userxp »
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
myplugin.xml
« Ответ #1 : 03.01.2007, 15:57:52 »
рассмотрим теперь инсталлятор плагина myplugin.xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<install version="1.5" type="plugin" group="content">
   <name> Название плагина </name>
   <author> имя разработчика </author>
   <creationDate> дата </creationDate>
   <copyright> копирайт </copyright>
   <license> лицензия </license>
   <authorEmail> email автора </authorEmail>
   <authorUrl> web сайт автора </authorUrl>
   <version> версия плагина </version>
   <description>Описание плагина</description>
   <files>
      <filename plugin="myplugin">myplugin.php</filename>
      <filename>mypluginfolder/index.htm</filename>
      ...
   </files>
   <languages>
      <language tag="ru-RU">ru-RU.plg_content_myplugin.ini</language>
      <language tag="en-GB">en-GB.plg_content_myplugin.ini</language>
      ...
   <languages>
   <params>
      <param .../>
      <param .../>
      <param .../>
      ...
   </params>

</install>


1. <?xml version="1.0" encoding="iso-8859-1"?>
оставляем без изменеий

2. <install version="1.5" type="plugin" group="content">
type="plugin" - говорим, что это плагин
group="content" - для группы контент (вызывается с другими плагинами в составе группы content).
Будет обрабатывать вызовы из компонента com_content

3. <name> Название плагина </name>
Названия плагина, то есть так, как он будет отображаться в списке плагинов.
Поскольку уже есть определённая традиция, то название следует писать таким образом: Группа - название, а именно:
<name>Content - MyPlugin</name>
Регистр букв и имя файла здесь не причём. Пишите, что захотите :)

4. <description>Описание плагина</description>
В общем-то это описание, но! есть нюанс ;)
Здесь уже можно вставить фразу, которая будет локализована через ini-файл.
Но об этом в локализации.

5. Файлы, а точнее, раздел <files> ... </files>
<filename plugin="myplugin">myplugin.php</filename> - это первый, основной исполняемый файл плагина
Об этом говорит запись plugin="myplugin"
Далее перечисляются второстепенные файлы, необходимые для работы плагина (это уже определяется самим разработчиком, нужны они ему или нет).
Если такие файлы есть, то их лучше ложить в дополнительную папку, как в примере:
<filename>mypluginfolder/index.htm</filename>
Имя папки - на ваше усмотрение, однако, не забывайте скопировать туда "пустышку" index.htm.

6. Языковые файлы
   <languages>
      <language tag="ru-RU">ru-RU.plg_content_myplugin.ini</language>
      <language tag="en-GB">en-GB.plg_content_myplugin.ini</language>
      ...
   <languages>

параметр tag="ru-RU" указывает имя папки, а точнее, что файл ru-RU.plg_content_myplugin.ini будет скопирован в папку /administrator/language/ru-RU/

7. Параметры
   <params>
      <param .../>
      <param .../>
      ...
   </params>
Параметры определяют настройки плагина и отображаются в правой части страницы его настроек.
Данные параметра зависят от его типа.
Данные параметров описаны здесь: http://joomlaforum.ru/index.php/topic,9605.0.html

Параметры бывают однострочные и многострочные.
Однострочный параметр описывается в пределах одной пары скобок <param name="..." ... />
Многострочный параметр описывает ещё дополнительные опции выбора. Например:

<param name="enable" type="radio" default="0" label="ENABLE_LABEL" description="ENABLE_DESC">
   <option value="0">No</option>
   <option value="1">Yes</option>
</param>

текст в разработке
« Последнее редактирование: 03.01.2007, 19:47:54 от userxp »
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
myplugin.php
« Ответ #2 : 03.01.2007, 19:49:56 »
главный исполняемый файл плагина: myplugin.php
шаблон кода плагина:

<?php
// no direct access
defined'_JEXEC' ) or die( 'Restricted access' );

// Import library dependencies
jimport('joomla.application.plugin.helper');

class <
EventHandlerName> extends JPlugin
{
   
/**
    * Constructor
    *
    * For php4 compatability we must not use the __constructor as a constructor for
    * plugins because func_get_args ( void ) returns a copy of all passed arguments
    * NOT references.  This causes problems with cross-referencing necessary for the
    * observer design pattern.
    */
    
function <EventHandlerName>( & $subject )
    {
            
parent::__construct$subject );
            
// load plugin parameters
            
$this->_plugin = & JPluginHelper::getPlugin'<GroupName>''<PluginFileName>' );
            
$this->_params = new JParameter$this->_plugin->params );
    }

    
/**
    * Plugin method with the same name as the event will be called automatically.
    */
    
function <EventName>()
    {
        global 
$mainframe;
        
// Plugin code goes here.
        
return;
    }
}
$dispatcher =& JEventDispatcher::getInstance();
$dispatcher->attach(new <EventHandlerClass>($dispatcher));
?>



<EventHandlerName> - имя класса плагина. Обычно совпадает с именем файла.
<EventName> - обрабатываемое событие (onPrepareContent, onAfterDisplayTitle и т.д.)
<GroupName> - группа/категория (папка), где лежит плагин.
<PluginFileName> - имя файла плагина (т.е. этого же файла).

текст в разработке
« Последнее редактирование: 05.01.2007, 02:32:22 от userxp »
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[how to] Красота JHTML, или создание элементов формы с

Автор Professor

Ответов: 11
Просмотров: 23935
Последний ответ 27.12.2012, 18:14:38
от BaR
Как вы "въехали" в создание расширений?

Автор aanvale

Ответов: 4
Просмотров: 2479
Последний ответ 13.10.2012, 21:44:25
от passer
Сортировка статей по итоговому рейтингу плагина Extravote. Предлагаю коллективный мозговой штурм!

Автор deniro21

Ответов: 3
Просмотров: 5170
Последний ответ 04.03.2012, 23:56:54
от SamDecKs
Создание таблицы в БД при установке плагина

Автор mohax

Ответов: 2
Просмотров: 2163
Последний ответ 14.06.2011, 17:35:46
от mohax
Создание плагина всплывающего изображения

Автор CTPZ

Ответов: 1
Просмотров: 1878
Последний ответ 25.04.2011, 12:09:12
от moskitos80