นี่เป็นตัวเลือกเดียวของฉันในการสร้างปลั๊กอินการเปิดเผยบล็อกที่กำหนดเองและ
ใช้กับแพทช์นั้นได้ไหม?
ไม่ การกำหนดค่าการมองเห็นของอินสแตนซ์บล็อกไม่ใช่ตัวเลือกเดียว คุณยังสามารถควบคุมการเข้าถึงในระดับปลั๊กอินได้อีกด้วย ถ้าคุณเพิ่ม 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::เป็นกลาง ();
}