Score:0

ซ่อนและยกเลิกการซ่อนบล็อกที่กำหนดเองโดยทางโปรแกรม drupal 9

ธง cn

สวัสดี ฉันได้สร้างโมดูลเพื่อแสดงบล็อก ฉันต้องการตั้งค่าการเปิดเผยบล็อกให้มองเห็นได้และซ่อนอยู่ในหน้าแรกตามเงื่อนไข

แบบนี้:

แก้ไข:


// ดึงสถานะจากฐานข้อมูลแล้วตรวจสอบเงื่อนไข
ถ้า (สถานะ $ = 1){
// ทำให้มองเห็นบล็อกได้
}อื่น{
// ซ่อนบล็อก
}

ฉันค้นหาทั่วอินเทอร์เน็ตและไม่พบวิธีทำให้มันใช้งานได้

ฉันมีแบบฟอร์มที่ใช้ในการเพิ่มเนื้อหาลงในฐานข้อมูลและมีช่องทำเครื่องหมายว่าจะทำให้บล็อกมองเห็นได้หรือไม่

ดังนั้นฉันจะดึงสถานะ (มองเห็น/ซ่อน) ของบล็อกจากฐานข้อมูลแล้วทำให้มองเห็นบล็อกได้

Kevin avatar
in flag
ทำไมไม่สร้างบริบทการมองเห็นใหม่แทนสิ่งนี้
cn flag
สวัสดี @Kevin ขอบคุณสำหรับความคิดเห็นของคุณ คุณช่วยบอกข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ไหม จริง ๆ แล้วฉันยังใหม่กับ drupal
NicklasF avatar
us flag
เราต้องการข้อมูลเพิ่มเติมเกี่ยวกับเงื่อนไขเพื่อให้คุณได้รับโซลูชันที่ดีที่สุด เช่นเดียวกับใน Drupal คุณสามารถทำได้หลายวิธี: ในการกำหนดค่าบล็อก เทมเพลต hooks และ/หรือ twig
cn flag
@NicklasMandrupFrederiksen ฉันเพิ่งอัปเดตคำถาม โปรดตรวจสอบด้วย
Kevin avatar
in flag
https://www.jaypan.com/tutorial/custom-drupal-block-visibility-plugins-and-condition-plugin-api
Score:3
ธง cn

เมื่อคุณสร้างโมดูลเพื่อแสดงบล็อก โดยปกติหมายความว่าคุณใช้ปลั๊กอินบล็อก จากนั้นคุณสามารถเพิ่มเงื่อนไขลงในปลั๊กอินได้โดยตรง:

  ฟังก์ชั่นป้องกัน blockAccess (AccountInterface $account) {
    $access = $this->languageManager->isMultilingual() ? AccessResult::allowed() : AccessResult::forbidden();
    ส่งคืน $access->addCacheTags(['config:configurable_language_list']);
  }

ตัวอย่างจากแกน บล็อกภาษา::blockAccess().

cn flag
ขอบคุณสิ่งนี้ได้ผล

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา