Як розробити модуль Joomla?


10

Я роздивився підручник з цього питання, але не можу знайти нічого задовільного. Як зробити новий модуль для joomla?

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

Документація Joomla є досить заплутаною, і, прочитавши її кілька разів, я здався. Хтось може допомогти мені пояснити цей процес? Дякую!

Відповіді:


17

Навчання розробці модуля Joomla

Я дізнався, вивчаючи та налаштовуючи основні чи інші сторонні модулі.
Модулі як концепція простіші, ніж компоненти (які, як можна сказати, є двома програмами 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

3

Ми розробили безкоштовний модуль для тієї самої мети Спеціальний модуль PHP для Joomla CMS .

Вам потрібно створити файл PHP, наприклад, login.php в [website-root] / module / mod_customphp / files

  • Тепер використовувати цей файл
  • Перейдіть до [backend] -> module-manager
  • Створіть новий спеціальний модуль-php
  • У параметр includefile покладіть логін
  • Це відобразить login.php в модулі.

це відповідає моєму випадковому файлу wrt php, але він не відповідає тому, що я насправді запитував (у моєму випадку мені потрібно зберегти певні налаштування, наприклад, колір тощо для кожного використання модуля, що буде простіше, якщо я можу створити новий модуль, а не просто доступ до php), хоча дякую за пораду.
serakfalcon

Ви можете додати більше параметрів до модуля і використовувати ці парами у своїх файлах php.
Шям

3

Ви можете скопіювати існуючий модуль у локальну установку. Потім ви перейменовуєте його так, як вам хочеться. Ви також повинні перейменувати файли php та xml, а також імена класів php у коді. Тоді ви просто робите zip-файл свого модуля. Цей zip-файл ви можете встановити у своїй інсталяції Joomla.

Вам потрібно більше деталей щодо перейменування?


Це працює до певної міри, і це часто так, як я починаю, але недостатньо для роботи з мовними рядками та додатковими носіями, які встановлюються в різні місця.
Пітер Вісман

@PeterWiseman Так, ви праві, але це легкий і швидкий спосіб почати роботу.
чайка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.