Bitrix Проверка принадлежности текущей категории определенному родительскому инфоблоку

Иногда необходимо проверить что какой-либо раздел каталога является потомком какого-то другого раздела, но при этом мы не знаем сколько уровней вложености может разделять две категории.
В таким случая очень сильно помогает концепция вложеных множеств, которую реализует механизм инфоблоков Bitrix.
Основываясь на этих вложеных множествах можно применить вот такой код:
$checkFilterAvailable = function($currentId, $parentId) {
        $rs = CIBlockSection::GetList(
            array(),
            array('ID'=>$parentId)
        );
        $ar = $rs->GetNext();
        $rs = CIBlockSection::GetList(
            array('LEFT_MARGIN'=>'ASC'),
            array(
                'ID' => $currentId,
                '>LEFT_MARGIN'=>$ar['LEFT_MARGIN'],
                '<RIGHT_MARGIN'=>$ar['RIGHT_MARGIN'],
            )
        );
        if ($rs->GetNext()) {
            return true;
        }
        return false;
    };

Комментарии

Популярные сообщения из этого блога

Установка утилиты yandex disk для ubuntu

Отправка пост запроса AngularJS