Các trình bao bọc siêu dữ liệu
API thực thể cung cấp một số lớp trình bao bọc mà bạn có thể sử dụng để dễ dàng xử lý các thực thể và tận dụng các mô đun thông tin thuộc tính thực thể được cung cấp. Với sự trợ giúp của các trình bao bọc, bạn có thể truy cập thông tin thuộc tính, lặp qua các thuộc tính đã biết hoặc chỉ nhận / đặt các giá trị dữ liệu được mô tả, v.v.
Đây là một số ví dụ sử dụng đơn giản như được tìm thấy trong README:
Để sử dụng thông tin này (siêu dữ liệu), mô-đun cung cấp một số lớp trình bao bọc giúp dễ dàng nhận và thiết lập các giá trị. Trình bao bọc hỗ trợ sử dụng chuỗi để truy xuất các trình bao bọc của các thuộc tính thực thể, ví dụ: để lấy địa chỉ thư của tác giả nút mà người ta có thể sử dụng:
$wrapper = entity_metadata_wrapper('node', $node);
$wrapper->author->mail->value();
Để cập nhật địa chỉ thư của người dùng, người ta có thể sử dụng
$wrapper->author->mail->set('sepp@example.com');
hoặc là
$wrapper->author->mail = 'sepp@example.com';
Các trình bao bọc luôn trả về dữ liệu như được mô tả trong thông tin thuộc tính, có thể được truy xuất trực tiếp qua entity_get_property_info () hoặc từ trình bao bọc:
$mail_info = $wrapper->author->mail->info();
Để buộc nhận được một giá trị văn bản được khử trùng cho đầu ra, người ta có thể sử dụng, ví dụ
$wrapper->title->value(array('sanitize' => TRUE));
để có được tiêu đề nút vệ sinh. Khi một thuộc tính đã được trả về vệ sinh theo mặc định, như thân nút, người ta có thể muốn lấy dữ liệu không được khử trùng như nó sẽ xuất hiện trong trình duyệt cho các trường hợp sử dụng khác. Để làm như vậy, người ta có thể kích hoạt tùy chọn 'giải mã', đảm bảo cho mọi dữ liệu được khử trùng, các thẻ bị tước và các thực thể HTML được giải mã trước khi thuộc tính được trả về:
$wrapper->body->value->value(array('decode' => TRUE));
Bằng cách đó, người ta luôn nhận được dữ liệu như hiển thị cho người dùng. Tuy nhiên, nếu bạn thực sự muốn nhận được giá trị thô, chưa xử lý, ngay cả đối với dữ liệu văn bản được khử trùng, bạn có thể thực hiện thông qua:
$wrapper->body->value->raw();
Ví dụ khác:
$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();
Thêm tài liệu : http://drupal.org/node/1021556