Creé una entidad personalizada usando Entity API que tiene ciertas propiedades definidas hook_schema()
y también declaradas en entityPropertyInfo()
una clase que se extiende EntityDefaultMetadataController
.
Hasta aquí todo bien.
Ahora me gustaría que los usuarios puedan personalizar si estas propiedades se muestran y cómo se muestran al ver las entidades, así que implementé hook_field_extra_fields () y las declaró.
Luego, en mi controlador que se extiende EntityAPIController
, agregué las propiedades a la matriz $ content buildContent()
como se describe aquí .
Realmente funciona bastante bien y las propiedades se representan y respetan el orden y la configuración de visibilidad en "Administrar pantalla".
Sin embargo, parece que no puedo entender cómo agregar configuraciones en Administrar pantalla para personalizar el posicionamiento de la etiqueta ( inline/above/hidden
) y, lo que es más importante, cómo especificar formateadores personalizados para estas propiedades.
¿Alguna pista?
Respuestas:
Puede crear un módulo que proporcione un "
property
" tipo de campo. Almacene la propiedad que se formateará como una configuración de instancia y luego aplique un formateador a eso. Debería ser relativamente sencillo. El módulo de relación tiene un módulo de campo ficticio que podría ayudarlo a descubrir cómo codificar esto.fuente
como se puede ver en
field_ui_display_overview_form
enmodules/field_ui/field_ui.admin.inc
la páginaDisplay setting
llenará con$instances
y$extra_fields
:En esta función hay dos bucles que crean la página:
y
y solo en el primer ciclo que itera en los campos hay opciones para
label
yformatter
así que si quieres esta funcionalidad en tus propiedades (como dijo @Clive):
fuente