Wrapper für Entitätsmetadaten
Die Entitäts-API bietet einige Wrapper-Klassen, mit denen Sie auf einfache Weise mit Entitäten umgehen und die bereitgestellten Entitätseigenschafts-Informationsmodule nutzen können. Mit Hilfe der Wrapper können Sie auf die Eigenschaftsinformationen zugreifen, bekannte Eigenschaften durchlaufen oder einfach die beschriebenen Datenwerte abrufen / festlegen usw.
Dies sind einige einfache Anwendungsbeispiele, wie sie in der README zu finden sind:
Um diese Informationen (Metadaten) zu nutzen, stellt das Modul einige Wrapper-Klassen zur Verfügung, die das Abrufen und Festlegen von Werten erleichtern. Der Wrapper unterstützt die verkettete Verwendung zum Abrufen von Wrappern von Entitätseigenschaften, z. B. um die E-Mail-Adresse eines Knotenautors abzurufen, die verwendet werden kann:
$wrapper = entity_metadata_wrapper('node', $node);
$wrapper->author->mail->value();
Um die E-Mail-Adresse des Benutzers zu aktualisieren, könnte man verwenden
$wrapper->author->mail->set('sepp@example.com');
oder
$wrapper->author->mail = 'sepp@example.com';
Die Wrapper geben die Daten immer wie in den Eigenschaftsinformationen beschrieben zurück, die direkt über entity_get_property_info () oder vom Wrapper abgerufen werden können:
$mail_info = $wrapper->author->mail->info();
Um zu erzwingen, dass ein Textwert für die Ausgabe bereinigt wird, kann man z
$wrapper->title->value(array('sanitize' => TRUE));
um den Titel des bereinigten Knotens zu erhalten. Wenn eine Eigenschaft wie der Knotenkörper bereits standardmäßig bereinigt zurückgegeben wird, möchten Sie möglicherweise die nicht bereinigten Daten abrufen, wie sie in einem Browser für andere Anwendungsfälle angezeigt würden. Dazu kann die Option 'decode' aktiviert werden, mit der sichergestellt wird, dass die Tags für bereinigte Daten entfernt und HTML-Entitäten dekodiert werden, bevor die Eigenschaft zurückgegeben wird:
$wrapper->body->value->value(array('decode' => TRUE));
Auf diese Weise erhält man die Daten immer so, wie sie dem Benutzer angezeigt werden. Wenn Sie jedoch den unverarbeiteten Rohwert auch für bereinigte Textdaten erhalten möchten, können Sie dies über Folgendes tun:
$wrapper->body->value->raw();
Mehr Beispiele:
$wrapper->body->set(array('value' => "content"));
$wrapper->field_text[0] = 'the text';
$wrapper->field_text[0]->set(array('value' => "content"));
$wrapper->field_text2->summary = 'the summary';
$wrapper->field_text2->value = 'the text';
$wrapper->save();
$wrapper->delete();
Weitere Dokumente : http://drupal.org/node/1021556