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