it-swarm.asia

إظهار كافة ارتباطات القائمة المتداخلة في Drupal 7

كيف أقوم بعرض كافة الارتباطات المتداخلة في <ul><li> التنسيق في Drupal 7؟ الكود الافتراضي يعرض روابط المستوى الأول فقط على الرغم من أنها مرتبة في Drupal المتداخلة كما يلي:

<?php if ($main_menu): ?>
<div id="mainmenu"> <?php print theme( 'links__system_main_menu', array('links' => $main_menu) ); ?> </div>
<?php endif; ?>

يتم عرض المستوى الأول فقط في صص. إعداد القائمة:

-Fruits
---Apples
---Oranges
---Lemons
-Cars
---Big car
---Small car
---Fucked up car
-Whatever
6
enchance

يتم تعيين المتغير الافتراضي $main_menu في page.tpl.php على menu_main_menu() ، وهو عرض سياقي لشجرة القائمة الرئيسية.

للحصول على المخرجات المطلوبة ، تحتاج إلى الحصول على شجرة القائمة بالكامل باستخدام [menu_tree_all_data() و menu_tree_output() .

للقيام بذلك في السمة الخاصة بك ، قم بإنشاء template.php إذا لم تكن قد قمت بذلك بالفعل ، وقم بإضافة وظيفة معالجة مسبقة جديدة لقالب الصفحة:

function THEMENAME_preprocess_page(&$variables) {
  // Get the entire main menu tree
  $main_menu_tree = menu_tree_all_data('main-menu');

  // Add the rendered output to the $main_menu_expanded variable
  $variables['main_menu_expanded'] = menu_tree_output($main_menu_tree);
}

بعد ذلك ، في page.tpl.php ، يمكنك فقط استخدام:

<?php print render($main_menu_expanded); ?> 

للحصول على قائمة موسعة وغير مرتبة من القائمة الرئيسية.

لمزيد من المرونة ، قد ترغب في النظر في Menu Block ، والتي ستتيح لك إنشاء كتل من القوائم الموسعة خارج الصندوق باستخدام توسيع جميع الأطفال خيار هذه الشجرة بالإضافة إلى مجموعة من الخيارات الأخرى لتقسيم أشجار القائمة.

23
user7

أيضا هناك وحدة القائمة menu_block التي تسمح بإنشاء كمية عشوائية من الكتل المخصصة تظهر الأجزاء المطلوبة من القائمة

0
Dmitry Vyal