Opakowania metadanych jednostki
Interfejs API encji zapewnia pewne klasy opakowań, których można użyć do łatwego radzenia sobie z encjami i do wykorzystania dostarczonych modułów informacji o właściwości encji. Za pomocą opakowań można uzyskać dostęp do informacji o właściwościach, przeglądać znane właściwości lub po prostu uzyskać / ustawić opisane wartości danych itp.
Oto kilka prostych przykładów użycia, które można znaleźć w pliku README:
Aby skorzystać z tych informacji (metadanych), moduł udostępnia pewne klasy opakowań, które ułatwiają pobieranie i ustawianie wartości. Opakowanie obsługuje łańcuchowe użycie do pobierania opakowań właściwości encji, np. W celu uzyskania adresu e-mail autora węzła można użyć:
$wrapper = entity_metadata_wrapper('node', $node);
$wrapper->author->mail->value();
Aby zaktualizować adres e-mail użytkownika, można użyć
$wrapper->author->mail->set('sepp@example.com');
lub
$wrapper->author->mail = 'sepp@example.com';
Opakowania zawsze zwracają dane zgodnie z opisem w informacjach o właściwościach, które można pobrać bezpośrednio za pomocą encji_get_property_info () lub z opakowania:
$mail_info = $wrapper->author->mail->info();
W celu wymuszenia dezynfekcji wartości tekstowej na wyjściu można użyć np
$wrapper->title->value(array('sanitize' => TRUE));
aby uzyskać tytuł odkażonego węzła. Gdy właściwość jest już domyślnie zwracana w stanie odkażonym, takim jak treść węzła, prawdopodobnie chce się uzyskać niezanieczone dane, tak jak wyglądałoby to w przeglądarce dla innych przypadków użycia. W tym celu można włączyć opcję „dekodowania”, która zapewnia, że wszelkie odkażone dane są usuwane, a encje HTML są dekodowane przed zwróceniem właściwości:
$wrapper->body->value->value(array('decode' => TRUE));
W ten sposób zawsze dostaje się dane pokazane użytkownikowi. Jeśli jednak naprawdę chcesz uzyskać surową, nieprzetworzoną wartość, nawet w przypadku oczyszczonych danych tekstowych, możesz to zrobić za pomocą:
$wrapper->body->value->raw();
Więcej przykładów:
$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();
Więcej dokumentów : http://drupal.org/node/1021556