Contenedores de metadatos de entidad
La API de entidad proporciona algunas clases de contenedor que puede usar para tratar fácilmente con entidades y aprovechar los módulos de información de propiedad de entidad proporcionados. Con la ayuda de los contenedores, puede acceder a la información de la propiedad, recorrer las propiedades conocidas o simplemente obtener / establecer los valores de datos descritos, etc.
Estos son algunos ejemplos de uso simples que se encuentran en el archivo README:
Para hacer uso de esta información (metadatos), el módulo proporciona algunas clases de contenedor que facilitan la obtención y el establecimiento de valores. El contenedor admite el uso encadenado para recuperar contenedores de propiedades de entidad, por ejemplo, para obtener la dirección de correo del autor de un nodo, se podría usar:
$wrapper = entity_metadata_wrapper('node', $node);
$wrapper->author->mail->value();
Para actualizar la dirección de correo del usuario, se podría usar
$wrapper->author->mail->set('sepp@example.com');
o
$wrapper->author->mail = 'sepp@example.com';
Los contenedores siempre devuelven los datos como se describe en la información de la propiedad, que se puede recuperar directamente a través de entity_get_property_info () o desde el contenedor:
$mail_info = $wrapper->author->mail->info();
Para forzar la obtención de un valor textual desinfectado para la salida, se puede usar, por ejemplo
$wrapper->title->value(array('sanitize' => TRUE));
para obtener el título del nodo desinfectado. Cuando una propiedad ya se devuelve desinfectada de manera predeterminada, como el cuerpo del nodo, uno posiblemente quiera obtener los datos no desinfectados como aparecerían en un navegador para otros casos de uso. Para hacerlo, se puede habilitar la opción 'decodificar', que garantiza que para cualquier información desinfectada se eliminen las etiquetas y se decodifiquen las entidades HTML antes de que se devuelva la propiedad:
$wrapper->body->value->value(array('decode' => TRUE));
De esa manera, uno siempre obtiene los datos como se muestran al usuario. Sin embargo, si realmente desea obtener el valor sin procesar, incluso para los datos textuales desinfectados, puede hacerlo a través de:
$wrapper->body->value->raw();
Más ejemplos:
$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();
Más documentos : http://drupal.org/node/1021556