Я создал пользовательскую сущность, используя Entity API , у которого есть определенные свойства, определенные hook_schema()
и объявленные в entityPropertyInfo()
расширении класса EntityDefaultMetadataController
.
Все идет нормально.
Теперь я хотел бы, чтобы пользователи могли настраивать отображение и отображение этих свойств при просмотре сущностей, поэтому я реализовал hook_field_extra_fields () и объявил их.
Затем в моем контроллере, который расширяет, EntityAPIController
я добавил свойства в массив $ content в buildContent()
виде, как показано здесь .
На самом деле он работает довольно хорошо, свойства отображаются и учитывают параметры порядка и видимости в «Управлении отображением».
Тем не менее, я не могу понять, как добавить настройки в Manage Display для настройки позиционирования метки ( inline/above/hidden
) и, что более важно, как указать пользовательские средства форматирования для этих свойств.
Есть какие-нибудь подсказки?
Ответы:
Вы можете создать модуль, предоставляющий
property
тип поля " ". Сохраните свойство, которое нужно отформатировать, в качестве параметра экземпляра, а затем примените к нему средство форматирования. Это должно быть относительно просто. Модуль Relation имеет фиктивный модуль поля, который может помочь вам понять, как это кодировать.источник
как вы можете видеть
field_ui_display_overview_form
наmodules/field_ui/field_ui.admin.inc
страницеDisplay setting
наполнит$instances
и$extra_fields
:в этой функции есть две петли, которые создают страницу:
и
и только в первом цикле, который повторяется в полях есть варианты для
label
иformatter
так что если вы хотите эту функциональность для ваших свойств (как сказал @Clive):
источник