Я хотел бы написать новый форматировщик поля для существующего типа поля. Я не хочу заменять существующие форматеры, но предлагаю новую опцию.
Или мне лучше использовать theme_preprocess_field () для небольших изменений? Но это, кажется, сложнее поддерживать, и я хотел бы оставить открытыми опции моих редакторов контента (и в графическом интерфейсе).
Может кто-нибудь указать мне пример правильного способа сделать это?
Вы можете разработать собственный модуль или использовать модуль «Пользовательские форматеры».
В первом случае вы должны написать модуль , который реализует некоторые Drupal 7 крючков:
hook_field_formatter_info()
,hook_field_formatter_view()
иhook_theme()
.hook_field_formatter_info()
Используется для объявления типа форматера. Эта функция возвращает массив с описанием форматера. Ключом будет имя форматера, и он будет иметь массив с меткой и типами полей. После вы должны реализоватьhook_field_formatter_view()
иhook_theme()
для того, чтобы определить шаблон. Вы можете найти более подробную информацию об API F ield Formatter в документации .Во втором случае вы можете использовать модуль Custom Formatters, который позволяет создавать собственные средства форматирования отображения для каждого поля. С помощью этого модуля вы можете создать средство форматирования, используя пользовательский код PHP или код HTML с токенами.
Я предлагаю второй способ, потому что он очень прост в использовании и настройке.
источник