Санкт-Петербург

Фермское шоссе 30, офис 111

Пн-Пт 9:30 - 18:00

Москва

ул.Большая Андроньевская, д.23, стр.1

Пн-Пт 9:00 - 18:00

оставить заявку
Мы - NASTARTWEB

узнать о нас

мощная команда для вашего бизнеса

Все о сайдбарах в Битрикс

Все о сайдбарах в Битрикс

SIDEBAR or not SIDEBAR?

Все, что вы должны знать о сайдбарах при внедрении сайтов под Битрикс.

Часто бывает так, что страницы сайта немного отличаются по структуре. На одних есть сайдбар, на других нет. На одних есть левое меню, другие - полноэкранные. В этой статье мы рассмотрим все возможные варианты.


Что делать, если на главной странице нет левого (правого) меню, а на остальных есть? Tip & Tricks для сайтов на Битрикс.

Этот вариант - самый простой в реализации. Не нужно создавать разные шаблоны для одного сайта только из-за того, что главная страница отличается от остальных. Достаточно просто использовать конструкцию

<? /* Если мы НЕ находимся на главной */ ?>
<? if(!CSite::InDir('/index.php')): ?>
<? endif; ?>

То есть, вы внедряете шаблон, и после обозначения главного контейнера будет что-то вроде этого:

<?php if(!CSite::InDir('/index.php')): ?>
<?php
/** Заголовок **/
$APPLICATION->ShowTitle(false);
?>


<?php
/** Крошки **/
$APPLICATION->IncludeComponent(
"bitrix:breadcrumb",
"",
Array(
"COMPONENT_TEMPLATE" => ".default",
"PATH" => "",
"SITE_ID" => "-",
"START_FROM" => "0"
)
);
?>

<!-- Левый сайдбар -->
<div class="col-lg-3">
Здесь может быть левое меню, включаемая область или любой другой компонент.
</div>

<!-- Рабочая область -->
<div class="col-lg-9">
<?php endif; ?>

#WORK_AREA#

<?php if(!CSite::InDir('/index.php')): ?>
<!-- Закрываем рабочую область -->
</div>
<?php endif;?>

Что делать, если сайдбар нужен только в каталоге?

Для этого в настройках комплексного компонента Каталог есть галочка Показывать боковую панель в списке товаров: (если сайдбар нужен в списке товаров) и Показывать боковую панель на детальной странице: (если сайдбар нужен в детальной карточке товара). Указываем в поле Путь к включаемой области для вывода информации в боковой панели: путь к области, например /include/catalog.php. Добавляем файл, расположенный по указанному пути и о чудо! сайдбар появляется в каталоге.

NB: если сайдбар нужен на общей странице каталога, то копируем следующий код в sections.php

<?php if($isSidebar): ?>
<div class="col-lg-3">
<?php
$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
array(
"AREA_FILE_SHOW" => "file",
"PATH" => $arParams["SIDEBAR_PATH"],
"AREA_FILE_RECURSIVE" => "N",
"EDIT_MODE" => "html",
),
false,
array('HIDE_ICONS' => 'Y')
);
?>
</div>
<?php endif; ?>

Что делать, если сайдбар нужен на некоторых страницах сайта, выборочно?

В этом случае разумнее всего использовать свойства страницы.

Из визуальной части.

На панели управления Изменить раздел - Свойства раздела - Редактировать свойства папки в панели управления. В открывшейся форме, вкладка Свойства Каталога. В левом столбце пишем название свойства, например SIDEBAR, в правом - значение, например Y.

После этого мы можем обратиться к этому свойству из шаблона сайта

<?php if($APPLICATION->GetProperty("SIDEBAR") == "Y"): ?>
<!-- Левый сайдбар -->
<div class="col-lg-3">
Здесь может быть левое меню, включаемая область или любой другой компонент.
</div>
<?php endif;?>

В принципе, если таких страниц 2-3, то можно использовать решение для пункта 1. Только вместо index.php указывать название каталога, например

<? if(CSite::InDir('/contacts/') && CSite::InDir('/page/')):?>
Здесь ваш код
<? endif; ?>

Однако, советую использовать такие конструкции ТОЛЬКО в том случае, если страниц действительно 2-3, и вы точно это знаете. Иначе придется каждый раз при добавлении новой страницы с сайдбаром править код шаблона.

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

И не забывайте делать все правильно!

Будем рады сотрудничать с вами