Данный компонент выводит список инфоблоков заданного типа, пытаюсь сделать чтобы у каждого инфоблока выводился свой список разделов
component.php
template.php
В данном случае выводится список всех разделов со всех инфоблоков при выводе каждого инфоблока
component.php
| Код |
|---|
$rsIBlocks = CIBlock::GetList($arSort, $arFilter);
while($arIBlock = $rsIBlocks->GetNext())
{
$arIBlock["PICTURE"] = CFile::GetFileArray($arIBlock["PICTURE"]);
$arIBlock["~LIST_PAGE_URL"] = str_replace(
array("#SERVER_NAME#", "#SITE_DIR#", "#IBLOCK_TYPE_ID#", "#IBLOCK_ID#", "#IBLOCK_CODE#", "#IBLOCK_EXTERNAL_ID#", "#CODE#"),
array(SITE_SERVER_NAME, SITE_DIR, $arIBlock["IBLOCK_TYPE_ID"], $arIBlock["ID"], $arIBlock["CODE"], $arIBlock["EXTERNAL_ID"], $arIBlock["CODE"]),
strlen($arParams["IBLOCK_URL"])? trim($arParams["~IBLOCK_URL"]): $arIBlock["~LIST_PAGE_URL"]
);
$arIBlock["~LIST_PAGE_URL"] = preg_replace("'/+'s", "/", $arIBlock["~LIST_PAGE_URL"]);
$arIBlock["LIST_PAGE_URL"] = htmlspecialcharsbx($arIBlock["~LIST_PAGE_URL"]);
$arResult["ITEMS"][]=$arIBlock;
/***** начало патча *******/
$scFilter = array ("IBLOCK_ID"=>$arIBlock["ID"]);
$scOrder = array("LEFT_MARGIN"=>"ASC");
$scSelect = array("ID", "CODE", "NAME", "DESCRIPTION", "IBLOCK_ID");
$rsElementing = CIBlockSection::GetList($scOrder, $scFilter, false, $scSelect, false);
while($obElementing = $rsElementing->GetNextElement())
{
$arElementing = $obElementing->GetFields();
if ($arElementing["PREVIEW_PICTURE"]) {
$arElementing["PREVIEW_PICTURE"] = CFile::GetFileArray($arElementing["PREVIEW_PICTURE"]);
}
$arResult[$arSection['ID']]["ITEMS"][] = $arElementing;
};
/**** конец патча *******/
}
$this->IncludeComponentTemplate(); |
template.php
| Код |
|---|
<?foreach($arResult["ITEMS"] as $arItem):?> <div class="finding"> <div style="width:250px;margin-left:2px"> <?if($arItem["LIST_PAGE_URL"]):?> <center><a style="vertical-align:middle;" href="<?=$arItem["LIST_PAGE_URL"]?>"><?=$arItem["NAME"]?></a></center> <?else:?> <span style="vertical-align:middle;"><?=$arItem["NAME"]?></span> <?endif?> <?if(is_array($arItem["PICTURE"])):?> <a style="vertical-align:middle;" href="<?=$arItem["LIST_PAGE_URL"]?>"><img style="vertical-align:middle;" border="0" src="<?=$arItem["PICTURE"]["SRC"]?>" width="<?=$arItem["PICTURE"]["WIDTH"]?>" height="<?=$arItem["PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>" /></a><?endif?> </div> <?foreach($arResult[$arSection['ID']]["ITEMS"] as $arItems):?> <?print_r($arItems["NAME"]);?> <?endforeach;?> </div> <?endforeach;?> |
В данном случае выводится список всех разделов со всех инфоблоков при выводе каждого инфоблока