Каков наилучший способ изменения выходного поля? Я нашел " hook_field_formatter_view ", но, похоже, ничего подобного "hook_field_formatter_view_alter" не существует. В моем случае у меня есть поля адреса (модуль Addressfield), которые используются в панелях «Доставка» и «Оплата» на странице оформления заказа в DrupalCommerce . Я хочу добавить некоторые js к этим полям, предпочтительно используя API формы Drupal "#attached"
11
Ответы:
Вы можете попытаться изменить его с помощью функции предварительной обработки:
Я запустил тест для изменения $ variable ['element'] ['# attach'] ['js'], но Drupal не распознал изменения в элементе. Не уверен почему. Так что, возможно, вам придется использовать drupal_add_js.
источник
Вызывается
hook_field_formatter_view()
указанная в конфигурации дисплеяfield_default_view()
, которая сама по себе (слой или два под ним) называетсяfield_attach_view()
.Из второй ссылки видно, что она вызывается
hook_field_attach_view_alter()
после того, как она завершена с полями форматирования:так что вы должны быть в состоянии определить этот крючок.
Тем не менее, обратите внимание, что вам придется повторно найти поле в сущности, так как он запускает ловушку для всего массива рендеринга, а не просто для массива рендеринга для одного поля. Но пример крючка, связанный с выше, дает пример того, как это сделать.
источник