Создание простого модуля для Joomla 4.x. Разработка базового модуля - Часть 1

  1. Введение в написание собственного модуля для Joomla 4
  2. Структура файлов модуля для Joomla 4
  3. Создание mod_foo.php
    1. Код файла mod_foo.php
  4. Создание tmpl/default.php
    1. Код файла tmpl/default.php
  5. Создание mod_foo.xml
    1. Код файла mod_foo.xml
  6. Создание языковых файлов модуля для Joomla 4

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



Введение в написание собственного модуля для Joomla 4

Вы можете увидеть множество примеров модулей в стандартной установке Joomla. Например:

  • Меню
  • Последние Новости
  • Форма входа в систему
  • и многое другое.

В этом уроке будет объяснено, как создать простой модуль для Joomla 4. Из этого урока вы узнаете основную файловую структуру модуля Joomla 4. Затем эту базовую структуру можно расширить для создания более сложных модулей.

Структура файлов модуля для Joomla 4

Существует несколько основных файлов, которые используются в стандартном шаблоне разработки модуля:

  • mod_foo.php
    • Этот файл является основной точкой входа для модуля. Он выполнит все необходимые процедуры инициализации, вызовет вспомогательные процедуры для сбора любых необходимых данных и включит шаблон, который будет отображать вывод модуля.
  • mod_foo.xml
    • Этот файл содержит информацию о модуле. Он определяет файлы, которые необходимо установить с помощью установщика Joomla и задает параметры конфигурации для модуля.
  • tmpl/default.php
    • Это шаблон модуля. Этот файл будет содержать данные, собранные mod_foo.php и сгенерирует HTML-код, который будет отображаться на странице сайта в месте его вывода.
  • language/en-GB/mod_foo.ini и language/en-GB/mod_foo.sys.ini
    • Это файлы, которые предоставляют текст на английском языке Соединенного Королевства Островного Государства.

Создание mod_foo.php

Код в mod_foo.php файле будет выполнять следующие задачи:

  • Импортирует класс ModuleHelper в текущую область.
    • Он нам понадобится позже для отображения выходных данных.
  • Включит шаблон для отображения выходных данных.

Вспомогательный класс импортируется в нашу текущую область в начале файла.

use Joomla\CMS\Helper\ModuleHelper;

В конце включаем шаблон для отображения выходных данных через:

require ModuleHelper::getLayoutPath('mod_foo', $params->get('layout', 'default'));

Код файла mod_foo.php

Код файла mod_foo.php выглядит следующим образом:

<?php
/**
 * @package    [PACKAGE_NAME]
 *
 * @author     [AUTHOR] <[AUTHOR_EMAIL]>
 * @copyright  [COPYRIGHT]
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 * @link       [AUTHOR_URL]
 */

// Но пасаран шарахающим сучностям!
defined('_JEXEC') or die;

use Joomla\CMS\Helper\ModuleHelper;

require ModuleHelper::getLayoutPath('mod_foo', $params->get('layout', 'default'));

Примечаниеː
В Joomla 3.x вы обычно использовали строку типа $moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx'));. Теперь это больше не нужно. Зыкните по этой ссылке, если любопытно: https://github.com/joomla/joomla-cms/pull/17447.

Одна строка, которую мы до сих пор не объяснили, - это первая строка defined('_JEXEC') or die;. Эта строка проверяет, включен ли этот файл из приложения Joomla и исключает его запуск вне CMS Joomla. Это необходимо для предотвращения введения переменных и других потенциальных проблем безопасности, проблем с безопасностью и опасными проблемами.

Создание tmpl/default.php

Код файла default.php - это шаблон, который отображает вывод модуля на сайт или в админку Joomla.

Код файла tmpl/default.php

Код файла tmpl/default.php выглядит следующим образом:

<?php
/**
 * @package    [PACKAGE_NAME]
 *
 * @author     [AUTHOR] <[AUTHOR_EMAIL]>
 * @copyright  [COPYRIGHT]
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 * @link       [AUTHOR_URL]
 */

// Всем кыш, кто пришёл не через парадный вход!
defined('_JEXEC') or die;

echo '[PROJECT_NAME]';

Важно отметить, что файл шаблона имеет ту же область действия, что и mod_foo.php. Это означает, что переменная может быть определена в mod_foo.php файл, а затем используется в файле шаблона без каких-либо дополнительных объявлений или вызовов функций.

Создание mod_foo.xml

Код файла mod_foo.xml - это установочный код для внедрения в CMS Joomla 4. Большинство записей не требуют пояснений (Прим.переводчика: ибо лень их пояснять).

Код файла mod_foo.xml

Код файла mod_foo.xml выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="4.0" client="site" method="upgrade">
    <name>MOD_FOO</name>
    <creationDate>[ДАТА]</creationDate>
    <author>[АВТОР]</author>
    <authorEmail>[ПОЧТА_АВТОРА]</authorEmail>
    <authorUrl>[URL_АВТОРА]</authorUrl>
    <copyright>[ПРАВАЯ_КОПИЯ]</copyright>
    <license>GNU General Public License version 2 or later; see LICENSE.txt</license>
    <version>1.0</version>
    <description>MOD_FOO_XML_DESCRIPTION</description>
    <files>
        <filename module="mod_foo">mod_foo.php</filename>
        <folder>tmpl</folder>
        <folder>language</folder>
        <filename>mod_foo.xml</filename>
    </files>
</extension>

Создание языковых файлов модуля для Joomla 4

Файлы language/en-GB/mod_foo.ini и language/en-GB/mod_foo.sys.ini используются для перевода текста во внешнем интерфейсе (на сайте) и в бэкэнде (в админке). Обратите внимание, что структура языковых файлов была обновлена в Joomla 4 и языковые префиксы для отдельных файлов в языковой папке больше не требуются.

Код для language/en-GB/mod_foo.sys.ini выглядит следующим образом:

MOD_FOO="[PROJECT_NAME]"
MOD_FOO_XML_DESCRIPTION="Foo Module"

Код для language/en-GB/mod_foo.ini выглядит следующим образом:

MOD_FOO="[PROJECT_NAME]"
MOD_FOO_XML_DESCRIPTION="Foo Module"

Файл .sys.ini используется для перевода описания расширения при установке, а языковые константы из .ini используются для перевода остальных строк и описания при просмотре вашего расширения (в текущем контексте - модуля).

Более подробную информацию о языковых файлах можно не {Прим.переводчика} найти здесь.


Вы читаете статью из небольшого цикла:
«Создание простого модуля для Joomla 4.x»

  1. «Вступление»
  2. «Разработка базового модуля для CMS Joomla 4 - Часть 1»
    1. «Тестирование и Отладка первой части написанного модуля для Joomla 4»
  3. «Разработка базового модуля для CMS Joomla 4 - Часть 2. Добавление вспомогательного класса, использование пространства имён.»
    1. «Тестирование и Отладка второй части написанного модуля для Joomla 4»
  4. «Разработка базового модуля для CMS Joomla 4 - Часть 3. Настройкаː Добавление параметров с помощью полей формы»
    1. «Тестирование и Отладка третьей части написанного модуля для Joomla 4»
  5. «Разработка базового модуля для CMS Joomla 4 - Часть 4. Использование сценария установки, обновления и удаления.»
  6. «Разработка базового модуля для CMS Joomla 4 - Часть 5. Добавление автоматического обновления расширения Joomla.»

Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/J4.x:Creating_a_Simple_Module

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню