Уважаемые профессионалы разработчики прошу вашей помощи.
Не судите строго, я не программист но надо решить задачу. В боковой панели хочу вывести структуру подразделов текущего раздела.
Надо передать id в этот компонент. Все бы ничего и в принципе мог бы передать через глобальную переменную, но компонент структуры разделов вызывается до компонента каталога.
Я набросал код (часть взята из этого форума) который разбирает url в массив и выбирает самое большое значение (у нас чем глубже раздел тем значение ID раздела больше) и потом передает его в компонент.
Помимо этого если пользователь находится в самом глубоком разделе то в компоненте должны выводиться не подразделы текущего раздела (у него их нет) а подразделы родительского раздела.
Прошу подсказать может есть более простой путь.
Заранее очень признателен.
Не судите строго, я не программист но надо решить задачу. В боковой панели хочу вывести структуру подразделов текущего раздела.
Надо передать id в этот компонент. Все бы ничего и в принципе мог бы передать через глобальную переменную, но компонент структуры разделов вызывается до компонента каталога.
Я набросал код (часть взята из этого форума) который разбирает url в массив и выбирает самое большое значение (у нас чем глубже раздел тем значение ID раздела больше) и потом передает его в компонент.
Помимо этого если пользователь находится в самом глубоком разделе то в компоненте должны выводиться не подразделы текущего раздела (у него их нет) а подразделы родительского раздела.
Прошу подсказать может есть более простой путь.
Код |
---|
$poluchaemurl = explode("/", $_SERVER["REQUEST_URI"]); //разбираем url по ключу "/" в массив $bezpustyh = array_diff($poluchaemurl, array('')); //удаляем пустые элементы массива $poslelement = end($bezpustyh); //получаем последний элемент $i = 0; //ключ $massivzn = array(); //новый массив foreach ($bezpustyh as $key => $value) { //перебираем массив $rsSections = CIBlockSection::GetList(array(),array('IBLOCK_ID' => "14", '=CODE' => $value)); if ($arSection = $rsSections->Fetch()) { $massivzn[$i] = $arSection['ID']; //записываем id раздела в массив } $arFiltertwo = Array( "IBLOCK_ID"=>"14", "SECTION_ID"=>$arSection['ID'] ); $proverkanaporazdely = CIBlockSection::GetCount($arFiltertwo); //проверяем на наличие подразделов у раздела if(!$proverkanaporazdely){ unset($massivzn[$i]); //если у раздела нет подразделов то удаляем id раздела из массива } $i++; //ключ +1 }; $znach = max($massivzn); //получаем максимальное значение в массиве if ($znach) //если значение существует {?> <?$APPLICATION->IncludeComponent( "bitrix:catalog.section.list" .............................. |