Изменение поля с помощью PHP


У меня есть тип контента, который содержит field_state. Узлы этого типа контента хранят двухбуквенную аббревиатуру состояния в каждом узле с помощью field_state. О - это Огайо, Калифорния - Калифорния и так далее. Мне нужно отобразить это поле с полным написанием названия штата. У меня есть массив PHP, который содержит все 50 отображений, которые мне нужны, например -- $state['CA'] = 'Калифорния'; Эта структура данных завернута в функцию PHP имя_стата (аббревиатура$).

Я создал представление, которое создает блок всего, что мне нужно, кроме полного написания названия штата. Я знаю, как применить функции PHP к определенному полю представлений как в D6, так и в D7. Решение в D8 было для меня неуловимым. Я считаю, что мне нужно каким-то образом использовать плагин Views. Вы можете помочь? Спасибо!

Author: kiamlaluno, 2015-12-18

1 answers

Настраиваемое или базовое поле? В любом случае, это идеальный вариант использования для использования типа поля списка (строки), затем вы сообщаете Drupal, каковы допустимые значения, его ключи и метки. Представления будут использовать это при отображении поля, и все будет просто работать.

Если вы определяете свое поле в коде, вместо жесткого кодирования списка там, вы также можете указать обратный вызов, который вызовет вашу функцию PHP, в случае, если вы ожидаете, что список изменится или если он динамический (allowed_values_function в настройки хранения полей). Хотя вы также можете изменить это и рассматривать эту конфигурацию полей как канонический источник вашей информации, и если она вам нужна в PHP, прочитайте ее оттуда.

Если это по какой-то причине не вариант, то вы можете реализовать плагин поля представлений и предоставить его представлениям с помощью крючка hook_views_data(). Это, скорее всего, намного сложнее, чем использовать правильный тип поля для вашего варианта использования.

 5
Author: Berdir, 2015-12-19 00:11:10