В случае когда необходимо отображать информацию только на главной странице, на помощь приходит Bitrix API. Рассмотрим несколько случаев, в которых вам стоит применять подобные проверки.
Вывод информации только на главной странице в Битриксе
<?if($APPLICATION->GetCurPage() == "/"):?> <!-- текст или компонент --> <?endif;?>
Или такой вариант:
<?if($APPLICATION->GetCurPage() == "/index.php"){
#ваш код
}?>
Большой разницы быть не должно. Вместо GetCurPage() можем попробовать GetCurDir():
<?if($APPLICATION->GetCurDir() == "/") {}?>
Как отобразить информацию везде кроме главной страницы
В новых шаблона Битрикса встречается следующий вариант:
<?$curPage = $APPLICATION->GetCurPage(true);?> <?if ($curPage != SITE_DIR."index.php"):?> <h1><?=$APPLICATION->ShowTitle(false);?></h1> <?endif?>
Но я обычно использовал в этих случаях более короткую запись
<?if($APPLICATION->GetCurPage() != "/"){?>
<?}?>
Какой вариант использовать — это уже на ваше усмотрение.
1С-Битрикс: Как отображать информацию на определенном разделе
Рассмотрим пример, когда нужно показывать информацию не только в разделе ‘catalog’, но и на его внутренних разделах и страницах (то есть, на всех страницах, в урле которых встречается /catalog/):
<?
$p1 = "/catalog/";
if (strstr($APPLICATION->GetCurDir(), $p1)) {?>
<!-- ваш код -->
<?}?>
где $p1 — ваш раздел, а strstr — проверяет первое вхождение подстроки.
ПС — документация PHP рекомендует использовать в таких случаях strpos вместо strstr.
Но есть и нормальное решение Но работает исключительно с папками:
<?if(CSite::InDir('/about/')) {
}?>
Ну и что касается вывода информации на разделе, можем использовать следующий код:
<?if ($APPLICATION->GetCurDir() == "/catalog/") {?>
<!-- ваш код -->
<?}?>
