Уважаемые профессионалы разработчики прошу вашей помощи.
Не судите строго, я не программист но надо решить задачу. В боковой панели хочу вывести структуру подразделов текущего раздела.
Надо передать 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"
.............................. |