ฉันต้องการเพิ่มตัวกรองอย่างง่ายให้กับมุมมองที่มีอยู่ใน Drupal 9 ดูเหมือนว่าฉันสามารถทำได้ด้วย hook_views_pre_view()
. ในทุกตัวอย่างที่ฉันพบ รวมถึงลิงก์ "คำถามที่คล้ายกัน" ทั้งหมดที่ปรากฏขึ้นเมื่อป้อนชื่อโพสต์นี้ ฉันเห็นว่า $view->add_item()
ถูกนำมาใช้. ดู: เพิ่มตัวกรองมุมมองที่เปิดเผยโดยทางโปรแกรม
อย่างไรก็ตาม เมื่อฉันพยายามรันโค้ดนี้:
ฟังก์ชัน sbn_views_pre_view($view, $display_id, array $args) {
ถ้า ($view->id() == 'draft_moderation_state') {
// รับอาร์เรย์ของร่าง nids
$state = 'ฉบับร่าง';
$results = sbn_get_all_nodes_in_moderation_state($สถานะ);
// ไม่มีตัวกรอง Draft_moderation_state ดังนั้นเราต้องเพิ่มเข้าไป
$view->add_item(
$view->current_display,
'กรอง',
'โหนด'
'นิด'
อาร์เรย์ (
'ตัวดำเนินการ' => '=',
'value' => '59',
'กลุ่ม' => 1
)
);
}
}
ฉันได้รับข้อผิดพลาดนี้:
โทรไปยังวิธีการที่ไม่ได้กำหนด Drupal\views\ViewExecutable::add_item()
คำสั่งเพิ่มตัวกรองคืออะไร hook_views_pre_view()
ใน Drupal 9?