Criei uma entidade personalizada usando a API de entidade que possui determinadas propriedades definidas hook_schema()
e também declaradas em entityPropertyInfo()
uma classe que se estende EntityDefaultMetadataController
.
Por enquanto, tudo bem.
Agora eu gostaria que os usuários pudessem personalizar se e como essas propriedades são exibidas ao visualizar as entidades, então implementei hook_field_extra_fields () e as declarei.
Então, no meu Controller, que se estende EntityAPIController
, adicionei as propriedades à matriz $ content em buildContent()
as, descritas aqui .
Na verdade, ele funciona muito bem e as propriedades são renderizadas e respeitam as configurações de ordem e visibilidade em "Gerenciar exibição".
No entanto, não consigo descobrir como adicionar configurações no Manage Display para personalizar o posicionamento da etiqueta ( inline/above/hidden
) e, mais importante, como especificar formatadores personalizados para essas propriedades.
Alguma pista?
Respostas:
Você pode criar um módulo fornecendo um "
property
" tipo de campo. Armazene a propriedade a ser formatada como uma configuração de instância e aplique um formatador a isso. Deve ser relativamente direto. O módulo Relation possui um módulo de campo fictício que pode ajudá-lo a descobrir como codificar isso.fonte
como você pode ver na
field_ui_display_overview_form
namodules/field_ui/field_ui.admin.inc
páginaDisplay setting
vai encher com$instances
e$extra_fields
:nesta função, existem dois loops que criam a página:
e
e apenas no primeiro loop que itera nos campos, há opções para
label
eformatter
portanto, se você deseja essa funcionalidade em suas propriedades (como disse o @Clive):
fonte