Your IP : 18.219.134.159


Current Path : /home/bitrix/ext_www/rk_shared_core/
Upload File :
Current File : /home/bitrix/ext_www/rk_shared_core/.top.menu_ext.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;

$aMenuLinksExt = array();
$aMenuLinksNew = array();

$resMenu = CIBlockSection::GetList(
	Array("left_margin" => "asc"),
	//Array("ACTIVE"=>"Y","GLOBAL_ACTIVE"=>"Y","IBLOCK_ID"=>IBLOCK_CATALOG, "UF_EXTERNAL_LINK"=>false),
	Array("ACTIVE" => "Y", "GLOBAL_ACTIVE" => "Y", "IBLOCK_ID" => IBLOCK_CATALOG, "ELEMENT_SUBSECTIONS" => "Y", "CNT_ACTIVE" => "Y"),
	true,
    Array(
		"ID",
		"DEPTH_LEVEL",
		"NAME",
		"PICTURE",
		"SECTION_PAGE_URL",
		"LIST_PAGE_URL",
		"UF_EXTERNAL_LINK",
		"UF_GROUP"
	),
	false
);
//$menuIndex = 0;
$previousDepthLevel = 1;
$startIndex = 0;
while($obMenu = $resMenu->GetNext()) {
	if($obMenu['ELEMENT_CNT'] == 0 && $obMenu['ID'] != 2213) continue; // Пропускаем пустые разделы, кроме Бытовой Техники (2213)
	if ($startIndex > 0)
		$aMenuLinksNew[$startIndex - 1][3]["IS_PARENT"] = $obMenu["DEPTH_LEVEL"] > $previousDepthLevel;
	$previousDepthLevel = $obMenu["DEPTH_LEVEL"];
	$aMenuLinksNew[] = Array(
		$obMenu['NAME'],
		($obMenu['UF_EXTERNAL_LINK'] ? $obMenu['UF_EXTERNAL_LINK'] : $obMenu['SECTION_PAGE_URL']),
		Array($obMenu['SECTION_PAGE_URL']),
		Array(
			'FROM_IBLOCK' => true,
			'CATALOG' => false,
			'PICTURE' => $obMenu['PICTURE'],
			'IS_PARENT' => false,
			'DEPTH_LEVEL' => $obMenu['DEPTH_LEVEL'],
			'GROUP' => $obMenu['UF_GROUP']
		),
		""
	);
	if($obMenu["DEPTH_LEVEL"] == 1)
		$aMenuLinksNew[$startIndex][3]['CATALOG'] = true;
	$startIndex++;
}


// Получаем список групп нулевого уровня и пересобираем меню относительно него
$arTopLevelGroups = array();
$ob = CUserTypeEntity::GetList(array(),array(
	'ENTITY_ID' => 'IBLOCK_'.IBLOCK_CATALOG.'_SECTION',
	'FIELD_NAME' => 'UF_GROUP'
));
if($ar = $ob->Fetch()){
	$groupFieldId = $ar['ID'];
}

$ob = CUserFieldEnum::GetList(array('SORT' => 'ASC'), array(
	'USER_FIELD_ID' => $groupFieldId
));
while($ar = $ob->Fetch()){
	$arTopLevelGroups[] = array(
		$ar['VALUE'],
		'',
		Array(),
		Array(
			'FROM_IBLOCK' => true,
			'CATALOG' => false,
			'PICTURE' => false,
			'IS_PARENT' => true,
			'DEPTH_LEVEL' => 1,
		),
		""
	);
	$branchValid = false;
	foreach ($aMenuLinksNew as $key => $aMenu) {
		if($aMenu[3]['DEPTH_LEVEL'] == 1){
			$branchValid = ($aMenu[3]['GROUP'] == $ar['ID']);
		}
		if($branchValid){
			$aMenu[3]['DEPTH_LEVEL'] += 1;
			$arTopLevelGroups[] = $aMenu;
		}
	}
}

$aMenuLinks = array_merge($arTopLevelGroups, $aMenuLinks);
//dump($aMenuLinks);