- Введение в написание собственного модуля для Joomla 4
- Структура файлов модуля для Joomla 4
- Создание
mod_foo.php
- Создание
tmpl/default.php
- Создание
mod_foo.xml
- Создание языковых файлов модуля для Joomla 4
Введение в написание собственного модуля для 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»
- «Вступление»
- «Разработка базового модуля для CMS Joomla 4 - Часть 1»
- «Разработка базового модуля для CMS Joomla 4 - Часть 2. Добавление вспомогательного класса, использование пространства имён.»
- «Разработка базового модуля для CMS Joomla 4 - Часть 3. Настройкаː Добавление параметров с помощью полей формы»
- «Разработка базового модуля для CMS Joomla 4 - Часть 4. Использование сценария установки, обновления и удаления.»
- «Разработка базового модуля для CMS Joomla 4 - Часть 5. Добавление автоматического обновления расширения Joomla.»
Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/J4.x:Creating_a_Simple_Module
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)