Ich habe eine benutzerdefinierte Entität mithilfe der Entitäts-API erstellt , in der bestimmte Eigenschaften definiert hook_schema()
und auch deklariert sind entityPropertyInfo()
, eine Klasse, die erweitert wird EntityDefaultMetadataController
.
So weit, ist es gut.
Jetzt möchte ich, dass Benutzer anpassen können, ob und wie diese Eigenschaften beim Anzeigen der Entitäten angezeigt werden. Deshalb habe ich hook_field_extra_fields () implementiert und deklariert.
Dann habe EntityAPIController
ich in meinem Controller, der erweitert wird, die Eigenschaften zum Array $ content in buildContent()
as hinzugefügt , wie hier beschrieben .
Es funktioniert tatsächlich ziemlich gut und die Eigenschaften werden gerendert und die Reihenfolge und Sichtbarkeitseinstellungen in "Anzeige verwalten" werden beachtet.
Ich kann jedoch nicht herausfinden, wie Einstellungen in "Anzeige verwalten" hinzugefügt werden müssen, um die Etikettenpositionierung anzupassen ( inline/above/hidden
) und, was noch wichtiger ist, wie benutzerdefinierte Formatierer für diese Eigenschaften angegeben werden.
Irgendwelche Hinweise?
Antworten:
Sie können ein Modul mit einem Feldtyp "
property
" erstellen . Speichern Sie die zu formatierende Eigenschaft als Instanzeinstellung und wenden Sie darauf einen Formatierer an. Es sollte relativ einfach sein. Das Beziehungsmodul verfügt über ein Dummy-Feldmodul, mit dessen Hilfe Sie möglicherweise herausfinden, wie dies codiert werden kann.quelle
Wie Sie
field_ui_display_overview_form
aufmodules/field_ui/field_ui.admin.inc
der Seite sehenDisplay setting
können, füllen Sie diese mit$instances
und$extra_fields
:In dieser Funktion gibt es zwei Schleifen, die die Seite erstellen:
und
und nur in der ersten Schleife, die in Feldern iteriert, gibt es Optionen für
label
undformatter
Also, wenn Sie diese Funktionalität in Ihren Eigenschaften haben möchten (wie @Clive sagte):
quelle