Содержание

  1. Что такое поля и как они применяются?
  2. Какие типы полей доступны в Joomla 5 и 6?
  3. Как создать поле для материала Joomla?
  4. Группы полей: зачем они нужны?
  5. Поля для категорий Joomla
    1. Как создать поле категории?
    2. Где выводятся поля категории?
  6. Общие параметры дополнительных полей
    1. Основные параметры
    2. Параметры формы ввода
    3. Параметры отображения
  7. Подробное описание типов полей
    1. Календарь (calendar)
    2. Флажок (checkboxes)
    3. Цвет (color)
    4. Редактор (editor)
    5. Целое число (integer)
    6. Число (number)
    7. Список  (list)
    8. Список изображений (imagelist)
    9. Медиа (media)
    10. Аудио (media_audio)
    11. Видео (media_video)
    12. Документ (media_document)
    13. Примечание (note)
    14. Переключатель (radio)
    15. SQL (sql)
    16. Дочерняя форма (subform)
    17. Текст (text)
    18. Текстовая область (textarea)
    19. URL-адрес (url)
    20. Пользователь (user)
    21. Список групп пользователей (usergrouplist)
  8. Как вывести поле в материале?
    1. Способ 1: автоматический вывод
    2. Способ 2: вставка поля непосредственно в текст
    3. Способ 3: переопределение шаблона
  9. Поля и Умный поиск
  10. Сторонние расширения для com_fields
    1. Advanced Custom Fields от Tassos Marinos
    2. Articles Field от Regular Labs
    3. Custom Fields Plugins от Joomill
    4. TF Any от Joomla Fry
    5. Дополнения для вывода и фильтрации полей
    6. Как выбрать расширение?
  11. Где Joomla хранит значения полей?
  12. Что проверить при переносе с Joomla 3 на Joomla 5 или 6?
  13. Практические рекомендации
  14. Итог

Пользовательские поля Joomla позволяют превратить обычный материал, категорию, контакт или профиль пользователя в структурированную запись: добавить дату мероприятия, цену, характеристики, ссылку, изображения, список вариантов и другие данные. Для этого не обязательно устанавливать отдельный CCK-компонент — базовая система пользовательских полей входит в ядро Joomla и управляется компонентом com_fields.

Поля появились в Joomla 3.7, но с тех пор система заметно изменилась. В Joomla 4 устаревшее повторяемое поле было заменено более гибким полем «Подформа», в Joomla 5 были переработаны интерфейс и параметры вывода, в Joomla 6.0 появились поля «Число» и «Примечание», а Joomla 6.1 получила отдельные варианты медиа-поля для аудио, видео и документов.

Коротко
В Joomla 5 доступно 16 штатных типов дополнительных полей. Joomla 6.0 добавляет типы «Число» и «Примечание», а Joomla 6.1 — варианты «Аудио», «Видео» и «Документ». Набор может быть шире, если на сайте установлены сторонние плагины группы fields.

Что такое поля и как они применяются?

Поля (компонент com_fields) — системный компонент Joomla для создания, группировки, назначения и хранения дополнительных полей. За форму ввода и форматирование значения каждого типа отвечают плагины группы fields.

В стандартной поставке поля можно добавлять к следующим объектам:

  • Контент: материалы и категории материалов.
  • Контакты: контакты, категории контактов и форма отправки письма контакту.
  • Пользователи: учетные записи и, при соответствующих настройках, форма регистрации и редактирования профиля.

Расширения сторонних разработчиков также могут интегрироваться с com_fields и создавать собственные контексты.

Не путайте две разные настройки
Поле можно назначить материалам определенных категорий, а можно создать поле для самих категорий. В первом случае значение заполняется в каждом материале. Во втором — один раз в параметрах категории.

Какие типы полей доступны в Joomla 5 и 6?

Таблица «Типы полей в версиях Joomla»
JoomlaКоличествоЧто нового
5.x 16 Календарь, флажки, цвет, редактор, целое число, список, список изображений, медиа, переключатели, SQL, подформа, текст, текстовая область, URL, пользователь и группа пользователей.
6.0 18 Добавлены «Число» с дробными значениями и форматированием, а также «Примечание» для инструкций внутри формы.
6.1 21 Медиа-плагин получил отдельные типы «Аудио», «Видео» и «Документ».

