Сейчас речь пойдет о переменных в компоненте в Bitrix. Как известно, MVC модель, заложенная в Bitrix Framework, позволяет создавать компоненты или же модифицировать их для своих нужд. При этом, они могут использованы неоднократно, на других сайтах. В шаблоне компонента по умолчанию есть переменные, о которых разработчик может и не догадываться, но использование их может значительно облегчить работу с компонентом. К примеру, указав путь к подключаемому файлу, при переносе компонента на другой проект может оказаться что путь, указанный статическим методом, уже не актуален, это не позволит по ясным причинам подключить файл. Каждый раз менять пути при переносе компонента не всегда удобно, удобнее воспользоваться переменной, доступной в шаблоне компонента, которая укажет актуальный путь до папки с шаблоном. Рассмотрим доступные переменные.
<? $componentPath // путь к компоненту относительно корня сайта $templateFile; // путь к файлу шаблона компонента относительно корня сайта $templateFolder; // путь к папке шаблона компонента относительно корня сайта $parentTemplateFolder; // путь к папке родительского шаблона $templateName; // имя шаблона $arLangMessages // массив языковых сообщений (переводов) шаблона $component; // объект текущего компонента $this; // ссылка на текущий шаблон (объект, описывающий шаблон, тип CBitrixComponentTemplate) $arParams; // массив с параметрами $arResult; // массив с результатом $templateData; // массив для записей (обратите внимание, что здесь данные template.php могут быть переданы в файл component_epilog.php, и эти данные будут отправлены в кэш, потому что файл component_epilog.php выполняется при каждом запросе) // так же внутри компонента доступны глобальные переменные $APPLICATION; $USER; $DB; ?>
Обратите внимание. Переменная $DB содержит объект класса CDatabase, посредством этой переменной можно выполнять произвольные SQL запросы, и фактически полноценно работать с базой данных.
Для демонстрации использования одной из переменных, приведу пример подключения файлов js и css в шаблоне компонента:
<?php $APPLICATION->AddHeadScript($templateFolder.'/myScript.js'); $APPLICATION->SetAdditionalCSS($templateFolder.'/myStyle.css'); ?>
Таким образом, подключаемые файлы достаточно разместить в папке шаблона компонента, подключаться они будут даже при смене пути до шаблона компонента. Если есть что добавить, пишите в комментах.