Стандартный тип поля Joomla XML - Spacer
Разделитель Spacer — стандартный тип поля Joomla XML, предназначенный исключительно для визуального структурирования административных форм. Он не сохраняет данные, не передаётся при отправке формы и полностью игнорируется механизмами валидации. В зависимости от заданных атрибутов, поле может отображаться как текстовый заголовок секции, горизонтальная линия (hr) или произвольный HTML-блок. Ниже представлены варианты использования, таблица атрибутов и особенности поведения в Joomla 3, 4, 5 и 6.
Атрибуты поля
Ниже приведены основные атрибуты, поддерживаемые типом поля . Используйте их внутри тега <field> вашего XML-манифеста.
| Атрибут | Тип | Описание |
|---|---|---|
name
|
string | Обязательно. Уникальный системный идентификатор поля в рамках fieldset. Не сохраняется в базе данных, но требуется для корректной работы парсера форм. |
type
|
string | Обязательно. Должно быть равно "spacer". Определяет тип поля и его поведение как визуального разделителя. |
label
|
string | Заголовок раздела, видимый пользователю в админке. Может быть языковой константой (например, COM_EXAMPLE_SECTION_TITLE) или содержать HTML-разметку. |
description
|
string | Текст подсказки. В Joomla 3 отображается при наведении на заголовок (tooltip), в J4/5/6 выводится под заголовком или во всплывающем окне. |
hr
|
boolean | Отвечает за отображение горизонтальной линии под заголовком. Возможные значения: true или false (по умолчанию). Не игнорирует label, а добавляет линию после него. |
class
|
string | Дополнительные CSS-классы для кастомизации внешнего вида разделителя через стили административного шаблона. |
showon
|
string | Условие видимости поля (Joomla 3+). Позволяет показывать/скрывать разделитель в зависимости от значений других полей (пример: showon="enable_api:1"). |
layout
|
string | Путь к альтернативному layout-файлу для переопределения HTML-вывода разделителя. Используется для полной кастомизации рендера. |
Визуальные примеры
Ниже представлены скриншоты отображения поля в разных версиях Joomla и темах административной панели.
Пример использования в XML
Добавьте этот код внутрь тега fieldset вашего XML-файла формы. Атрибут type="spacer" автоматически отрисует визуальный разделитель или заголовок секции, не участвуя в сохранении данных и валидации.
<!-- 1. Минимальный вариант: только текстовый заголовок-разделитель -->
<field
name="spacer_basic"
type="spacer"
label="Заголовок раздела"/>
<!-- 2. С горизонтальной линией (стандартный паттерн группировки блоков) -->
<field
name="spacer_hr"
type="spacer"
label="Дополнительные настройки"
hr="true"/>
<!-- 3. С подсказкой (description) -->
<field
name="spacer_hint"
type="spacer"
label="Заголовок с подсказкой"
description="Это подсказка, которая появляется при наведении на нее курсором мыши."/>
Получение значения в PHP
Поскольку поле type="spacer" не создаёт input-элементов и не передаёт значения при отправке формы, для него не существует специфичной PHP-логики фильтрации, привязки или сохранения. В коде расширений оно учитывается исключительно на уровне декларативного описания XML.
/**
* Пример работы с полем type="spacer" в PHP
* ⚠️ Важно: Spacer — исключительно визуальный элемент формы для панели администратора.
* Он НЕ сохраняется в базе данных, НЕ участвует в валидации
* и НЕ передаётся в массиве $_POST при отправке формы.
*/
Это означает, что на уровне контроллеров, моделей и таблиц Joomla вам не нужно писать обработчики, проверять наличие поля в массиве данных или применять JFilterInput. Стандартный механизм JForm автоматически игнорирует spacer при вызове bind(), check() и save(), а при рендеринге корректно выводит HTML-разметку разделителя через $this->form->renderField().
Совет: Используйте spacer исключительно для визуальной группировки полей. Если необходимо вывести предупреждение, ссылку на документацию, список параметров или статусный блок, предпочтительнее применять type="note" — он семантически корректнее и лучше адаптирован под рендерер современных тем Joomla 4-6. Для spacer всегда указывайте уникальное значение атрибута name, даже если данные не сохраняются: это предотвращает конфликты в JavaScript-рендерере динамических форм и вложенных repeatable-структурах.
Подводные камни
-
Изменение рендеринга description и hr в Joomla 4-6: В Joomla 3 description отображался как всплывающая подсказка (tooltip), а hr="true" гарантированно добавлял горизонтальную линию. В Joomla 4, 5 и 6 (шаблон Atum) подсказка выводится как статический текст под заголовком, а линия часто скрывается или меняет стиль через CSS-переменные темы. После миграции формы могут визуально «склеиваться», а подсказки будет занимать дополнительное пространство, что требует обязательной проверки вёрстки в новой административной панели.