Score:1

ตรวจสอบประเภทบล็อกใน THEME_preprocess_menu_local_task

ธง za

ฉันต้องการเปลี่ยนแปลงแท็บงานในเครื่องของประเภทบล็อกที่กำหนดเอง (mini_layout).

ฉันสามารถทำได้สำหรับโหนดบางประเภทในธีมของฉันด้วย THEME_preprocess_menu_local_task()และฉันสามารถใช้สิ่งต่อไปนี้เพื่อตรวจสอบโหนดและประเภทโหนดก่อน

$node = \Drupal::routeMatch()->getParameter('โหนด');
ถ้า ($node && $node->getType() == 'content_type') {
  // รหัสของฉัน
}

แต่ฉันจะตรวจสอบสิ่งที่ต้องการได้อย่างไร $บล็อก และ $block->getType() == 'mini_layout'? (ซึ่งไม่ถูกต้องแน่นอน)

ฉันควรทำสิ่งนี้ในโมดูลหรือดีกว่าที่จะอยู่ในธีม

Score:1
ธง ua

ฉันค่อนข้างใช้ hook_menu_local_tasks_alter เพียงเพราะพวกเขาทำตะขอสำหรับมันโดยเฉพาะ ดังนั้นอาจใช้มันได้เช่นกัน

/**
 * ใช้ hook_menu_local_tasks_alter()
 */
ฟังก์ชัน MY_MODULE_menu_local_tasks_alter(&$data, $route_name) {
  $is_a_block = !empty(\Drupal::routeMatch()->getParameters()->get('block_content'));
  ถ้า ($is_a_block) {
    $is_a_mini_layout_block = \Drupal::routeMatch()->getParameters()->get('block_content')->bundle() == 'mini_layout';
    ถ้า ($is_a_mini_layout_block) {
      // รหัสของฉัน
    }
  }
}

ฉันควรทำสิ่งนี้ในโมดูลหรือดีกว่าที่จะอยู่ในธีม

ควรใช้โมดูลเนื่องจากหน้าเหล่านี้ใช้ธีมผู้ดูแลระบบ และคุณไม่ควรแตะต้องธีมผู้ดูแลระบบหลัก ดังนั้น เว้นแต่ว่าคุณกำลังใช้ธีมของผู้ดูแลระบบที่กำหนดเอง คุณสามารถพิจารณาใช้ธีมได้

Sarah C avatar
za flag
ขอขอบคุณ! ทำงานได้อย่างสมบูรณ์แบบ ขอบคุณสำหรับบริบทเพิ่มเติม

โพสต์คำตอบ

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