В старых материалах о Joomla 3.7 часто встречаются поля E-mail, Телефон и Часовой пояс. В актуальном стандартном наборе дополнительных полей Joomla 5/6 их нет. Для адреса электронной почты обычно используют поле «Текст» с подходящей фильтрацией или сторонний тип поля, а часовой пояс и телефон при необходимости также хранят как текст либо реализуют отдельным плагином.

Почему количество может отличаться
В списке типов отображаются опубликованные плагины группы fields. Если нужного типа нет, проверьте раздел Система → Управление → Плагины и отфильтруйте плагины по типу «Поля». Если типов больше, их добавило установленное расширение.

Как создать поле для материала Joomla?

  1. Откройте Контент → Поля.
  2. В фильтре контекста убедитесь, что выбраны Материалы, а не категории.
  3. Нажмите Создать и выберите тип поля.
  4. Укажите заголовок, системное имя, описание и параметры конкретного типа.
  5. При необходимости выберите группу полей и категории материалов, в которых поле должно быть доступно.
  6. На вкладке параметров настройте форму ввода и вывод на сайте.
  7. Опубликуйте поле и откройте материал нужной категории. Поле появится на вкладке своей группы либо на общей вкладке Поля.

Системное имя поля лучше задавать латиницей сразу, например event-date, price или speaker. Оно удобно для обращения к полю в переопределениях шаблона и остается понятным даже после изменения заголовка.

Группы полей: зачем они нужны?

Группа объединяет связанные поля и создает для них отдельную вкладку в форме редактирования. Например, для каталога курсов можно создать группы «Стоимость», «Расписание» и «Преподаватель».

  • Поля без группы выводятся на общей вкладке Поля.
  • Порядок групп и полей можно менять перетаскиванием или значениями порядка.
  • Для группы настраиваются состояние, уровень доступа, язык и права.
  • Группа организует интерфейс, но сама по себе не меняет способ хранения значений.

Поля для категорий Joomla

В Joomla 5 и Joomla 6 поля можно создавать не только для материалов, но и для категорий. Это удобно, когда у каждой категории должны быть собственные данные: баннер, подзаголовок, координаты филиала, цвет оформления, дополнительное описание, ссылка на документ или имя ответственного.

Как создать поле категории?

  1. Перейдите в Контент → Поля.
  2. В выпадающем списке контекста выберите Категории. В некоторых вариантах административного меню доступен прямой пункт Контент → Поля категорий.
  3. Создайте поле и настройте его так же, как поле материала.
  4. Откройте Контент → Категории и отредактируйте нужную категорию.
  5. Заполните значение на вкладке группы полей или на вкладке Поля.

Важно о наследовании
Значение поля категории не копируется в ее материалы и автоматически не наследуется дочерними категориями. Это данные именно текущей категории. Если значение должно отображаться в каждом материале, его необходимо получить из объекта категории в переопределении шаблона или использовать отдельное поле материала.

Где выводятся поля категории?

Автоматический вывод зависит от представления компонента, позиции поля и поддержки событий контента шаблоном. Для точного размещения — например, рядом с заголовком категории или внутри карточки категории — надежнее создать переопределение макета com_content.

Практические варианты использования:

  • Каталог филиалов: адрес, телефон, координаты и режим работы хранятся в категории филиала;
  • Разделы каталога: отдельный баннер, иконка и цвет для каждой категории;
  • Документация: версия продукта, ссылка на загрузку и ответственный за раздел;
  • Мероприятия: общая площадка или организатор для всех материалов категории.

Общие параметры дополнительных полей

Названия отдельных настроек могут немного отличаться в переводах и между Joomla 5 и Joomla 6, но логика остается одинаковой.

