PHP导航调用相同<;ul>;
我正在尝试整合boostrap,我面临着一些我不太理解的问题。。。PHP。基本上我需要的是将class=“nav”添加到ul,并将class=“dropdown menu”添加到子菜单ul,但它重复了两次nav类。这是代码。非常感谢你的帮助PHP导航调用相同<;ul>;,php,magento,Php,Magento,我正在尝试整合boostrap,我面临着一些我不太理解的问题。。。PHP。基本上我需要的是将class=“nav”添加到ul,并将class=“dropdown menu”添加到子菜单ul,但它重复了两次nav类。这是代码。非常感谢你的帮助 <div class="navbar navbar-inverse"> <div class="navbar-inner"> <div class="navbar"> <!-- menu st
<div class="navbar navbar-inverse">
<div class="navbar-inner">
<div class="navbar">
<!-- menu start -->
<ul class="nav" id="nav">
<li class="level0"> <a class="dropdown-toggle" href="#" class=""><span>Dashboard</span></a></li>
<li onmouseover="Element.addClassName(this,'over')" onmouseout="Element.removeClassName(this,'over')" class=" active parent dropdown level0"> <a class="dropdown-toggle" href="#" onclick="return false" class="active"><span>Sales</span></a>
<ul class="nav">
<li class="level1"> <a class="dropdown-toggle" href="#" class=""><span>Orders</span></a></li>
<li class="level1"> <a class="dropdown-toggle" href="#" class=""><span>Invoices</span></a></li>
<li class="level1"> <a class="dropdown-toggle" href="#" class=""><span>Shipments</span></a></li>
<li class="level1"> <a class="dropdown-toggle" href="#" class=""><span>Credit Memos</span></a></li>
<li class="level1"> <a class="dropdown-toggle" href="#" class=""><span>Transactions</span></a></li>
<li class="level1"> <a class="dropdown-toggle" href="#" class=""><span>Recurring Profiles (beta)</span></a></li>
<li class="level1"> <a class="dropdown-toggle" href="#" class=""><span>Billing Agreements</span></a></li>
<li class="level1"> <a class="dropdown-toggle" href="#" class=""><span>Terms and conditions</span></a></li>
<li onmouseover="Element.addClassName(this,'over')" onmouseout="Element.removeClassName(this,'over')" class=" parent dropdown last level1"> <a class="dropdown-toggle" href="#" onclick="return false" class=""><span>Tax</span></a>
<ul class="nav"> <!--Need to add .dropdown-menu here-->
<li class="level2"> <a class="dropdown-toggle" href="#" class=""><span>Manage Tax Rules</span></a></li>
<li class="level2"> <a class="dropdown-toggle" href="#" class=""><span>Manage Tax Zones & Rates</span></a></li>
<li class="level2"> <a class="dropdown-toggle" href="#" class=""><span>Import / Export Tax Rates</span></a></li>
<li class="level2"> <a class="dropdown-toggle" href="#" class=""><span>Customer Tax Classes</span></a></li>
<li class="last level2"> <a class="dropdown-toggle" href="#" class=""><span>Product Tax Classes</span></a></li>
</ul>
</li>
</ul>
</li>
<!--THE PHP-->
<?php
public function getMenuLevel($menu, $level = 0)
{
$html = '<ul class="nav" ' . (!$level ? 'id="nav"' : '') . '>' . PHP_EOL;
foreach ($menu as $item) {
$html .= '<li ' . (!empty($item['children']) ? 'onmouseover="Element.addClassName(this,\'over\')" '
. 'onmouseout="Element.removeClassName(this,\'over\')"' : '') . ' class="'
. (!$level && !empty($item['active']) ? ' active' : '') . ' '
. (!empty($item['children']) ? ' parent dropdown' : '')
. (!empty($level) && !empty($item['last']) ? ' last' : '')
. ' level' . $level . '"> <a class="dropdown-toggle" href="' . $item['url'] . '" '
. (!empty($item['title']) ? 'title="' . $item['title'] . '"' : '') . ' '
. (!empty($item['click']) ? 'onclick="' . $item['click'] . '"' : '') . ' class="'
. ($level === 0 && !empty($item['active']) ? 'active' : '') . '"><span>'
. $this->escapeHtml($item['label']) . '</span></a>' . PHP_EOL;
if (!empty($item['children'])) {
$html .= $this->getMenuLevel($item['children'], $level + 1);
}
$html .= '</li>' . PHP_EOL;
}
$html .= '</ul>' . PHP_EOL;
return $html;
}
-
-
我不能很好地测试它,因为我没有空间来放置所有这些字段和其他部分,但是我看到你有一个递归调用的函数。这将导致第二个“id=“nav””
公共函数getMenuLevel($menu,$level=0)
{
/*此处声明id=“nav”*/
$html='';
foreach($菜单作为$项){
$html.='”.PHP_EOL;
如果(!空($item['children'])){
/*此行再次调用该函数,这将导致id=“nav”再次发生*/
$html.=$this->getMenuLevel($item['children',$level+1);
}
$html.=''.PHP\u EOL;
}
$html.='
'.PHP\u EOL;
返回$html;
}
有一种猜测是为了更好地检查$level是什么,因为我认为您的$级别可能给出了错误的答案
public function getMenuLevel($menu, $level = 0)
{
$idnav = '';
if ($level === 0)
$idnav = 'id="nav"';
$html = '<ul class="nav" ' . $idnav . '>' . PHP_EOL;
foreach ($menu as $item) {
$html .= '<li ' . (!empty($item['children']) ? 'onmouseover="Element.addClassName(this,\'over\')" '
.....
公共函数getMenuLevel($menu,$level=0)
{
$idnav='';
如果($level==0)
$idnav='id=“nav”';
$html=''.PHP\u EOL;
foreach($菜单作为$项){
$html.='
public function getMenuLevel($menu, $level = 0)
{
$idnav = '';
if ($level === 0)
$idnav = 'id="nav"';
$html = '<ul class="nav" ' . $idnav . '>' . PHP_EOL;
foreach ($menu as $item) {
$html .= '<li ' . (!empty($item['children']) ? 'onmouseover="Element.addClassName(this,\'over\')" '
.....
<?php
public function getMenuLevel($menu, $level = 0)
{
$html = '<ul class="nav" ' . (!$level ? 'id="nav"' : '') . '>' . PHP_EOL;
/*notice*/
while (!empty($item['children'])) {
foreach ($menu as $item) {
$html .= '<li ' . (!empty($item['children']) ? 'onmouseover="Element.addClassName(this,\'over\')" '
. 'onmouseout="Element.removeClassName(this,\'over\')"' : '') . ' class="'
. (!$level && !empty($item['active']) ? ' active' : '') . ' '
. (!empty($item['children']) ? ' parent dropdown' : '')
. (!empty($level) && !empty($item['last']) ? ' last' : '')
. ' level' . $level . '"> <a class="dropdown-toggle" href="' . $item['url'] . '" '
. (!empty($item['title']) ? 'title="' . $item['title'] . '"' : '') . ' '
. (!empty($item['click']) ? 'onclick="' . $item['click'] . '"' : '') . ' class="'
. ($level === 0 && !empty($item['active']) ? 'active' : '') . '"><span>'
. $this->escapeHtml($item['label']) . '</span></a>' . PHP_EOL;
}
/* here is the tricky part */
$html .= '</li>' . PHP_EOL;
$html .= $this->getMenuLevel($item['children'], $level + 1);
}
$html .= '</ul>' . PHP_EOL;
return $html;
}
?>