Если папка то применяем, проверка текущего раздела или подраздела

Просмотров: 38251

Иногда требуется применить особый стиль к определённой директории сайта или управлять выводом элементов на странице в зависимости от текущего URL. Для этого в 1С-Битрикс можно использовать встроенные методы, такие как CMain::GetCurPage или CSite::InDir. Эти методы помогают определять текущий путь или каталог, а затем использовать его для динамического изменения верстки или стилей. Рассмотрим несколько примеров.

Метод CMain::GetCurPage

Метод CMain::GetCurPage возвращает путь к текущей странице без параметров. Это полезно, когда нужно применить стили или выполнить определённый код на конкретной странице.

Пример: Предположим, задача — применить класс для элемента

  • в разделе /company/. Если пользователь находится в директории /company/, элементу будет присвоен класс company, на всех остальных страницах будет применяться класс nocompany.

    
    <li <?if ($APPLICATION->GetCurDir()=='/company/'):?>class="company"<?else:?> class="nocompany"<?endif;?>>
        содержимое
    </li>
    

    Условие для вложенных директорий

    Метод CSite::InDir позволяет применить условие не только для конкретной директории, но и для всех её поддиректорий.

    Пример: Если требуется активировать класс для каталога /metalworking/ и всех его подкаталогов:

    <li <?if(CSite::InDir('/metalworking/')):?>class="active"<?endif;?> class="noactive">

    Пример для исключения aside в определённых разделах

    Представим ситуацию, где на сайте несколько разделов имеют одноколоночную верстку, и нужно не выводить боковую колонку aside в этих разделах.

    <?if ( 
    	($APPLICATION->GetCurDir()=='/designes/ready-made-html-layouts/')
    	|| ($APPLICATION->GetCurDir()=='/designes/adaptive-html/')
    	 || ($APPLICATION->GetCurDir()=='/portfolio/')
    	|| ($APPLICATION->GetCurDir()=='/forum/')
     ):?>

    Здесь важно не злоупотреблять такими конструкциями, поскольку при большом количестве условий код становится сложным для понимания и поддержки.

    В данном примере эффективнее было бы создать и применять параметр разделов из настроек модуля "Управление структурой".

    Определение уровня раздела в каталоге

    Если нужно применить условие для определённого уровня каталога, можно воспользоваться переменной $arResult["SECTION"]["DEPTH_LEVEL"], которая указывает глубину текущего раздела.

    Пример: Для каталога уровней 1 или 2 можно применить следующую конструкцию:

    <?if(
        ($arResult["SECTION"]["DEPTH_LEVEL"]==1) || 
        ($arResult["SECTION"]["DEPTH_LEVEL"]==2)
    ):?>
        
    <?endif;?>

    Использование методов для определения текущего раздела и условий помогает сделать сайт более динамичным и удобным в управлении. Но важно помнить, что чрезмерное использование таких условий может привести к усложнению кода. В идеале, для более сложных случаев стоит использовать инструменты управления структурой сайта через административную панель Битрикс или отдельные шаблоны для разделов.

  • Стоимость разработки на 1С-Битрикс:

    Индивидуальная разработка магазина

    от 500 000 руб. от 5-ти недель

    Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

    Запуск сайта на готовом решении

    от 100 000 руб. от 7-ми дней

    Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

    Мобильное приложение

    от 500 000 руб. от 1-го месяца

    Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

    Сайт компании

    от 350 000 руб. от 1-го месяца

    Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

    Инфресурс

    от 400 000 руб. от 5-ти недель

    Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

    Лечение сайтов от вирусов

    от 40 000 руб. от 2-х дней

    Выполню полную проверку сайта и окружения. В случае обнаружения вирусов проведу полный комплекс лечения проекта и закрытия лазеек.