Основные параметры

  • Заголовок: название поля в административном списке.
  • Тип: тип поля, в зависимости от его выбора может измениться список настроек для этого поля.
  • Имя: уникальный машинный идентификатор для кода и макетов.
  • Название: подпись рядом со значением в форме, если включено.
  • Описание: пояснение для редактора контента.
  • Обязательное: запрещает сохранить объект без значения. 
  • Только в дочерней форме: скрывает самостоятельное поле и разрешает использовать его как элемент поля «Подформа».
  • Значение по умолчанию: начальное значение для новых объектов.
  • Состояние: позволяет опубликовать, снять с публикации, переместить в архив или корзину.
  • Группа полей: вкладка, на которой поле появится при редактировании.
  • Категории: ограничение поля одной или несколькими категориями контента.

Инфо
В зависимости от выбора типа поля, количество параметров будет увеличиваться, с уникальными настройками для каждого типа поля.

Параметры формы ввода

  • Атрибут placeholder: текст placeholder внутри пустого элемента.
  • CSS-класс поля: CSS-классы формы редактирования.
  • CSS-класс label: CSS-класс тега label формы редактирования.
  • Область системы: сайт, панель управления или весь сайт.
  • Атрибут showon: условный показ поля в зависимости от значения другого поля.

Параметры отображения

  • CSS-класс поля: CSS-класс поля для отображения на сайте.
  • CSS-класс значения: CSS-класс значения поля для отображения на сайте.
  • Название поля: выводить или скрывать название поля.
  • CSS-класс label: CSS-класс тега label поля для отображения на сайте.
  • Отображение поля: после заголовка контента, до блока контента, после блока контента либо не отображать автоматически.
  • Префикс и суффикс: текст перед и после значения, например от и .
  • Макет: стандартный или переопределенный layout поля.
  • Показывать, если только для чтения: поведение для недоступного к редактированию поля.
  • Индекс поиска: включать ли значение в индекс Умного поиска и каким способом.

Рекомендация
Если дизайн сайта должен быть строго предсказуемым, выберите «Не отображать автоматически» и выводите поля по системному имени в переопределении шаблона. Автоматические позиции удобны для простых сайтов, но дают меньше контроля над разметкой.

Подробное описание типов полей

Календарь (calendar)

Поле для выбора даты или даты и времени из календаря. Подходит для дня рождения, даты мероприятия, срока действия, даты публикации документа или дедлайна.

  • можно включить или отключить время;
  • настраивается формат отображения даты;
  • значение можно ограничить минимальной и максимальной датой;
  • доступна кнопка «Сегодня» и заполнение текущей датой, если это предусмотрено параметрами версии.

Формат хранения и формат показа — не одно и то же. Для сортировки и программной обработки используйте исходное значение, а для посетителя — отформатированное.

Флажок (checkboxes)

Набор независимых флажков, позволяющий выбрать несколько вариантов. Для каждого варианта задаются отображаемый текст и сохраняемое значение.

Подходит для комплектации товара, доступных способов доставки, особенностей помещения или перечня услуг. Значения должны быть уникальными и стабильными: изменение сохраняемого значения после заполнения материалов может нарушить существующие данные.

Цвет (color)

Открывает графическую палитру и сохраняет цвет, обычно в HEX-формате, например #0d6efd. Поле полезно для цвета категории, маркера, фона карточки или элемента инфографики.

Безопасный вывод
Не подставляйте произвольное значение непосредственно в атрибут style без проверки. При собственном шаблоне убедитесь, что значение соответствует допустимому формату цвета.

Редактор (editor)

Полноценная область WYSIWYG-редактора для форматированного HTML. Можно настроить ширину, высоту, набор кнопок и фильтрацию содержимого.

Используйте для дополнительного форматированного блока: технического описания, условий участия, биографии автора. Для коротких характеристик лучше выбрать «Текст» или «Текстовую область»: они проще, безопаснее и создают более предсказуемую разметку.

Целое число (integer)

Создает список целых чисел в заданном диапазоне. Настраиваются первое и последнее значение, шаг и возможность множественного выбора.

Это не обычная строка для ввода числа: Joomla формирует последовательность вариантов. Поле удобно для количества комнат, года, возраста, рейтинга от 1 до 5 или фиксированного шага.

Число (number)

Поле для ввода целых и дробных чисел. В отличие от «Целого числа» пользователь вводит значение, а не выбирает его из заранее сформированного списка.

  • поддерживает минимальное и максимальное значение;
  • позволяет задать дробный шаг, например 0.01;
  • поддерживает отрицательные числа;
  • может форматировать значение как денежное или добавлять символ до либо после числа;
  • позволяет указать количество знаков после запятой.

