Wrapper di metadati di entità
L'API di entità fornisce alcune classi di wrapper che è possibile utilizzare per gestire facilmente le entità e sfruttare i moduli di informazioni sulla proprietà delle entità forniti. Con l'aiuto dei wrapper è possibile accedere alle informazioni sulle proprietà, passare in rassegna le proprietà note o semplicemente ottenere / impostare i valori dei dati descritti, ecc.
Questi sono alcuni semplici esempi di utilizzo che si trovano nel file README:
Per utilizzare queste informazioni (metadati) il modulo fornisce alcune classi wrapper che facilitano il recupero e l'impostazione dei valori. Il wrapper supporta l'utilizzo concatenato per il recupero di wrapper delle proprietà dell'entità, ad esempio per ottenere l'indirizzo di posta dell'autore di un nodo che è possibile utilizzare:
$wrapper = entity_metadata_wrapper('node', $node);
$wrapper->author->mail->value();
Per aggiornare l'indirizzo di posta dell'utente è possibile utilizzare
$wrapper->author->mail->set('sepp@example.com');
o
$wrapper->author->mail = 'sepp@example.com';
I wrapper restituiscono sempre i dati come descritto nelle informazioni sulla proprietà, che possono essere recuperati direttamente tramite entity_get_property_info () o dal wrapper:
$mail_info = $wrapper->author->mail->info();
Per forzare l'ottenimento di un valore testuale disinfettato per l'output è possibile utilizzare, ad es
$wrapper->title->value(array('sanitize' => TRUE));
per ottenere il titolo del nodo sanificato. Quando una proprietà viene già restituita sterilizzata per impostazione predefinita, come il corpo del nodo, è possibile che si desideri ottenere i dati non disinfettati come apparirebbero in un browser per altri casi d'uso. Per fare ciò è possibile abilitare l'opzione 'decodifica', che assicura che per ogni dato sanificato i tag vengano rimossi e le entità HTML vengano decodificate prima che la proprietà venga restituita:
$wrapper->body->value->value(array('decode' => TRUE));
In questo modo si ottengono sempre i dati mostrati all'utente. Tuttavia, se vuoi davvero ottenere il valore grezzo, non elaborato, anche per i dati testuali disinfettati, puoi farlo tramite:
$wrapper->body->value->raw();
Altri esempi:
$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();
Altri documenti : http://drupal.org/node/1021556