Как сделать простой модуль для Joomla CMS?

joomlaЯ начинаю цикл статей посвяшеному одному из самых популярных ва текуший момент CMS — Joomla. А также её удачной на мой взгляд модификации Joostina.  Начнем конечно с простого. Статьи будут для тех кто хоть немного в курсе дела :) Помоему расказывать что это такое и для чего нет смысла. Кому нужно тот найдет.

Создавая примитив для Joomla, можно получить некоторое представление о функционировании системы модулей Joomla в целом. Поэтому, мы создадим простой модуль, отображающий традиционную надпись “Hello World”, ну или «World Programs» кому что нравится.Для начала создадим папку для файлов модуля, имя которой должно сопадать с названием модуля. Принято использовать префикс mod_ чтобы сразу было понятно, что именно содержит папка.
В созданной папке создаем файл mod_helloworld.php, в который вводим следующее:

<span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="font-style: italic; color: #0000ff;">/**
* Простой Модуль Joomla
* автор: world-pro.ru</span><span style="font-style: italic; color: #0000ff;">
*/</span>
<span style="color: #990000;">defined</span> <span style="color: #009900;">(</span> <span>'_JEXEC'</span> <span style="color: #009900;">)</span> or <span style="color: #990000;">die</span><span style="color: #009900;">(</span><span>'Restricted access'</span><span style="color: #009900;">)</span> ; 
<span style="color: #990000;">echo</span> JText<span style="color: #339933;">::</span><span style="color: #990000;">_</span><span style="color: #009900;">(</span><span>'Hello, World!'</span><span style="color: #009900;">)</span>;
?&gt;

Собственно, мои маленькие любители джумлы, тут всего две строчки исполняемых. Первая должна быть во всех создаваемых вами расширениях, она дает понять Joomla что она вызывает расширение, а не что-то потустороннее. Вторая линия делает как раз то что нам нужно — выводит приветствие.
Мы выводим текст не стандартным echo, вместо этого мы используем метод “подчеркивание” класса Jtext. Этот класс отвечает также и за перевод текста, используя языковые пакеты, загруженные в Joomla (коряво как-то вышло предложение, признаю). К примеру, вы передали методу “_” строку “Hello” и в системе установлен испанский языковой пакет, значит метод вернет “Hоlа”. Если текст не найден в пакете установленного на сайте языка, то выводится как есть. Заметьте, что метод чувствителен к регистру и не переводит пунктуацию. Считается хорошей практикой использовать этот модуль для выводы текста, так что если ваш модуль вдруг станет популярным, авторы языковых пакетов могли бы добавить эквиваленты используемых вами словосочетаний, и “интернационализация” не потребовала переделки модуля.
Затем создаем XML файл с описанием модуля, примерно такой:

<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">"1.0"</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">"utf-8"</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;install</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"module"</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">"1.5.0"</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Hello World<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;author<span style="color: #000000; font-weight: bold;">&gt;Penzin Konstantin</span></span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;creationDate<span style="color: #000000; font-weight: bold;">&gt;2009</span></span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/creationDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;copyright<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>(c) World-pro.ru. All rights reserved.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/copyright<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;license<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>GNU/GPL<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/license<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;authorEmail<span style="color: #000000; font-weight: bold;">&gt;p.kostik@bk.ru</span></span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/authorEmail<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;authorUrl<span style="color: #000000; font-weight: bold;">&gt;world-pro.ru</span></span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/authorUrl<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.0.0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;Простой модуль</span></span></span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;files<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filename</span> <span style="color: #000066;">module</span>=<span style="color: #ff0000;">"mod_helloworld"</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>mod_helloworld.php<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filename<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/files<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/install<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>

Тут все интуитивно понятно. В отличии от шаблонов, которые достаточно поместить в нужную папку, модуль должен быть зарегистрирован в системе (обратите на это внимание). То есть, вам нужно будет создать ZIP архив и установить модуль через Extension Manager.  На этом все. Продолжение следует.

Модули Joomla — это простейший тип расширений. В случае достаточного взаимодействия с пользователем используются компоненты.

Оригинал атьи на http://anton.gergel.ru/

  • Грибов

    Мне очень хочется поговорить с кем-нибудь по теме. Все кто желает, катайте в асю 11127215

Запись навигация

Top