Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Битрикс Битрикс
27.02.2018

Битрикс. Вывести только на главной

В 1С-Битрикс часто возникает задача вывести блок только на главной странице сайта.

Например:

  • баннер;
  • SEO-текст;
  • приветственное сообщение;
  • слайдер;
  • форма подписки;
  • спецпредложение.

Для этого можно использовать:

<?if ($GLOBALS["APPLICATION"]->GetCurPage() == "/"):?>

    <div>
        Только на главной
    </div>

<?endif;?>

Как работает GetCurPage()

Метод:

$APPLICATION->GetCurPage()

возвращает:

  • URL текущей страницы.

Для главной страницы метод вернет:

/

Проверка главной страницы

Условие:

== "/"

проверяет, находится ли пользователь на главной странице сайта.

Пример использования

Например, вывод баннера только на главной:

<?if ($APPLICATION->GetCurPage() == "/"):?>

    <section class="home-banner">
        Баннер только на главной
    </section>

<?endif;?>

Если страница НЕ главная

Если нужно выполнить условие наоборот, просто меняем:

==

на:

!=

Получится:

<?if ($APPLICATION->GetCurPage() != "/"):?>

    <div>
        Только НЕ на главной
    </div>

<?endif;?>

Что можно скрывать на внутренних страницах

  • большие баннеры;
  • hero-блоки;
  • SEO-тексты;
  • промо-блоки;
  • слайдеры;
  • спецпредложения.

Более правильный способ

В Битрикс есть специальный метод:

$APPLICATION->GetCurDir()

Или:

CSite::InDir()

Например:

<?if ($APPLICATION->GetCurDir() == "/"):?>
    Главная страница
<?endif;?>

Когда лучше использовать GetCurDir()

Метод:

GetCurDir()

удобен:

  • для проверки разделов;
  • каталогов;
  • вложенных URL;
  • директорий сайта.

Пример проверки раздела

<?if (CSite::InDir('/catalog/')):?>

    Блок только в каталоге

<?endif;?>

Где используется такая проверка

  • header.php;
  • footer.php;
  • шаблоны компонентов;
  • include-области;
  • layout-шаблоны.

Итог

Для проверки, является ли страница главной, можно использовать:

$APPLICATION->GetCurPage() == "/"

А для обратного условия:

$APPLICATION->GetCurPage() != "/"

Это простой способ выводить разные блоки на главной и внутренних страницах сайта.

15 просмотров

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться