Encapsuleurs de métadonnées d'entité
L'API d'entité fournit certaines classes d'encapsuleur que vous pouvez utiliser pour traiter facilement les entités et tirer parti des modules d'informations sur les propriétés d'entité fournis. Avec l'aide des wrappers, vous pouvez accéder aux informations de propriété, parcourir les propriétés connues, ou simplement obtenir / définir les valeurs de données décrites, etc.
Voici quelques exemples d'utilisation simples que l'on trouve dans le fichier README:
Pour utiliser ces informations (métadonnées), le module fournit des classes wrapper qui facilitent l'obtention et la définition de valeurs. L'encapsuleur prend en charge l'utilisation enchaînée pour récupérer les encapsuleurs des propriétés d'entité, par exemple pour obtenir l'adresse e-mail d'un auteur de nœud que l'on pourrait utiliser:
$wrapper = entity_metadata_wrapper('node', $node);
$wrapper->author->mail->value();
Pour mettre à jour l'adresse e-mail de l'utilisateur, on pourrait utiliser
$wrapper->author->mail->set('sepp@example.com');
ou
$wrapper->author->mail = 'sepp@example.com';
Les wrappers retournent toujours les données comme décrit dans les informations de propriété, qui peuvent être récupérées directement via entity_get_property_info () ou à partir du wrapper:
$mail_info = $wrapper->author->mail->info();
Afin de forcer l'obtention d'une valeur textuelle purifiée pour la sortie, on peut utiliser, par exemple
$wrapper->title->value(array('sanitize' => TRUE));
pour obtenir le titre du nœud aseptisé. Lorsqu'une propriété est déjà retournée nettoyée par défaut, comme le corps du nœud, on peut éventuellement obtenir les données non filtrées telles qu'elles apparaîtront dans un navigateur pour d'autres cas d'utilisation. Pour ce faire, on peut activer l'option «décoder», qui garantit que pour toutes les données filtrées, les balises sont supprimées et les entités HTML sont décodées avant le retour de la propriété:
$wrapper->body->value->value(array('decode' => TRUE));
De cette façon, on obtient toujours les données comme indiqué à l'utilisateur. Cependant, si vous voulez vraiment obtenir la valeur brute et non traitée, même pour les données textuelles filtrées, vous pouvez le faire via:
$wrapper->body->value->raw();
Plus d'exemples:
$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();
Plus de documents : http://drupal.org/node/1021556