<?php
// Select all entries from the menu table
$sql1 = $pardConfig->prepare("SELECT id, menu_title, menu_link, parent FROM pard_menu ORDER BY parent, sort, menu_title");
// Create a multidimensional array to conatin a list of items and parents
$sql1->execute();
$menu = array(
'items' => array(),
'parents' => array()
);
// Builds the array lists with data from the menu table
while ($items = $sql1->fetch()) {
// Creates entry into items array with current menu item id ie. $menu['items'][1]
$menu['items'][$items['id']] = $items;
// Creates entry into parents array. Parents array contains a list of all items with children
$menu['parents'][$items['parent']][] = $items['id'];
}
// Menu builder function, parentId 0 is the root
function buildMenu($pardConfig, $parent, $menu)
{
$html = "";
if (isset($menu['parents'][$parent])) {
$html .= "
<ul>\n";
foreach ($menu['parents'][$parent] as $itemId) {
if (!isset($menu['parents'][$itemId])) {
$html .= "<li>\n <a href='" . $menu['items'][$itemId]['menu_link'] . "'>" . $menu['items'][$itemId]['menu_title'] . "</a>\n</li> \n";
}
if (isset($menu['parents'][$itemId])) {
$html .= "
<li>\n <a href='" . $menu['items'][$itemId]['menu_link'] . "'>" . $menu['items'][$itemId]['menu_title'] . "</a> \n";
$html .= buildMenu($pardConfig, $itemId, $menu);
$html .= "</li> \n";
}
}
$html .= "</ul> \n";
}
return $html;
}
echo buildMenu($pardConfig, 0, $menu);
?>
上記のコードには、マルチレベルのサブメニューを持つ動的メニューを作成するための php コードが含まれています。
- メイン
ul
(最初のUl)には.nav
クラスがあります li
最初のレベルのサブメニューがある場所には、.dropdown
li のクラスがあります- さらに、2番目のステップでは、親要素を持つ要素の
.dropdown-menu
クラスがありますul
li
- そして、私は
.dropdown-submenu
第3レベルのサブメニューのクラスを持っています
だから私はそれにそれらの4セットを追加して私のコードを変更したいですか?何か助けていただければ幸いです。
これにはブートランプ メニュー API を使用します。
このアプローチは、次のようにJqueryで行いましたが、100%良くありません..
$(".nav-collapse").find("ul").first().addClass("nav");
$(".nav-collapse").find("li").has("ul").addClass("nav");
$(".nav").find("li:has(ul) a").attr("data-toggle", "dropdown");
$('ul').filter(function () {
return $(this).parent().is('li')
}).addClass('dropdown-menu');
$(".nav").find("li ul li").addClass("dropdown-submenu");
$('.dropdown-toggle').dropdown();
});