วิธีการนำเข้าบล็อกไปยังมุมมองที่มีอยู่โดยทางโปรแกรม

Aug 17 2020

ฉันจำเป็นต้องเขียนโปรแกรมนำเข้าบล็อกไปยังมุมมองที่มีอยู่กับการตั้งค่า

ฉันรู้วิธีส่งออกมุมมองทั้งหมดและนำเข้าโดยใช้โปรแกรม แต่ฉันไม่ต้องการส่งออกมุมมองทั้งหมดแล้วนำเข้ามุมมองทั้งหมด ในมุมมองของฉันมี 25 บล็อกดังนั้นจึงให้รหัส 4000 บรรทัดเพื่อนำเข้า ฉันสามารถคัดลอกรหัสส่งออกได้เฉพาะบล็อกใหม่ของฉัน แต่จะนำเข้าเฉพาะส่วนของโค้ดนี้ไปยังมุมมองที่มีอยู่ได้อย่างไร? เป็นไปได้หรือไม่ ฉันไม่พบวิธีแก้ปัญหาใด ๆ

คำตอบ

1 ShawnConn Aug 18 2020 at 04:42

"บล็อก" ที่ระบุที่คุณชี้ให้เห็นใน UI ภายในเรียกว่า "การแสดงผล" การแสดงผลจะถูกเก็บไว้ภายในวัตถุมุมมองในdisplayคุณสมบัติ (เช่น$view->display)

ถ้าคุณดูที่รหัสการส่งออกมุมมองที่คุณควรจะเห็นรูปแบบของบล็อกส่งออก (เช่น/* Display: Block 1 */, /* Display: Block 2 */ฯลฯ ) ที่แสดงผลโดยviews::export()วิธีการ

สำหรับแต่ละบล็อก (เช่นการแสดงผล) คุณควรเห็นบรรทัด$handler = $view->new_display(...)หลาย$handler->display...บรรทัดตามมาซึ่งเพิ่มฟิลด์ / ตัวกรองที่เกี่ยวข้องสำหรับการแสดงผลนั้น

ในการนำเข้าจอแสดงผลเดียวโดยทางโปรแกรมคุณต้องทำสิ่งต่อไปนี้:

$view = views_get_view('my_existing_view'); // @TODO: Add my new display handler code $view->save();