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

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

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

Например:

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

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

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

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

<?endif;?>

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

Метод:

$APPLICATION->GetCurPage()

возвращает:

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

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

/

В своих проектах я использую серверную инфраструктуру Timeweb Cloud

VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb Cloud
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

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

Условие:

== "/"

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

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

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

<?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() != "/"

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

78 просмотров

Если возникли сложности

Помогу разобраться с настройкой, исправить ошибки и реализовать решение под ваш проект.

Поддержка сайтов на 1С-Битрикс

Поддержка сайтов на 1С-Битрикс: быстрое решение ошибок, консультации, обучение сотрудников и сопровождение сайта. 
Резервирую время под ваш проект для оперативной помощи и стабильной работы сайта.
Подробнее
Где заказы?

Почему один сайт стабильно приносит заявки, а другой годами просто «висит в интернете»?

В телеграм-канале «Где заказы?» я разбираю реальные ошибки бизнеса, SEO, сайты, рекламу, воронки продаж и показываю, почему компании теряют клиентов и как это исправить.

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

Комментарии

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