Property Info für Entity Metadata Wrapper definieren

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

Beispiel für die Definition von Property Info bei einem Feld

/**
 * 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