Подходит для цены, веса, температуры, площади, процента и любых измеряемых характеристик.

Список  (list)

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

Список экономит место в форме и подходит для статуса, типа объекта, района, производителя или другой характеристики с ограниченным набором вариантов. Если редактору важно постоянно видеть все варианты, удобнее «Флажки» или «Переключатели».

Список изображений (imagelist)

Показывает изображения из указанного каталога и позволяет выбрать одно или несколько. Можно ограничить папку, включить просмотр вложенных каталогов и задать CSS-класс изображения.

Тип удобен, когда файлы загружены заранее и редактор должен выбирать только из подготовленного набора: значки, логотипы, схемы или варианты обложек. Для свободной загрузки через Медиа-менеджер используйте «Медиа».

Медиа (media)

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

  • можно ограничить разрешенный каталог;
  • доступны параметры альтернативного текста и CSS-класса;
  • допустимые расширения и загрузка зависят также от настроек Медиа-менеджера и прав пользователя.

Начиная с Joomla 5.3 поля файлов и медиа по умолчанию ориентируются на каталог /files, если другой путь не задан в параметрах. После обновления сайта проверьте пользовательские каталоги и переопределения.

Аудио (media_audio)

Специализированный вариант медиа-поля для звуковых файлов. На сайте значение выводится через HTML5-элемент <audio>. Подходит для подкастов, аудиогидов, примеров произношения и музыкальных фрагментов.

Фактическая возможность загрузить файл зависит от разрешенных MIME-типов, расширений и размера файла в настройках Медиа-менеджера и веб-сервера.

Видео (media_video)

Позволяет выбрать видеофайл и вывести его HTML5-проигрывателем <video>. Это поле предназначено для локальных медиафайлов. Для YouTube, Vimeo и других внешних сервисов чаще удобнее хранить URL или идентификатор ролика и создавать собственный макет вывода.

Документ (media_document)

Предназначен для PDF, таблиц, архивов и других разрешенных документов. На сайте обычно формирует ссылку на файл. Применяется для прайс-листов, инструкций, приложений, сертификатов и материалов для скачивания.

Проверьте доступ
Уровень доступа поля управляет отображением, но сам файл в публичном каталоге может оставаться доступным по прямой ссылке. Для конфиденциальных документов нужна отдельная система защищенной выдачи файлов.

Примечание (note)

Информационный блок внутри формы. Он не предназначен для ввода индивидуального значения: с его помощью администратор добавляет заголовок, инструкцию, пояснение или предупреждение между другими полями.

  • настраиваются заголовок, текст, CSS-класс и уровень заголовка;
  • класс alert alert-info создает стандартный информационный блок Bootstrap;
  • можно добавить кнопку закрытия;
  • при необходимости примечание разрешается показывать и на сайте.

Это удобный способ разделить длинную форму и объяснить редактору, как заполнять следующий набор полей.

Переключатель (radio)

Группа радиокнопок для выбора ровно одного варианта. Подходит для небольшого набора взаимоисключающих значений: «Да / Нет», тариф, статус, способ связи.

При большом количестве вариантов форма становится громоздкой — в таком случае используйте «Список».

SQL (sql)

Формирует выпадающий список на основании SQL-запроса к базе Joomla. Запрос должен возвращать столбцы для сохраняемого значения и отображаемого текста. Префикс таблиц указывается как #__, чтобы поле работало при любом префиксе базы.

SQL-поле полезно для выбора записи из собственной таблицы или связанного справочника, но требует понимания структуры базы и языка SQL.

Осторожно с SQL-полем
Не вставляйте в запрос непроверенные пользовательские данные. Тестируйте запрос на копии сайта, ограничивайте объем результатов и учитывайте, что изменение или удаление связанной записи может оставить в поле устаревший идентификатор.

Дочерняя форма (subform)

