В этой статье вы узнаете как правильно задавать “глобальные переменные”, используя api Битрикса.
Как в Битриксе вывести информацию в футере сайта используя компонент
Представим классическую ситуацию – вы разместили в footer.php вашего шаблона какой-то блок, который будет отображаться только на определенных страницах. При этом, этот блок не входит в код компонента (по какой-то причине 🙂 ).
Создаем в карточке товара (или в шаблоне новость детально) файл component_epilog.php, если он еще не создан.
А сейчас внимание, черный ящик говнокод:
<? GLOBAL $is_cart; $is_cart = true;
Во-первых, давайте приучим себя, что в файлах нужно первой строкой писать:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
А во-вторых, используйте глобальные переменные таким образом лишь в крайнем случае. Для каких-то целей они конечно пригодны, но тут мы будем использовать $APPLICATION->SetPageProperty :
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? $APPLICATION->SetPageProperty("SHOW_FOOTER_BLOCK", "Y");
Значение которое мы передали – Y.
Шаг 2. Переходим в footer.php вашего шаблона (а когда был первый шаг? 🙂 )
Пишем перед нашим блоком или компонентом, который мы будем выводить:
$showBlock = $APPLICATION->GetPageProperty("SHOW_FOOTER_BLOCK","N"); if ($showBlock == "Y") { echo 'DONE!'; }
В этот раз мы использовали GetPageProperty. Второй параметр, как некоторые из вас догадались (почти никто 😉 ) это значение по умолчанию, то есть “N” можно использовать как “по умолчанию не отображать. С условиями я думаю вы разберетесь.
Что касается примера с глобальными переменными, то тут картина выглядела бы так:
<? GLOBAL $is_cart; if ($is_cart) echo "мы в карточке"; else echo "Мы где то в другом месте";
Данный код протестировал, работает как первый так и второй вариант, но я вам советую использовать именно API bitrix, т.к. вы работаете именно в этой системе управления сайтом.
Надеюсь у вас всё получилось.