@Aleksander911

Как сделать проверку, что страница каталога на последнем уровне?

Доброго дня!
Имеется каталог с несколькими уровнями вложенности разделов и один объект надо выводить только на последнем уровне каталога.
Подскажите как такое можно реализовать?
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
AlexeyGfi
@AlexeyGfi
YouTube >>> Битриксоид из Колхоза
>>> и один объект надо выводить
===
Не ясно, что подразумевается под «объектом», лучше придерживаться терминологии, чтобы никто не путался.

>>> на последнем уровне каталога
===
То есть, внутри этого каталога нет вложенных разделов.
Либо инспектировать $arResult на предмет наличия списка подразделов текущего раздела, либо проверять самому.
Если результат вывода можно кешировать («объект» железно выводится по конкретному урлу), проводите проверку в result_modifier.php либо в template.php. Это всё закешируется, проверка будет произведена один раз.
Если результат варьируется от вызова к вызову, придётся выносить в component_epilog.php. Почему «придётся» — потому что такое уже сложно закешировать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Напишите функцию или метод какого нибудь класса-хелпера, который будет проверять по id раздела, есть ли внутри его подразделы, например так
function isChildSections($sectionId)
{
    $sectionIterator = \CIBlockSection::GetList(
        ['ID' => 'ASC'],
        [
            'SECTION_ID' => $sectionId
        ],
        false,
        ['ID'],
        [
            'nTopCount' => 1
        ]
    );

    return (bool) $sectionIterator->SelectedRowsCount();
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы