Столкнулся с тем, что нужно ограничить глубину меню до 2-х уровней.
Есть такое меню:
-кнопка 1
--субкнопка 1
--субкнопка 1
---субсубкнопка 1
Мне нужно что бы максимальная глубина была 2 уровня т.е.:
-кнопка 1
--субкнопка 1
--субкнопка 1
Вариант с JS или CSS костылями не годится, нужно что бы 3-го и последующих уровней не было в исходном html коде.
Буду рад подсказкам и помощи в поиске решения!
Есть такой модуль: http://drupal.org/project/menu_depth_limit но он для D7, а я на D6 работаю
Комментарии
Попробуйте добавить в block.tpl.php своей темы такую штуку
<?php
$document->preserveWhiteSpace = false;
$ul = $document->getElementsByTagName('ul');
if(($block->module=='menu')&&($block->delta=='menu-my'))
{
$document = new domDocument();
$document->loadHTML($block->content);
$newMenu = $document->createElement("ul");
$newMenu->setAttribute("class","menu");
foreach($ul->item(0)->childNodes as $childNode)
{
if($childNode->nodeName=='li')
{
$currentLi = $childNode->cloneNode(true);
if($currentLi->childNodes->length > 1)
{
$childUl = $currentLi->getElementsByTagName('ul')->item(0);
foreach($childUl->childNodes as $childUlChildNode)
{
if($childUlChildNode->nodeName=='li')
{
if($childUlChildNode->childNodes->length > 1)
{
$childChildUl = $childUlChildNode->getElementsByTagName('ul')->item(0);
$childUlChildNode->removeChild($childChildUl);
}
}
}
}
$newMenu->appendChild($currentLi);
}
}
$block->content = $newMenu->ownerDocument->saveXML($newMenu);
}
?>Попробуйте добавить в block.tpl.php своей темы такую штуку
<?php
$document->preserveWhiteSpace = false;
$ul = $document->getElementsByTagName('ul');
if(($block->module=='menu')&&($block->delta=='menu-my'))
{
$document = new domDocument();
$document->loadHTML($block->content);
$newMenu = $document->createElement("ul");
$newMenu->setAttribute("class","menu");
foreach($ul->item(0)->childNodes as $childNode)
{
if($childNode->nodeName=='li')
{
$currentLi = $childNode->cloneNode(true);
if($currentLi->childNodes->length > 1)
{
$childUl = $currentLi->getElementsByTagName('ul')->item(0);
foreach($childUl->childNodes as $childUlChildNode)
{
if($childUlChildNode->nodeName=='li')
{
if($childUlChildNode->childNodes->length > 1)
{
$childChildUl = $childUlChildNode->getElementsByTagName('ul')->item(0);
$childUlChildNode->removeChild($childChildUl);
}
}
}
}
$newMenu->appendChild($currentLi);
}
}
$block->content = $newMenu->ownerDocument->saveXML($newMenu);
}
?>