Битрикс. Вывести только на главной
В 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() != "/"
Это простой способ выводить разные блоки на главной и внутренних страницах сайта.
Комментарии