นี่เป็นตัวเลือกเดียวของฉันในการสร้างปลั๊กอินการเปิดเผยบล็อกที่กำหนดเองและ
ใช้กับแพทช์นั้นได้ไหม?
ไม่ การกำหนดค่าการมองเห็นของอินสแตนซ์บล็อกไม่ใช่ตัวเลือกเดียว คุณยังสามารถควบคุมการเข้าถึงในระดับปลั๊กอินได้อีกด้วย ถ้าคุณเพิ่ม BlockPluginTrait::blockAccess ไปยังคลาสปลั๊กอิน คุณควบคุมอินสแตนซ์บล็อกทั้งหมดของปลั๊กอินนี้
อย่างไรก็ตาม ที่พบมากที่สุดใน Layout Builder คือบล็อกแบบกำหนดเองแบบอินไลน์ ปลั๊กอินสำหรับบล็อกเหล่านี้ใช้วิธีนี้แล้ว โดยตรวจสอบการเข้าถึงเอนทิตีเนื้อหาของบล็อกที่อยู่ด้านล่าง ดังนั้นในกรณีนี้คุณสามารถใช้ขอเกี่ยวได้ แต่สำหรับ block_content
:
ใช้ Drupal\Core\Access\AccessResult;
ใช้ Drupal\Core\Entity\EntityInterface;
ใช้ Drupal\Core\Session\AccountInterface;
/**
* ใช้ hook_ENTITY_TYPE_access()
*/
ฟังก์ชัน mymodule_block_content_access (EntityInterface $entity, $operation, AccountInterface $บัญชี) {
ถ้า ($ การดำเนินการ == 'ดู') {
ถ้า ($entity->id() == 123) {
กลับ AccessResult::forbidden();
}
}
กลับ AccessResult::เป็นกลาง ();
}