Вывод информации только на главной странице в Битриксе
Перейдем от долгих вступлений сразу к делу. Собственно код:
<?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. Но есть и нормальное решение