Как разработать модуль Joomla?

10

Я искал учебник по этому вопросу, но не могу найти ничего удовлетворительного. Как вы делаете новый модуль для Joomla?

Прямо сейчас я использую собственные модули HTML во всем своем коде, и я хотел бы иметь возможность проникнуть в PHP и превратить их все в модуль, но я не нашел учебника для этого. Я уже модифицировал установленные модули, но я не знаю, как сделать тот, который будет устанавливать.

Документация Joomla довольно запутанная, и после прочтения несколько раз я сдался. Кто-нибудь может помочь мне объяснить этот процесс? Спасибо!

serakfalcon
источник

Ответы:

17

Обучение разработке модулей Joomla

Как я узнал, я изучал и настраивал основные или другие сторонние модули.
Модули как концепция более просты, чем компоненты (которые мы могли бы назвать 2-мя приложениями (front-end / back-end)) и предназначены для отображения части информации.
Так что, если вы откроете папку / файлы модуля и начнете читать код, вы, вероятно, быстро освоитесь с ним.

Joomla Модуль Анатомия на примере

Например, вы можете открыть модуль « Последние статьи» в Joomla 3.2 и проверить его код, читая строки ниже. В папке модуля мы найдем 4 основных файла:

1. mod_articles_latest.php
2. helper.php
3. tmpl/default.php
4.mod_articles_latest.xml

  1. Это mod_articles_latest.phpосновной файл модулей, который используется первым при вызове модуля. Он инициализирует модуль и включает в себя helper.php, вызов метода класса помощника для извлечения данных и, наконец, включает шаблон модуля ( default.php) для отображения данных.

  2. helper.phpФайл является «машиной» модуля (если мы могли бы назвать это так). В помощнике мы создаем класс модуля и его методы для извлечения данных. Это место, где у нас может быть модуль «пообщаться» с базой данных. Чтение кода в файле хелперы этого модуля, вы увидите , что он содержит ModArticlesLatestHelperкласс , который имеет один метод:getList(&$params) .
    В рамках этого метода модуль проверяет внутренние настройки модуля и в конечном итоге создает список статей, которые он будет возвращать, основываясь на этих условиях. Обратите внимание, что этот модуль использует JModelLegacy::getInstanceметод для возврата объекта модели содержимого .

  3. Это default.phpосновной шаблон модуля, который отвечает за отображение содержимого модуля. - Здесь мы строим вывод html, используя данные, которые вы ранее извлекли mod_articles_latest.php, вызывая класс модуля. Он находится внутри папки tmpl . * Обратите внимание, что файл основного модуля включает в себя файл шаблона с JModuleHelper::getLayoutPathметодом, который сначала проверит любые переопределения шаблона.

  4. Наконец, mod_articles_latest.xmlя бы назвал это «послом» модуля. Это файл, который «вводит» модуль в Joomla во время установки, он определяет файлы, которые будут скопированы установщиком, а также содержит информацию о параметрах модуля, которые используются менеджером модулей, а также дополнительную информацию о модуле.

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

Ф.Фрюин
источник
15

Вы видели следующие руководства в документации по Joomla?

В частности, обязательно посмотрите все статьи серии.

Питер Уайзман
источник
3

Для этой цели мы разработали бесплатный модуль Custom PHP Module для Joomla CMS .

Вам необходимо создать файл PHP, например, login.php в [website-root] / modules / mod_customphp / files

  • Теперь использовать этот файл
  • Перейти к [бэкэнд] -> модуль-менеджер
  • Создать новый модуль custom-php
  • В параметре includefile укажите логин
  • Это отобразит login.php в модуле.
Shyam
источник
это отвечает моему сценарию использования по php, но не отвечает тому, что я на самом деле спрашивал (в моем случае мне нужно сохранять определенные настройки, такие как цвет и т. д. для каждого использования модуля, что будет проще, если я смогу создать новый модуль, а не просто доступ к PHP) хотя спасибо за совет.
serakfalcon
Вы можете добавить больше параметров в модуль и использовать эти параметры в ваших файлах php.
Shyam
3

Вы можете скопировать существующий модуль в локальной установке. Затем вы переименовываете его так, как хотите. Вы также должны переименовать файлы php и xml, а также имена классов php в коде. Тогда вы просто создаете zip-файл вашего модуля. Этот zip-файл вы можете установить в вашей установке Joomla.

Вам нужно больше деталей о переименовании?

Seagul
источник
Это работает до некоторой степени, и это часто, как я начинаю, но недостаточно, чтобы иметь дело с языковыми строками и дополнительными носителями, которые устанавливаются в разных местах.
Питер Уайзман
@PeterWiseman Да, вы правы, но это простой и быстрый способ начать.
Seagul