В случае когда необходимо отображать информацию только на главной странице, на помощь приходит 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/") {?> <!-- ваш код --> <?}?>