Объединяет несколько заранее созданных полей в повторяемый набор строк. Например, одна строка может содержать изображение сотрудника, имя, должность и ссылку; редактор добавляет столько сотрудников, сколько нужно.

  1. Создайте дочерние поля и включите для них параметр Только в подформе.
  2. Создайте поле «Подформа».
  3. Добавьте в него подготовленные дочерние поля.
  4. Настройте минимальное и максимальное количество строк, повторяемость и макет вывода.

Значение подформы имеет сложную структуру. Для нестандартной карточки или таблицы обычно требуется переопределение макета. Не следует вкладывать подформы друг в друга без тщательного тестирования.

Текст (text)

Однострочное поле для короткого значения: артикул, подзаголовок, телефон, код, имя, индекс или краткая характеристика. Настраиваются максимальная длина, фильтр, подсказка и другие ограничения.

Не используйте текстовое поле для HTML-разметки. Если требуется форматирование, выберите «Редактор»; если несколько строк без WYSIWYG — «Текстовую область».

Текстовая область (textarea)

Многострочный обычный текст. Настраиваются количество строк и колонок, максимальная длина, фильтр и преобразование переносов строк.

Подходит для адреса, краткого резюме, примечания редактора или неформатированного описания. Это не WYSIWYG-редактор.

URL-адрес (url)

Поле для веб-адреса, который при стандартном выводе превращается в ссылку. Можно ограничивать допустимые схемы и настраивать поведение ссылки.

Используйте для сайта производителя, страницы регистрации, документации или внешнего профиля. Не разрешайте опасные или ненужные схемы URL и не отключайте фильтрацию без причины.

Пользователь (user)

Открывает выбор зарегистрированного пользователя и сохраняет его идентификатор. В стандартном выводе Joomla преобразует идентификатор в имя пользователя.

Подходит для назначения менеджера, эксперта, автора проверки или ответственного сотрудника. Если учетная запись будет удалена, связанное значение необходимо проверить.

Список групп пользователей (usergrouplist)

Позволяет выбрать одну или несколько групп пользователей Joomla и сохраняет их идентификаторы. Может применяться для отображения ответственной группы или классификации записи.

Обратите внимание
Это не ACL! Значение поля «Список групп пользователей» само по себе не предоставляет и не отнимает права. Реальный доступ настраивается средствами ACL Joomla: уровнем доступа объекта и разрешениями действий.

Как вывести поле в материале?

Есть три основных способа.

Способ 1: автоматический вывод

В параметре Отображение поля выберите одну из позиций:

  • после заголовка контента;
  • до блока контента;
  • после блока контента;
  • не отображать автоматически.

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

Способ 2: вставка поля непосредственно в текст

Опубликованный плагин Контент — Поля позволяет вставить значение в текст материала:

{field:12}
{field:event-date} 

В первом варианте используется ID поля, во втором — его системное имя. Имя обычно удобнее: оно понятно человеку и не меняется при переносе контента между сайтами, если поля создаются согласованно.

Если тег выводится как текст
Проверьте, опубликован ли плагин Контент — Поля, существует ли поле в контексте текущего материала и заполнено ли его значение.

Способ 3: переопределение шаблона

Все подготовленные поля текущего объекта обычно доступны в массиве $this->item->jcfields. Для точного размещения удобно сначала проиндексировать их по системному имени:

<?php
foreach ($this->item->jcfields as $field) {
    $this->item->jcFields[$field->name] = $field;
}
?>

После этого можно получить исходное значение:

<?php echo $this->item->jcFields['event-date']->rawvalue ?? ''; ?>

Или отформатированное значение:

<?php echo $this->item->jcFields['event-date']->value ?? ''; ?>

rawvalue содержит исходные данные, а value — значение после обработки плагином поля. Для медиа, подформы и множественного выбора тип данных может быть сложнее строки.

Экранирование обязательно
Если выводите rawvalue самостоятельно, применяйте экранирование, соответствующее контексту: тексту, HTML-атрибуту, URL, числу или JSON. Готовое value также нельзя бездумно помещать внутрь атрибутов HTML.

Поля и Умный поиск

В параметрах поля можно управлять индексированием его значения компонентом Умного поиска com_finder. После изменения настройки или массового заполнения полей рекомендуется очистить индекс и запустить индексирование заново.

