Wrappers de metadados da entidade
A API da entidade fornece algumas classes de wrapper que você pode usar para lidar facilmente com entidades e alavancar os módulos de informações de propriedade da entidade fornecidos. Com a ajuda dos wrappers, você pode acessar as informações da propriedade, fazer um loop sobre propriedades conhecidas ou apenas obter / definir os valores de dados descritos etc.
Estes são alguns exemplos simples de uso, conforme encontrados no README:
Para utilizar essas informações (metadados), o módulo fornece algumas classes de wrapper que facilitam a obtenção e a configuração de valores. O wrapper suporta o uso encadeado para recuperar os wrappers das propriedades da entidade, por exemplo, para obter o endereço de email do autor do nó que se poderia usar:
$wrapper = entity_metadata_wrapper('node', $node);
$wrapper->author->mail->value();
Para atualizar o endereço de e-mail do usuário, pode-se usar
$wrapper->author->mail->set('sepp@example.com');
ou
$wrapper->author->mail = 'sepp@example.com';
Os wrappers sempre retornam os dados, conforme descrito nas informações da propriedade, que podem ser recuperadas diretamente via entity_get_property_info () ou no wrapper:
$mail_info = $wrapper->author->mail->info();
Para forçar a obtenção de um valor textual higienizado para a saída, pode-se usar, por exemplo,
$wrapper->title->value(array('sanitize' => TRUE));
para obter o título do nó higienizado. Quando uma propriedade já é retornada higienizada por padrão, como o corpo do nó, é possível obter os dados não higienizados como apareceriam em um navegador para outros casos de uso. Para isso, é possível ativar a opção 'decodificar', que garante que todos os dados higienizados sejam removidos e as tags HTML decodificadas antes da devolução da propriedade:
$wrapper->body->value->value(array('decode' => TRUE));
Dessa forma, sempre se obtém os dados como mostrado ao usuário. No entanto, se você realmente deseja obter o valor bruto e não processado, mesmo para dados textuais higienizados, é possível:
$wrapper->body->value->raw();
Mais exemplos:
$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();
Mais documentos : http://drupal.org/node/1021556