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'); // Получаем отдельно взятый параметр с именем my_parametr $param = $params->get('my_parametr', '');
Редирект в Joomla 4
Для того, чтобы не получить на сайте сообщение об ошибке "You have not supplied a valid HTTP status code", редирект под Joomla 4 следует производить следующим образом:
use Joomla\CMS\Factory; $app = Factory::getApplication(); $app->enqueueMessage( 'Текст сообщения, который увидит посетитель после редиректа' ); // собственно, сам редирект. В переменной $link хранится адрес страницы $app->redirect($link,);
Как получить адрес текущей страницы сайта
use Joomla\CMS\Uri\Uri; $uri = Uri::getInstance(); $current_url = $uri->toString();
Поля в административной панели с множественным выбором
Для современного отображения поля с множественным выбором, необходимо к полю добавить атрибут layout="joomla.form.field.list-fancy-select"
На рисунке ниже показано поле с множественным выбором и добавленный аттрибут