При этом штатные дополнительные поля не превращают список материалов в фасетный каталог с фильтрами. Для фильтрации по цене, цвету, нескольким характеристикам и диапазонам потребуется совместимое расширение, собственный модуль либо специализированный компонент каталога.

Сторонние расширения для com_fields

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

Проверяйте совместимость перед установкой
Пометка «поддерживает Joomla 5» не всегда означает поддержку Joomla 6. Проверяйте страницу загрузки, требования к PHP и журнал изменений конкретной версии. Перед установкой или обновлением плагина полей сделайте резервную копию: после удаления расширения сохраненные значения могут остаться в базе, но Joomla больше не сможет правильно отобразить или отредактировать их.

Advanced Custom Fields от Tassos Marinos

Advanced Custom Fields, или ACF, — один из самых крупных наборов дополнительных полей для штатного com_fields. Актуальная ветка совместима с Joomla 4, Joomla 5 и Joomla 6. Расширение выпускается в бесплатной и Pro-редакциях; доступность отдельных типов и расширенных параметров зависит от редакции.

На момент актуализации разработчик заявляет 29 типов полей:

  • File Upload: загрузка одного или нескольких файлов перетаскиванием, ограничения размера и формата, настройка каталога.
  • Gallery: загрузка набора изображений и вывод галереей Grid, Masonry, Justified или Slideshow.
  • Video: YouTube, Vimeo, Dailymotion, Facebook и локальные видеофайлы с проигрывателем.
  • Map: интерактивная карта на базе OpenStreetMap, Google Maps или Bing Maps с одним или несколькими маркерами.
  • Articles: выбор связанных материалов Joomla и вывод списка ссылок на них.
  • FAQ: повторяемый список вопросов и ответов для раздела часто задаваемых вопросов.
  • Address Autocomplete: поиск адреса с автодополнением и сохранением структурированных данных местоположения.
  • PayPal Button: кнопка оплаты или пожертвования через PayPal.
  • Chained Fields: связанные выпадающие списки, в которых варианты следующего списка зависят от предыдущего выбора.
  • Module Loader: вывод выбранного модуля Joomla как значения поля.
  • Progress Bar: визуальная шкала прогресса или процент выполнения.
  • Audio Player: HTML5-проигрыватель локального аудиофайла.
  • URL: ссылка с дополнительными параметрами и маской ввода.
  • Telephone: телефонная ссылка, маска номера и выбор кода страны.
  • SoundCloud: встраивание трека или плейлиста SoundCloud.
  • Twitter: кнопка подписки на учетную запись X/Twitter.
  • Countdown: счетчик времени до или после указанной даты.
  • Facebook: встраивание публичной страницы Facebook.
  • True/False: простой переключатель логического значения «Да / Нет».
  • Time Picker: удобный выбор времени отдельно от календарной даты.
  • Currency: список валют.
  • Country: выбор страны, в том числе с автоматическим определением страны посетителя.
  • IFrame: встраивание внешней страницы через <iframe> с настройкой размеров и загрузки.
  • Email: кликабельный адрес электронной почты с маскированием от простых спам-ботов.
  • Download Button: оформленная кнопка скачивания файла.
  • Gravatar: вывод аватара Gravatar по адресу электронной почты.
  • WhatsApp: ссылка для начала переписки в WhatsApp.
  • QR Code: генерация QR-кода из текста, URL, телефона и других значений.
  • PHP: динамический вывод результата PHP-кода.

Самые практичные типы для каталогов и корпоративных сайтов — загрузка файлов, галерея, карта, связанные материалы, FAQ, зависимые списки, телефон и выбор времени. Поддержка YOOtheme Pro Dynamic Content позволяет использовать значения ACF как динамические источники в макетах YOOtheme.

Осторожно с PHP и загрузкой файлов
Поле PHP должно быть доступно только полностью доверенным администраторам: сохраненный код выполняется на сервере. Для File Upload обязательно ограничьте расширения, MIME-типы, размер и каталог загрузки. Используйте актуальный релиз ACF: в версии 3.1.4 была исправлена критическая уязвимость удаления файлов, а в 3.1.6 дополнительно усилена блокировка исполняемых PHP-файлов.

