Собственные макеты вывода для пользовательских полей Joomla
Мы привыкли использовать механизм переопределения макетов Joomla: скопируй нужный тебе файл макета в папку html шаблона и твори там что хочешь. Это в полной мере относится и к пользовательским полям Joomla.
Joomla ищет макеты рендера всех пользовательских полей в следующем порядке:
Есть ли файл
templates/[template name]/html/layouts/[component name]/fields/render.php
, переопределяющий макет вывода полей для конкретного компонента? Да - используем его.Нет? Есть ли файл
components/[component name]/layouts/fields/render.php
в папке компонента? Да - используем его.Нет? Есть ли файл
templates/[template name]/html/layouts/com_fields/fields/render.php
, переопределяющий вывод полей дляcom_fields
? Да - используем его.Нет? Используем файл
components/com_fields/layouts/fields/render.php
Это механизм поиска переопределений файлов макетов.
Вчера столкнулся с тем, что если поле вставлено в текст материала с помощью шорт-кода (кнопкой редактора) вида {field 25}
, то переопределения не сработали. Поэтому стал вспоминать как сделать свой макет для поля Joomla.

Файл components/com_fields/layouts/field/render.php
копируем в templates/YOUR_TEMPLATE/html/layouts/com_fields/field/etapy-raboty-nad-proektom.php
. Обратите внимание, что мы файл переименовали, чтобы в настройках поля видеть его в выпадающем списке. После этого всё заработало как надо.
Благо, переводил уже раньше статью Как происходит рендер пользовательских полей в Joomla?. Потом, порывшись по своему же переводу увидел, что эта особенность работы Joomla в статье уже в ней описана 😂. А также напомнил себе о возможности указывать макет поля прямо в шорт-коде, через запятую: {field 25,etapy-raboty-nad-proektom}
.