Simindey
3/12/2017 - 7:53 PM

Функция получения раздела по коду и инфоблоку

Функция получения раздела по коду и инфоблоку

<?
function GetSectionDataByCode($IBLOCK,$CODE){
    if(strlen(trim($CODE))<=0) return false;
    $cache_id = md5(serialize(array('IBLOCK_ID'=>$IBLOCK, 'CODE'=>$CODE)));
    $cache_dir = "/upload/tagged_getlist";
    $obCache = new CPHPCache;
    if($obCache->InitCache(36000, $cache_id, $cache_dir)){
        $arSection = $obCache->GetVars();
    } elseif(CModule::IncludeModule("iblock") && $obCache->StartDataCache()) {
        $arSection = false;
        global $CACHE_MANAGER;
        $SectFilter = Array('IBLOCK_ID'=>intval($IBLOCK), 'GLOBAL_ACTIVE'=>'Y', 'CODE'=>trim($CODE));
        $Sect_list = CIBlockSection::GetList(Array("ID"=>"DESC"), $SectFilter, false);
        if($Section = $Sect_list->GetNext())
        {
            $CACHE_MANAGER->RegisterTag("iblock_id_".$Section["ID"]);
            $arSection = $Section;
        }
        $CACHE_MANAGER->EndTagCache();
        $obCache->EndDataCache($arSection);
    } else {
        return false;
    }
    return $arSection;
}