в коде шаблона сайта этот кусок отвечает за вывод меню на всех страничках
Код |
---|
<?$APPLICATION->IncludeFile(
$APPLICATION->GetTemplatePath("include_areas/menu.php"),
Array(),
Array("MODE"=>"php")
);?>
|
в файле
menu.php используется код в первом сообщении
.Код |
---|
<?
if(CModule::IncludeModule("iblock"){
$IBLOCK_ID = 5;
$arFilter = Array('IBLOCK_ID'=>$IBLOCK_ID, 'GLOBAL_ACTIVE'=>'Y');
$db_list = CIBlockSection::GetList(Array("left_margin"=>"asc", $arFilter, true);
$arView = array();
while($ar_result = $db_list->GetNext()){
$arView[] = $ar_result;
}
// echo"<pre>";
// print_r($arView);
// echo"</pre>";
$depth = 1;
echo"<ul class='lmenu'>";
$arActive = array();
if($_REQUEST["SECTION_ID"]{
$nav = CIBlockSection::GetNavChain(false, intVal($_REQUEST["SECTION_ID"]);
$arActive = array();
while($tt = $nav->Fetch()){
if($_REQUEST["SECTION_ID"] != $tt["ID"]
$arActive[] = $tt["ID"];
}
}
foreach($arView as $key=>$item){
if($depth > $item['DEPTH_LEVEL']
echo str_repeat('</li></ul></li>',($depth-$item['DEPTH_LEVEL']);
if($depth == $item['DEPTH_LEVEL'] && $key > 0)
echo'</li>';
if($item['DEPTH_LEVEL'] =="3"
echo'</li>';
if($depth < $item['DEPTH_LEVEL']
echo'<ul class="'.str_repeat('sub',$depth).'">';
if(!in_array($item['ID'],$arActive)){
echo'<li>';
}
else{
echo'<li class="active">';
}
?>
<a title="<?=$item['NAME']?>" href="<?=$item['SECTION_PAGE_URL']?>"><?=$item['NAME']?></a>
<?
//echo $item['NAME'].' '.$item['DEPTH_LEVEL'];
$depth = $item['DEPTH_LEVEL'];
}
echo str_repeat('</li></ul>',($depth-1));
echo"</ul>";
}
?>
|
Во втором сообщении как раз и привел кусок html кода, что получается при работе скрипта, там ошибка в лишнем закрытии </li> как мне кажется при значении
Код |
---|
if($item['DEPTH_LEVEL'] =="3"
echo'</li>';
|
но в одном случае их надо закрывать когда вложении первое, а когда второе не надо или я что то не понимаю