พิมพ์เมนูระดับที่สองใน Drupal 8

มาร์กอัป Drupal 8 เปลี่ยนไปค่อนข้างมากจาก Drupal 7 โดยใช้ Twig Engine เรากำลังพัฒนาเว็บไซต์ด้วย เราต้องการพิมพ์ลิงค์เมนูระดับที่สองในนั้น

  {% if main_menu %}
  <nav id ="main-menu" class="navigation" role="navigation">
      {{ main_menu }}
  </nav> <!-- /#main-menu -->

นี่คือวิธีที่เราพิมพ์เมนูใน Drupal 8 ไวยากรณ์ที่ฉันไม่ค่อยคุ้นเคย

ฉันจะพิมพ์ได้อย่างไร ลิงก์ระดับที่สองบนเมนู หรือแผนผังเมนู?


person Alen Saqe    schedule 17.02.2014    source แหล่งที่มา


คำตอบ (3)


ตาม template_preprocess_page() คุณควรมี เข้าถึง secondary_menu ได้เช่นกัน ดังนั้น:

{% if secondary_menu %}
  <nav id ="secondary-menu" class="navigation" role="navigation">
      {{ secondary_menu }}
  </nav>
{% endif %}

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

function MYTHEME_preprocess_page(&$vars) {
  $vars['foo'] = 'bar'; // foo is available in the page template file
}
person Clive    schedule 17.02.2014
comment
ฉันจะลองอีกครั้งและทดสอบว่าเหมาะกับกรณีของฉันหรือไม่ ขอบคุณสำหรับคำตอบ. ฉันทำเครื่องหมายว่าเป็นคำตอบไม่ได้ในขณะนี้ ก่อนที่จะทดสอบ. ขอบคุณอีกครั้ง. - person Alen Saqe; 17.02.2014
comment
ทำงานตามที่ออกแบบไว้ ฉันจะพยายามพิมพ์โดยใช้โฮเวอร์แทนที่จะพิมพ์บนคลิก แต่เมนูรองปรากฏขึ้น! ขอบคุณ! - person Alen Saqe; 28.02.2014

ขึ้นอยู่กับธีมที่คุณใช้ อาจไม่ใช่ปัญหากับเทมเพลตเมนู ในกรณีของฉัน เมนู (หลัก) ได้รับการกำหนดค่าให้แสดงเพียงระดับเดียวในการตั้งค่าบล็อก

ฉันพบโดยบังเอิญ นี่คือวิธีเปลี่ยน:

  1. ไปที่ https://‹yourdrupalpage›/admin/structure/block
  2. ในรายการบล็อกเมนูที่เกี่ยวข้อง (เช่น เมนูหลัก) คลิก กำหนดค่า
  3. ปรับระดับเมนูที่มองเห็นได้ตามความต้องการของคุณ

นั่นควรเป็นเคล็ดลับ

person Stephan Richter    schedule 20.07.2016

ฉันทำสิ่งที่ Stephan Richter แนะนำ แต่ฉันลืมเลือกตัวเลือกที่เทียบเท่า "แสดงเปิดเสมอ" ในรายการเมนูระดับ 1

ดังนั้น หากคุณต้องการให้แสดงระดับ 2 ของคุณ อย่าลืมตัวเลือกนี้ในพาเรนต์

person Paul Leclerc    schedule 08.12.2016