Управление html-кодом меток полей в Drupal с помощью Field Label Format

18 июля 2014 - 14:49

В Drupal 7 метки полей по умолчанию выводятся в теге div с классом field-label. Однако нередко возникает задача вывести метку поля ноды или другой сущности в виде заголовка h2 или h3 или в другом теге. Это улучшает семантику кода страницы, а также зачастую связано с потребностями верстки макета сайта. Также иногда целесообразно назначить метке атрибут id для организации ссылки-якоря на конкретное место страницы сайта.

Изменить метку поля можно путем переопределения шаблона field.tpl.php для конкретного поля, поместив этот шаблон в папку с темой сайта и переименовав его в соответствии с документацией. Это наиболее быстрый и простой способ. Однако как быть, если таких полей не одно и не два, а намного больше? В таком случае желательно иметь возможность управлять метками полей прямо в административной панели сайта.

Столкнувшись с данной задачей на одном из проектов, я нашел модуль Field Label Format. Установив этот модуль, вы в настройках отображения полей получаете дополнительные форматтеры, как это показано на скриншоте на примере поля фотогалереи:

Настройка отображения поля в Друпал с Field Label Format

Затем, перейдя в настройки выбранного форматтера, указываем нужный тег для метки поля, а также при необходимости задаем id и дополнительный класс метки:

Задание тега и id метке поля в Друпал

Также имеется возможность задать для отображения метки другой текст. Сохранив настройки, мы получим желаемый результат: метка нашего поля будет заключена в тег h2 с идентификатором photo.

Обратите внимание (см. первый рисунок), что оригинальную метку в управлении отображением поля нужно скрыть. Это обусловлено тем, что модуль Field Label Format не переопределяет html-код поля, а помещает его целиком в дополнительную div-обертку со своей меткой (см. файл field-label-format-wrapper.tpl.php в папке модуля).