Joomla 4 - как подключить стили, скрипты. получить параметры компонента и другие подсказки

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

Как подключить CSS и скрипты в Joomla 4

Объявляем переменную с WebAssetManager

use Joomla\CMS\Factory;
$assetManager = Factory::getApplication()->getDocument()->getWebAssetManager();

Подключаем CSS

 $assetManager->registerAndUseStyle('your_uniq_css_name', 'path/style.css', []);

Подключаем внешний JS файл

 $assetManager->registerAndUseScript('your_uniq_script_name', 'path/script.js', []);

Обратите внимание на первый передаваемый параметр. Это уникальное имя подключаемого элемента. Оно задается произвольно.

Вставляем свой JS код, который хранится в переменной $script

 $assetManager->addInlineScript($script);

Подробно о подключении стилей и скриптов в Joomla 4 можно прочитать на официальном сайте Joomla

Как получить параметры компонента из другого компонента в Joomla 4

use Joomla\CMS\Component\ComponentHelper;
$params = ComponentHelper::getParams('com_yourcomponent'); // Получаем параметры
$param = $params->get('my_parametr', ''); // Получаем отдельно взятый параметр с именем my_parametr

Редирект в Joomla 4

Для того, чтобы не получить на сайте сообщение об ошибке "You have not supplied a valid HTTP status code", редирект под Joomla 4 следует производить следующим образом:

use Joomla\CMS\Factory;
$app = Factory::getApplication();
$app->enqueueMessage('Текст сообщения, который увидит посетитель после редиректа');
$app->redirect($link,); // собственно, сам редирект. В переменной $link хранится адрес страницы

Как получить адрес текущей страницы сайта

use Joomla\CMS\Uri\Uri;
$uri = Uri::getInstance();
$current_url =  $uri->toString();

Поля в административной панели с множественным выбором

Для современного отображения поля с множественным выбором, необходимо к полю добавить атрибут layout="joomla.form.field.list-fancy-select"

На рисунке ниже показано поле с множественным выбором и добавленный аттрибут