Добрый день!
Есть каталог, со структурой
Код |
---|
Раздел1:
Подраздел1.1
Подраздел1.2
Раздел2:
Подраздел2.1
Подраздел2.1
*в подразделах могут быть еще вложенность подразделов и т.д.
|
В каждом Подразделе расположена номенклатура, у которой есть свойство "Применение". В каждом подразделе, может быть номенклатура с разным применением и возможно у одной номенклатуры быть несколько применений(в свойствах инфоблока - тип "строка", множественное).
Потребность:
Когда я нахожусь на странице Раздела, то выводится список всех применений номенклатуры, которая находятся в Подразделах.
Когда нахожусь в Подразделе, то выводится список применений номенклатуры, которая находится внутри данного подраздела (и т.д.).
Как можно данную потребность реализовать?
Вот пример нашего кода, но он некорректно срабатывает:
Код |
---|
$uri = explode("/", $_SERVER["REQUEST_URI"]);
$arFilter = array("CODE" => $uri[2]); // выберет потомков без учета активности
$rsSect = CIBlockSection::GetList(array('left_margin' => 'asc'),$arFilter);
while ($arSect = $rsSect->GetNext()) {
$arSection = $arSect;
}
$arSection1["SECTION_PAGE_URL"] = "/catalog/".$arSection["CODE"]."/";
//dump($arResult, true);
$res = CIBlockSection::GetByID($arSection["IBLOCK_SECTION_ID"]);
if($ar_res = $res->GetNext()) {
$arSection2 = $ar_res;
}
if ($arSection2["CODE"] == "category" or $arSection2["SECTION_PAGE_URL"] == "/catalog_hub/".$arResult['CODE']."/") {
$arSection2["SECTION_PAGE_URL"] = "/catalog/".$arResult['CODE'];
}
if (!$arSection2["SECTION_PAGE_URL"]) {
$arSection2["SECTION_PAGE_URL"] = "/catalog/".$arResult['CODE'];
}
?>
<div style="width: 100%; border: 1px solid #dddddd; background: #f4f4f4;">
<?if ($arResult["ITEMS"]) {?>
<div style="width: 46%; float: left; padding: 10px; border-right: 1px solid #dddddd;">
<?$sect = array();?>
<?//$empl = array();?>
<?foreach ($arResult["ITEMS"] as $key => $arItem) {
if (!array_key_exists ($sect, $arItem["PROPERTIES"]["MANUFACTURER"]["VALUE"])) {
$sect[$arItem["PROPERTIES"]["MANUFACTURER"]["VALUE"]] = array("NAME" =>$arItem["PROPERTIES"]["MANUFACTURER"]["VALUE"]);
}
if (is_array($arItem["PROPERTIES"]["EMPLOYMENT"]["VALUE"])) {
foreach ($arItem["PROPERTIES"]["EMPLOYMENT"]["VALUE"] as $key => $arProp) {
if (!array_key_exists ($empl, $arProp)) {
$empl[$arProp] = array("NAME" => $arProp);
}
}
} else {
if (!array_key_exists ($empl, $arItem["PROPERTIES"]["EMPLOYMENT"]["VALUE"])) {
$empl[$arProp] = array("NAME" => $arItem["PROPERTIES"]["EMPLOYMENT"]["VALUE"]);
}
}
}
?>
<h3 style="color: black; border-bottom: 1px solid #dddddd; margin-left: 15px;">Применение</h3>
<?if ($empl) {?>
<ul>
<?foreach ($empl as $key => $arSection) {?>
<?echo "<pre>";
print_r($arProp);
echo "</pre>";?>
<li>
<a href="<?=$arSection1["SECTION_PAGE_URL"]?><?MANUFACTURER=<?=$arResult["NAME"]?>&?>?IBLOCK_ID=<?=$arResult["IBLOCK_ID"]?>"><?=$arSection["NAME"]?></a>
</li>
<?}?>
<?if (count($empl) > 1) {?>
<li>
<a href="<?=$arSection1["SECTION_PAGE_URL"]?>?IBLOCK_ID=<?=$arResult["IBLOCK_ID"]?>">Смотреть все</a>
</li>
<?}?>
</ul>
<?}?> |