Articles Field от Regular Labs

Articles Field добавляет тип articles для создания связей между материалами Joomla. Актуальная версия поддерживает Joomla 4, Joomla 5 и Joomla 6 и выпускается в бесплатной и Pro-редакциях.

Возможности бесплатной версии:

  • выбор одного или нескольких материалов;
  • ограничение списка определенными категориями;
  • настройка порядка выбранных материалов;
  • несколько вариантов вывода, включая заголовок или значение другого поля;
  • ссылки на выбранные материалы.

Pro-версия добавляет расширенную фильтрацию доступных материалов по тегам, языку, авторам и значениям других полей, собственные макеты, а также поле articleslinked. Оно создает обратную связь: если материал «Фильм» ссылается на материал «Актер», на странице актера можно автоматически вывести все фильмы, которые на него ссылаются.

Расширение подходит для блоков «Связанные статьи», отношений «товар — производитель», «фильм — актер», «курс — преподаватель», «книга — автор» и других связей между сущностями, созданными как материалы Joomla.

Articles Field или ACF Articles?
Оба расширения умеют связывать материалы. Если необходимы обратные связи, сложная фильтрация исходного списка и гибкий вывод данных связанного материала, внимательно сравните Pro-возможности. Не устанавливайте оба типа для одной и той же задачи без необходимости.

Custom Fields Plugins от Joomill

Joomill Custom Fields Plugins — компактный набор специализированных плагинов с заявленной поддержкой Joomla 5 и Joomla 6. Он добавляет следующие типы:

  • YouTube: вывод видео YouTube по ссылке или идентификатору;
  • Vimeo: встраивание роликов Vimeo;
  • QR Code: генерация QR-кода из значения поля;
  • Spotify: проигрыватель Spotify или кнопка подписки;
  • User Dropdown: расширенный выбор пользователя.

Есть бесплатная версия и недорогой комплект Pro с дополнительными настройками отображения. Это разумный вариант, когда не нужен большой пакет ACF, а требуется один конкретный тип поля.

TF Any от Joomla Fry

TF Any — бесплатный плагин для Joomla 5 и Joomla 6, расширяющий стандартные типы полей и способы их отображения. Он работает с календарем, одиночным и множественным выбором, электронной почтой, числами, списками изображений, SQL, подформой, текстом, URL и группами пользователей.

Главная особенность — возможность представить значение как блок, строку, список, таблицу, кнопку-ссылку, изображение, дату, шкалу прогресса или QR-код. Кроме того, источником данных может выступать таблица базы данных Joomla. Такой вариант интересен разработчикам, которым нужны дополнительные способы рендеринга и выборки без установки большого набора отдельных плагинов.

Доступ к базе данных
При использовании таблицы базы в качестве источника ограничивайте запросы, не выводите служебные или персональные данные и проверяйте результат на тестовой копии сайта.

Дополнения для вывода и фильтрации полей

Следующие расширения не добавляют полноценные новые типы данных, но решают частые задачи вокруг com_fields:

  • Alter Fields: показывает значения полей в административных списках материалов, пользователей, контактов и категорий. Pro-редакция добавляет сортировку, поиск и фильтрацию. Совместима с Joomla 5 и Joomla 6, но актуальный выпуск требует современную версию Joomla и PHP — проверьте требования перед установкой.
  • JL Content Fields Filter: AJAX-модуль фильтрации материалов категории по полям «Текст», «Переключатели», «Список» и «Флажки», включая диапазоны и сортировку. Заявлена совместимость с Joomla 4, 5 и 6.
  • netzSINN Custom Fields Filter: фильтрует и сортирует материалы стандартного представления категории по значениям до трех полей. Поддерживает Joomla 4, 5 и 6.
  • netzSINN Custom Fields Radius Search: поиск материалов по расстоянию на основании полей широты и долготы; подходит для небольших каталогов филиалов, магазинов и объектов. Поддерживает Joomla 5 и Joomla 6.

Фильтр должен поддерживать конкретный тип
Совместимость расширения с com_fields еще не означает, что оно умеет фильтровать любой сторонний тип. Карты, галереи, подформы и связанные материалы хранят сложные значения. Перед покупкой проверьте поддержку нужного поля на демо-сайте разработчика.

