J'ai créé une entité personnalisée à l' aide de l' API d'entité qui a certaines propriétés définies hook_schema()
et également déclarées dans entityPropertyInfo()
, une extension de classe EntityDefaultMetadataController
.
Jusqu'ici tout va bien.
Maintenant, j'aimerais que les utilisateurs puissent personnaliser si et comment ces propriétés s'affichent lors de la visualisation des entités, j'ai donc implémenté hook_field_extra_fields () et les ai déclarées.
Ensuite, dans mon contrôleur qui s'étend, EntityAPIController
j'ai ajouté les propriétés au tableau $ content en buildContent()
tant que, décrites ici .
Cela fonctionne plutôt bien et les propriétés sont rendues et respectent l'ordre et la visibilité dans "Gérer l'affichage".
Cependant, je n'arrive pas à comprendre comment ajouter des paramètres dans Gérer l'affichage pour personnaliser le positionnement de l'étiquette ( inline/above/hidden
) et, plus important encore, comment spécifier des formateurs personnalisés pour ces propriétés.
Des indices?
Réponses:
Vous pouvez créer un module fournissant un
property
type de champ " ". Stockez la propriété à mettre en forme en tant que paramètre d'instance, puis appliquez un formateur à cela. Cela devrait être relativement simple. Le module de relation a un module de champ factice qui pourrait vous aider à comprendre comment coder cela.la source
comme vous pouvez le voir
field_ui_display_overview_form
surmodules/field_ui/field_ui.admin.inc
la pageDisplay setting
remplira avec$instances
et$extra_fields
:dans cette fonction il y a deux boucles qui créent la page:
et
et seulement dans la première boucle qui itère dans les champs, il y a des options pour
label
etformatter
donc si vous voulez cette fonctionnalité sur vos propriétés (comme l'a dit @Clive):
la source