Меню

1С УПРАВЛЕНИЕ ТОРГОВЛЕЙ И ИНТЕРНЕТ-МАГАЗИН БИТРИКС

FAQ и советы Битрикс


Вывод блоков в шаблоне Битрикс в зависимости от условий

Каждый разработчик сайта сталкивается с тем, что в зависимости от условий необходимо выводить или не выводить те или иные блоки на сайте или же менять их содержимое.

1С Битрикс данную проблему можно решить средствами самого Битрикса т.е. создать несколько шаблонов и поставить условие их использование. Быстро и удобно.

По началу я так и сделал, но дальше столкнулся с тем, что приходится постоянно вносить изменения в оба шаблона. А когда мне потребовался 3-ий шаблон, я сказал нет! И начал искать решение это проблемы.

И решение было найдено. Это использование условий в шаблоне в зависимости от которых мы выводим разные блоки.

Это условие необходимо прописать в шаблоне:

<? if ($GLOBALS["APPLICATION"]->GetCurPage(true) == '/documentation/index.php'):?>

HTML код 1

<?else:?>

HTML код 2

<?endif?>

Т.е. первой строкой мы получаем путь до текущей страницы от корня сайта ($GLOBALS["APPLICATION"]->GetCurPage(true)) и сравниваем с нашей структурой. Далее в зависимости от результата выполняем тот или иной HTML код.


Приведу пример всего куска кода используемого у меня в шаблоне:


<aside class="right">
<? if ($GLOBALS["APPLICATION"]->GetCurPage(true) == '/documentation/index.php'):?>
 <h4>Документация УТ11:</h4>
  <nav class="nav-right">
 <?$APPLICATION->IncludeComponent(
 "bitrix:catalog.section.list",
 ".default",
 Array(
  "COMPONENT_TEMPLATE" => ".default",
  "IBLOCK_TYPE" => "blog",
  "IBLOCK_ID" => "1",
  "SECTION_ID" => $_REQUEST["SECTION_ID"],
  "SECTION_CODE" => "",
  "COUNT_ELEMENTS" => "Y",
  "TOP_DEPTH" => "5",
  "SECTION_FIELDS" => array(0=>"",1=>"",),
  "SECTION_USER_FIELDS" => array(0=>"",1=>"",),
  "VIEW_MODE" => "LIST",
  "SHOW_PARENT_NAME" => "Y",
  "SECTION_URL" => "",
  "CACHE_TYPE" => "A",
  "CACHE_TIME" => "36000000",
  "CACHE_GROUPS" => "Y",
  "ADD_SECTIONS_CHAIN" => "Y"
 )
 );?>
   </nav>
<?else:?>
 <h4>Статьи по разделам:</h4>
  <nav class="nav-right">
 <?$APPLICATION->IncludeComponent(
 "bitrix:catalog.section.list",
 ".default",
 Array(
  "COMPONENT_TEMPLATE" => ".default",
  "IBLOCK_TYPE" => "blog",
  "IBLOCK_ID" => "1",
  "SECTION_ID" => $_REQUEST["SECTION_ID"],
  "SECTION_CODE" => "",
  "COUNT_ELEMENTS" => "Y",
  "TOP_DEPTH" => "5",
  "SECTION_FIELDS" => array(0=>"",1=>"",),
  "SECTION_USER_FIELDS" => array(0=>"",1=>"",),
  "VIEW_MODE" => "LIST",
  "SHOW_PARENT_NAME" => "Y",
  "SECTION_URL" => "",
  "CACHE_TYPE" => "A",
  "CACHE_TIME" => "36000000",
  "CACHE_GROUPS" => "Y",
  "ADD_SECTIONS_CHAIN" => "Y"
 )
 );?>
   </nav>
<?endif?>


</aside>


Возврат к списку