Совет по Joomla: метод HTMLHelper::image() для рендера изображений
В API Joomla есть довольно богатый инструмент - класс HTMLHelper. С его помощью можно выводить различные HTML-элементы с нужными параметрами: модальные окна, аккордеоны, табы, изображения и т.д.
Наглядности и чистоты кода ради стоит использовать этот метод, дабы не делать бесконечную конкатенацию HTML с PHP кодом и не потерять глаза в поисках утерянной кавычки.
Самый простой способ рендера изображений - с 2-мя аргументами:
$img
- путь к изображению$alt
- текст для атрибута alt изображения 3-й необязательный параметр - массив или строка с атрибутами изображения:class
,title
, различные data-атрибуты,onclick
,loading
и т.д. Я предпочитаю удобно и наглядно собрать атрибуты в массив, использовать условия в PHP, а не HTML коде.
<?php
use Joomla\CMS\HTML\HTMLHelper;
$img_src = 'images/banner.webp';
$img_attribs = [
'loading' => 'lazy',
'class'=>'img-fluid',
'data-custom-attr'=>'your-custom-data-attr-value',
'title'=> 'Title attribute for image'
];
echo HTMLHelper::image($img_src,'Alt text for image', $img_attribs);
Если изображение найдено - получим HTML-разметку <img src="..."/>
с нашими данными. Если не найдено - null
.
Ещё 2 параметра, которые используются реже и связаны с одной из главных фишек Joomla - функционалом переопределений. Но их описание не укладывается в размер поста на Хабре 😢