Damit u.a. Entity Metadata Wrapper korrekt funktioniert, benötigt das Entity Modul Informationen über die möglichen Properties und welche Daten es enthalten kann. Diese Informationen werden über die Funktionen hook_entity_property_info()
und hook_entity_property_info_alter()
definiert. Diese beiden Funktionen werden hauptsächlich genutzt, um die Informationen für neue Entities zu definieren, bzw. zu verändern.
TODO: Einfaches Beispiel für hook_entity_property_info()
schreiben.
Um diese Informationen für ein ein einzelnes (neues) Feld zu definieren kann dies direkt mit hook_field_info()
gemacht werden, indem zusätzliche Key in dem Array gesetzt werden.
Die möglichen Typen, für Properties sind hier zu finden: Data Types
/** * Implements hook_field_info(). */ function hook_field_info() { return array( 'my_field' => array( 'label' => t('My field'), // ... the normal definitions for a new field. // Add entity property info. 'property_type' => 'text', ), ); }
Das Beispiel oben funktioniert für einfache Felder. Bei komplexeren Feldern (die z.B. über mehrere Spalten gehen), muss zusätzlich ein Callback verwendet werden. Eine beispielhafte Implementierung zeigt der Artikel: Describe field properties to make custom fields work with Entity Metadata Wrappers