1С-Битрикс: Как отображать информацию только на главной странице

В случае когда необходимо отображать информацию только на главной странице, на помощь приходит Bitrix API. Рассмотрим несколько случаев, в которых вам стоит применять подобные проверки.

Вывод информации только на главной странице в Битриксе

Перейдем от долгих вступлений сразу к делу. Собственно код:

Или такой вариант:

Большой разницы быть не должно. Вместо GetCurPage() можем попробовать GetCurDir():

Как отобразить информацию везде кроме главной страницы

В новых шаблона Битрикса встречается следующий вариант:

Но я обычно использовал в этих случаях более короткую запись

Какой вариант использовать — это уже на ваше усмотрение.

1С-Битрикс: Как отображать информацию на определенном разделе

Рассмотрим пример, когда нужно показывать информацию не только в разделе ‘catalog’, но и на его внутренних разделах и страницах (то есть, на всех страницах, в урле которых встречается /catalog/):

где $p1 — ваш раздел, а strstr — проверяет первое вхождение подстроки.
ПС — документация PHP рекомендует использовать в таких случаях strpos вместо strstr.

Но есть и нормальное решение 🙂 Но работает исключительно с папками:

Ну и что касается вывода информации на разделе, можем использовать следующий код:

Кстати говоря, такого рода проверка, встречалась мне и на других сайтах написанных на 1С-Битрикс. Ее использовали, чтобы задать мета-свойства для разделов, выведенных с помощью модуля новости.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года.

Предоставляю услуги по созданию проектов на CMS 1С-Битрикс - сайты, шаблоны и компоненты с нуля.

Другие виды работ:
  • Доработка функционала на уже существующих проектах
  • Вёрстка макетов (HTML, CSS, JavaScript, jQuery, JADE, SASS, Gulp)
  • Скрипты на PHP и JS (jQuery)

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.

E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

10 комментария

  1. GetCurPage() != «/»){?>

    Можно ли этот код использовать для нескольких страниц? Или какой-то другой нужно использовать? Есть, в общем, 4 каталога и 1 страница, где НЕ надо выводить кусок кода. Как это можно реализовать, не сталкивались?

    1. Добрый день. Ну вы можете написать что-то в стиле GetCurPage() != «/» || GetCurPage() != «/catalog/» || GetCurPage() != «/about/actions.php»){?> — используя либо логическое ИЛИ (||) или же используя логическое И (&& — заменить вместо ||). Вообще это такой себе вариант — он рабочий, но я не уверен что это можно отнести к «хорошей практике». В битриксе, в некоторых случаях, целесообразней использовать разные шаблоны для разных страниц, найти можно в настройках шаблона если вам понадобится подробная инструкция как применять другой шаблон отпишите я вам скрин пришлю 🙂

        1. Заходите вот сюда #ваш_сайт#/bitrix/admin/site_edit.php?lang=ru&LID=s1
          а тут вы выбираете для папки и файла — можно указывать как раздел так и страницу — http://joxi.ru/BA0Qk9TB6p6Rry
          также, можно выбрать шаблон который будет применяться к данному «условию». Всё должно быть довольно просто — вы копируете шаблон, на этой странице — #ваш_сайт#/bitrix/admin/template_admin.php?lang=ru называете его как угодно чтобы можно было найти 🙂 и уже правите header и footer вашего нового шаблона. Если у вас возникнут сложности напишите мне на почту, помогу — dmitriyribka@gmail.com

  2. Как правильно вывести условие для всех разделов каталога, кроме элементов
    например типа этого:
    if ($APPLICATION->GetCurDir() == «/catalog/раздел/возможно_подраздел/») {}

    нужно паттерн. но как правильно написать?

  3. Подскажи как сделать наоборот чтоб не отображался везде, кроме выбранного раздела к примеру /include/././
    Чтоб на всех страницах показ а в каталоге и товаре нет?

    1. нужно поставить отрицание в условие, то есть if (!strstr($APPLICATION->GetCurDir(), $p1)) {?>

      < ?}?> — ставим восклицательный знак перед функцией strstr

  4. Не подскажите как сделать вывод только в категории на главной странице категории
    GetCurDir() == «/catalog/») {?>
    123

    Чтобы был вывод только /catalog/ а в дочерних страницах и подкатегориях ничего не было

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *