Yulo
Постоялец
- Регистрация
- 21 Апр 2008
- Сообщения
- 153
- Реакции
- 179
- Автор темы
- #1
Задача думаю очень простая для тех кто знаком с php/ Вот код который выводит меню нужной иерархии
У элементов меню есть порядковый номер 1,2,..50..129..241.. и т.д. Я так понял что вот этот кусок кода
выводит мне сейчас меню в 2 колонки, если у элелемента стоит номер меньше или равно 100 он в одну колонку идет если больше то уже в другую. Как подправить этот код чтоб я мог поделить меню на 4 колонки тоесть если я проставлю элементам номера меньше 100 от 101-200 от 201-300 и 301-400.
Вот кусок кода в шаблоне
PHP:
<?if (!empty($arResult)){
$i = 0;
$b = 0;
foreach($arResult as $arElement){
if($arElement["DEPTH_LEVEL"] == 1){
$i++;
$sectionID = $arElement["PARAMS"]["ID"];
$IBLOCK_ID = $arElement["PARAMS"]["IBLOCK_ID"];
$arResult["SECTIONS"][$sectionID] = $sectionID;
$arResult["ITEMS"][$i] = array(
"TEXT" => $arElement["TEXT"],
"LINK" => $arElement["LINK"],
"ID" => $arElement["PARAMS"]["ID"],
"SELECTED" => $arElement["SELECTED"],
"PICTURE" => $arElement["PARAMS"]["PICTURE"],
"DETAIL_PICTURE" => $arElement["PARAMS"]["DETAIL_PICTURE"],
"UF_DESC" => $arElement["PARAMS"]["UF_DESC"],
"IBLOCK_ID" => $arElement["PARAMS"]["IBLOCK_ID"],
"ELEMENT_CNT" => $arElement["PARAMS"]["ELEMENT_CNT"]
);
}
elseif($arElement["DEPTH_LEVEL"] == 2){
$b++;
$from = $arElement["PARAMS"]["FROM_IBLOCK"] <= 100 ? 1 : 2;
$arResult["SECTIONS"][$arElement["PARAMS"]["ID"]] = $sectionID;
$arResult["ITEMS"][$i]["ELEMENTS"][$from][$b] = array(
"TEXT" => $arElement["TEXT"],
"LINK" => $arElement["LINK"],
"SELECTED" => $arElement["SELECTED"],
"ELEMENT_CNT" => $arElement["PARAMS"]["ELEMENT_CNT"]
);
}elseif($arElement["DEPTH_LEVEL"] == 3){
$arResult["SECTIONS"][$arElement["PARAMS"]["ID"]] = $sectionID;
$arResult["ITEMS"][$i]["ELEMENTS"][$from][$b]["ELEMENTS"][] = array(
"TEXT" => $arElement["TEXT"],
"LINK" => $arElement["LINK"],
"SELECTED" => $arElement["SELECTED"],
"ELEMENT_CNT" => $arElement["PARAMS"]["ELEMENT_CNT"]
);
}
}
}
?>
У элементов меню есть порядковый номер 1,2,..50..129..241.. и т.д. Я так понял что вот этот кусок кода
PHP:
$from = $arElement["PARAMS"]["FROM_IBLOCK"] <= 100 ? 1 : 2;
Вот кусок кода в шаблоне
PHP:
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?$this->setFrameMode(true);?>
<?if (!empty($arResult)):?>
<ul id="leftMenu">
<?foreach($arResult["ITEMS"] as $nextElement):?>
<li<?if($nextElement["SELECTED"]):?> class="selected"<?endif;?>><a href="<?=$nextElement["LINK"]?>"><ins><?=(!empty($nextElement["PICTURE"]["src"]) ? '<img src="'.$nextElement["PICTURE"]["src"].'" alt="">' : '')?><span><?=$nextElement["TEXT"]?></span></ins></a>
<div class="drop">
<?if(count($nextElement["ELEMENTS"][1])):?>
<ul>
<?foreach($nextElement["ELEMENTS"][1] as $next2Elements):?>
<li><a href="<?=$next2Elements["LINK"]?>"><span><?=$next2Elements["TEXT"]?></span></a></li>
<?if(!empty($next2Elements["ELEMENTS"])):?>
<?foreach($next2Elements["ELEMENTS"] as $next3Elements):?>
<li><a href="<?=$next3Elements["LINK"]?>"><?=$next3Elements["TEXT"]?></a></li>
<?endforeach;?>
<?endif;?>
<?endforeach?>
</ul>
<?endif;?>
<?if(count($nextElement["ELEMENTS"][2])):?>
<ul>
<?foreach($nextElement["ELEMENTS"][2] as $next2Elements):?>
<li><a href="<?=$next2Elements["LINK"]?>"><span><?=$next2Elements["TEXT"]?></span></a></li>
<?if(!empty($next2Elements["ELEMENTS"])):?>
<?foreach($next2Elements["ELEMENTS"] as $next3Elements):?>
<li><a href="<?=$next3Elements["LINK"]?>"><?=$next3Elements["TEXT"]?></a></li>
<?endforeach;?>
<?endif;?>
<?endforeach?>
</ul>
<?endif;?>
<?if(!empty($nextElement["DETAIL_PICTURE"])):?>
<ol>
<li><span><?=$nextElement["TEXT"]?></span></li>
<li><a href="<?=$nextElement["LINK"]?>" class="pic"><img src="<?=$nextElement["DETAIL_PICTURE"]["src"]?>" alt="<?=$nextElement["TEXT"]?>"></a></li>
<?=str_replace("#SITE_DIR#", SITE_DIR, $nextElement["UF_DESC"])?>
</ol>
<?endif;?>
</div>
</li>
<?endforeach;?>
</ul>
<?endif?>