Начиная с версии Joomla 3.7, в CMS добавлен функционал настраиваемые полей (Custom Fields). Это означает, что теперь вы можете добавить к материалам, категориям, пользователям (профилям пользователей) и контактам Joomla дополнительные поля разных типов. Эти поля можно будет заполнять при создании контента, и их значения будут отображаться как его часть.
В этой статье мы рассмотрим все типы настраиваемых полей, доступных в Joomla, а также примеры их использования на сайте.
Введение в управление настраиваемыми полями Joomla.
В Joomla нам доступно два новых менеджера, связанных с управлением настраиваемыми полями. Это Поля (Fields) и Группы полей (Field Groups). Данные менеджеры для материалов, пользователей и контактов является разными. Это означает, что для материалов есть свои менеджер полей и групп полей, для пользователей свои, и для контактов также свои. Между собой они не пересекаются.
В данной статье мы будем рассматривать все поля на примере материалов Joomla. Для пользователей и контактов все будет аналогично, с той лишь разницей, что вам нужно будет использовать другой соответствующий менеджер.
Рассмотрим доступы к различным менеджерам:
- Поля/Группы полей для материалов: Материалы -> Менеджер материалов -> Поля/ Группы полей в левом сайтбаре.
- Поля/Группы полей для категорий: Категории -> Менеджер Категорий -> Поля/ Группы полей в левом сайтбаре.
- Поля/Группы полей для пользователей: Пользователи -> Менеджер Пользователей -> Поля/ Группы полей в левом сайтбаре.
- Поля/Группы полей для контактов: Компоненты -> Контакты -> Поля/ Группы полей в левом сайтбаре –> Выбран фильтр Контакт
- Поля/Группы полей для формы обратной связи: Компоненты -> Контакты -> Поля/ Группы полей в левом сайтбаре –> Выбран фильтр Почта
- Поля/Группы полей для формы категорий контактов: Компоненты -> Контакты -> Поля/ Группы полей в левом сайтбаре –> Выбран фильтр Категория
Для менеджера контактов разделение на поля контакта, формы обратной связи и категории контактов выполнены не слишком очевидно. Переключаться между этими типами контента вы можете с помощью фильтра в менеджере полей компонента контактов. Думаю, рисунок покажет это лучше:
И еще пара дополнительных замечаний:
- На дополнительные поля не распространяется система контроля версий (во всяком случае, пока)
- Если вы создали дополнительные поля для материалов, но не видите их в форме добавления материала, перейдите в Система –> Общие настройки –> Материалы –> Вкладка «Форма редактирования». Опция «Показывать параметры материала» должна быть включена.
Группы полей и их использование
Ничего особенно интересного в группах полей нет. Это что-то аналогичное категориям материалов для материалов, только проще. Группы позволяют более удобно разделять поля на группы, уж простите за тавтологию. Каждая группа полей, при создании материала, будет показываться отдельной вкладкой. Это может быть удобно, если полей много и нужно их как-то классифицировать:
Типы полей и их отображение на сайте
В настоящее время нам доступно 15 различных типов дополнительных полей. Это:
- Календарь (calendar)
- Флажки (Checkboxes)
- Цвет (Color)
- Редактор (Editor)
- Целое (Integer)
- Список (List)
- Список изображений
- Медиа (Media)
- Переключатель (Radio)
- SQL
- Текст (Text)
- Текстовое поле (Textarea)
- URL (Url)
- Пользователь (User)
- Группы пользователей (Usergrouplist)
Каждый тип поля имеет как общие опции, так и свои уникальные.
Для начала рассмотрим общие опции, которые повторяются для всех типов полей:
- Заголовок – заголовок поля. Показывается в менеджере поле, но не на сайте. Не путайте с названием поля (которое Label).
- Тип – позволяет выбрать тип поля (текст, чекбокс, изображение и т.д.)
- Имя – имя используется для идентификации поля. Это что-то вроде алиасов для материалов, но только для дополнительных полей. Если не заполнить эту опцию, Joomla создаст имя автоматически, также, как это происходит с алиасом.
- Название (Label) – Заголовок, который будет показываться рядом с полем. Именно эта опция является, фактически, лейблом поля на сайте. Если ваш сайт многоязычный, то в этом поле вы должны задавать не значение на определенном языке, а языковую константу, которой, в дальнейшем, можно будет задать различные значения для различных языков. Если язык на сайте у вас только один и других добавлять не планируется, можно заполнять эту опцию простым текстом. Если оставить ее пустой, текст будет взят из поля Заголовок.
- Описание – Всплывающая подсказка, которая появляется при наведении курсора на название поля. Это работает только для поля в виде формы, т.е. еще не заполненного поля. Работает по аналогии с тем, как вы видите подсказки в самой Joomla. Здесь требуется соблюдать те же правила для многоязычности, что и в опции Название (Label).
- Обязательно для заполнения – Опция устанавливает, является ли поле обязательным для заполнения.
- Значение по умолчанию – Опция устанавливает значение поля по умолчанию. На него распространяются правила для многоязычности, описанные в опции Название (Label). В зависимости от типа поля значение по умолчанию может быть как текстом, так и индексом.
- Группа поля – Здесь вы можете указать принадлежность данного поля к ранее созданной группе полей.
- Категория – Здесь вы можете привязать поле к определенной категории материалов. Это удобно, если для материалов разных категорий требуется разные наборы полей.
- Уровень доступа – Здесь, по аналогии с модулями, вы можете задать уровень доступа групп пользователей, которые смогут видеть данное поле. С помощью этой опции вы можете, например, показывать поле только зарегистрированным пользователям или только администратору.
- Placeholder – Здесь можно задать подсказку для ввода, которая будет отображаться внутри поля.
- CSS-класс для показа – HTML-атрибут «class» для выведенного значения поля. Может быть задано несколько классов, перечисленных через пробел.
- Редактировать класс – HTML-атрибут «class» для поля ввода значения. Может быть задано несколько классов, перечисленных через пробел.
- Показывать заголовок поля – Эта опция устанавливает показывать или скрывать заголовок поля (Label) на сайте.
- Показать в – Эта опция позволяет указать область отображения поля (фронтенд/бэкэнд/везде).
- Автоматическое отображение – позволяет указать место, где по умолчанию будет отображаться значение поля в материале: перед заголовком материала / Перед текстом материала / После текста материала / Не показывать по умолчанию (актуально для переопределенных макетов, в которых вы сами вставляете место вывода поля).
Остальные опции, не приведенные в списке выше, являются уникальными для отдельных типов полей. Они становятся доступными для заполнения, когда выбран тот или иной тип поля в одноименной опции. Уникальные опции рассмотрены ниже, отдельно для каждого поля.