เอนทิตี wraps ข้อมูลเมตา
API เอนทิตีจัดเตรียมคลาส wrapper บางคลาสที่คุณอาจใช้เพื่อจัดการกับเอนทิตีได้ง่ายและใช้ประโยชน์จากโมดูลข้อมูลคุณสมบัติเอนทิตีที่มีให้ ด้วยความช่วยเหลือของ wrappers คุณสามารถเข้าถึงข้อมูลคุณสมบัติวนรอบคุณสมบัติที่รู้จักหรือเพียงแค่รับ / ตั้งค่าข้อมูลที่อธิบายไว้ ฯลฯ
นี่คือตัวอย่างการใช้งานง่าย ๆ ที่พบใน README:
สำหรับการใช้ข้อมูลนี้ (ข้อมูลเมตา) โมดูลให้คลาส wrapper บางคลาสที่ช่วยให้การรับและตั้งค่าง่ายขึ้น wrapper รองรับการใช้งานที่ถูกล่ามโซ่สำหรับการดึง wrappers ของคุณสมบัติเอนทิตีเช่นเพื่อรับที่อยู่อีเมลของผู้เขียนโหนดที่สามารถใช้ได้:
$wrapper = entity_metadata_wrapper('node', $node);
$wrapper->author->mail->value();
เพื่อปรับปรุงที่อยู่อีเมลของผู้ใช้สามารถใช้
$wrapper->author->mail->set('sepp@example.com');
หรือ
$wrapper->author->mail = 'sepp@example.com';
wrappers จะส่งคืนข้อมูลตามที่อธิบายไว้ในข้อมูลคุณสมบัติซึ่งอาจถูกดึงโดยตรงผ่าน entity_get_property_info () หรือจาก wrapper:
$mail_info = $wrapper->author->mail->info();
เพื่อที่จะบังคับให้ได้รับคุณค่าทางใจสำหรับการส่งออกหนึ่งสามารถใช้เช่น
$wrapper->title->value(array('sanitize' => TRUE));
เพื่อรับชื่อโหนดที่ถูกสุขลักษณะ เมื่อคุณสมบัติถูกส่งคืนโดยค่าเริ่มต้นเช่นเดียวกับโหนดเนื้อหาหนึ่งอาจต้องการรับข้อมูลที่ไม่ได้รับการฆ่าเชื้อตามที่ปรากฏในเบราว์เซอร์สำหรับกรณีการใช้งานอื่น ในการทำเช่นนั้นสามารถเปิดใช้งานตัวเลือก 'ถอดรหัส' ซึ่งทำให้มั่นใจได้ว่าข้อมูลที่ถูกสุขลักษณะจะถูกปล้นและแท็ก HTML จะถูกถอดรหัสก่อนที่คุณสมบัติจะถูกส่งคืน:
$wrapper->body->value->value(array('decode' => TRUE));
วิธีนั้นจะได้รับข้อมูลตามที่ปรากฏแก่ผู้ใช้เสมอ อย่างไรก็ตามหากคุณต้องการได้รับข้อมูลดิบที่ไม่ได้ประมวลผลแม้กระทั่งข้อมูลที่เป็นข้อความที่ถูกสุขอนามัยคุณสามารถทำได้ผ่าน:
$wrapper->body->value->raw();
ตัวอย่างเพิ่มเติม:
$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();
เอกสารเพิ่มเติม : http://drupal.org/node/1021556