Как выбрать расширение?

  • Нужен большой универсальный набор — рассмотрите Advanced Custom Fields.
  • Нужны полноценные связи между материалами — Articles Field.
  • Нужно только видео, Spotify или QR-код — компактные плагины Joomill.
  • Нужны дополнительные варианты вывода стандартных значений — TF Any.
  • Нужен флажок согласия со ссылкой — PrivacyCheckbox.
  • Нужны фильтры каталога — выбирайте отдельное расширение фильтрации и сначала проверяйте поддержку используемых типов полей.

Перед окончательным выбором создайте тестовый материал и проверьте четыре операции: ввод на сайте и в панели управления, сохранение, стандартный вывод и вывод в вашем шаблоне. Для многоязычного сайта дополнительно проверьте перевод меток, маршрутизацию связанных материалов и работу языкового фильтра.

Где Joomla хранит значения полей?

Определения полей и групп хранятся отдельно от самих значений. Основные таблицы:

  • #__fields — определения полей;
  • #__fields_groups — группы;
  • #__fields_values — значения полей объектов;
  • #__fields_categories — назначения полей категориям.

Редактировать эти таблицы вручную не следует: Joomla выполняет проверку, запускает события плагинов и поддерживает связи. Для программной работы используйте API и события Joomla.

Что проверить при переносе с Joomla 3 на Joomla 5 или 6?

  1. Удалите упоминания несуществующих расширений. Старые плагины полей могли быть заброшены или заменены штатными возможностями.
  2. Проверьте Repeatable. Старое поле «Повторяемое» удалено; в современных версиях используется «Подформа».
  3. Проверьте типы полей. E-mail, Телефон и Часовой пояс из ранних обзоров не входят в актуальный штатный набор плагинов дополнительных полей.
  4. Проверьте каталоги медиа. Пути и базовый каталог файлов могли измениться.
  5. Проверьте переопределения шаблона. Старый override может не учитывать актуальную разметку и пространства имен Joomla.
  6. Переиндексируйте Умный поиск. Особенно если изменялись имена, параметры или типы полей.
  7. Проверьте права. Уровень доступа к отображению, право редактирования поля и право загрузки файлов — разные настройки.
  8. Сделайте резервную копию. Миграцию структуры и массовое преобразование значений сначала выполняйте на копии сайта.

Практические рекомендации

  • Задавайте понятные и стабильные системные имена латиницей.
  • Храните атомарные данные: цена отдельно, валюта отдельно или в параметрах форматирования, а не строкой «от 5000 рублей».
  • Не создавайте несколько полей с одинаковым смыслом в разных группах.
  • Для небольшого фиксированного набора используйте «Переключатели», для большого — «Список», для множественного выбора — «Флажки».
  • Для дробных величин в Joomla 6 используйте «Число», а не текст.
  • Для повторяемых карточек используйте «Подформу», но заранее продумайте макет.
  • Не используйте публичный медиа-каталог для конфиденциальных документов.
  • Не полагайтесь на CSS-классы как на механизм безопасности или прав доступа.
  • После изменения сохраняемых значений вариантов проверьте уже заполненные материалы.

Итог

Современный com_fields в Joomla 5 и Joomla 6 — это уже не экспериментальная функция из Joomla 3.7, а полноценный инструмент структурирования контента. Он поддерживает материалы, категории, контакты и пользователей, группировку, условный показ в форме, управление выводом, интеграцию с Умным поиском и расширение через плагины.

Для простого справочника, каталога услуг, базы знаний, сайта мероприятий или расширенного профиля возможностей ядра часто достаточно. Если же нужны сложные связи, фасетная фильтрация, вычисления, защищенная загрузка файлов или специфическая бизнес-логика, дополнительные поля остаются хорошим слоем данных, но потребуют шаблонного кода или профильного расширения.

Нужна помощь?
Если необходимо перенести старые поля с Joomla 3, исправить вывод после обновления, создать переопределение шаблона или разработать собственный тип поля, обращайтесь к нам. Мы проведем аудит структуры, сохраним существующие значения и настроим корректный вывод в Joomla 5 или Joomla 6.