Оглавление
- /component_name/ - папка компонента
- component.php - основной файл с логикой компонента
- /templates/ - папка с шаблонами компонента
- .default - папка шаблона по умолчанию
- template.php - файл шаблона
- result_modifier.php - специальный файл выполняющийся до файла шаблона
- component_epilog.php - специальный файл выполняющийся после шаблона (не кешируется)
- script.js - автоматически подключаемый файл javascript скриптов
- style.css - автоматически подключаемый файл стилей
Переменные доступные в файле component.php
Внутри компонента вам доступны следующие переменные:$arParams
- параметры компонента.-
$arResult
- результат работы компонента, в него помещаются данные полученные в результате работы бизнес логики компонента -
$APPLICATION
- экземпляр приложения (глобальная переменная) -
$USER
- объект текущего пользователя (глобальная переменная) -
$DB
- объект текущей базы данных (глобальная переменная) -
$this
- ссылка на текущий вызванный компонент (объект класса CBitrixComponent)
Дополнительные локальные переменные необходимые для удобства работы с компонентом
$componentPath
- путь к вызванному компоненту, например /bitrix/components/news.list-
$componentName
- имя вызванного компонента, например bitrix:news.list -
$componentTemplate
- шаблон вызванного компонента, например .default
$parentComponentPath
- путь к родительскому компоненту вызванного компонента , например /bitrix/components/news-
$parentComponentName
- имя родительского компонента -
$parentComponentTemplate
- шаблон родительского компонента
Переменные доступные в файле template.php
В файле шаблона компонента, доступны основные переменные самого компонента, так же глобальные переменные системы и некоторые спецbфические переменные шаблона:$arParams
- параметры компонента.$arResult
- результат работы компонента, в него помещаются данные полученные в результате работы бизнес логики компонента$APPLICATION
- экземпляр приложения (глобальная переменная)$USER
- объект текущего пользователя (глобальная переменная)$DB
- объект текущей базы данных (глобальная переменная)$this
- ссылка на текущий шаблон (объект класса CBitrixComponentTemplate)$templateName
- имя шаблона компонента, например .default
$templateFile
- путь к файлу шаблона компонента, например /bitrix/components/news.list/templates/.default/template.php
$templateFolder
- путь к папке текущего шаблона компонента /bitrix/components/news.list/templates/.default/
$componentPath
- путь к папке компонента, например /bitrix/components/news.list/
$component
- ссылка на текущий вызванный компонент (объект класса CBitrixComponent)
$templateData
- массив для записи, обратите внимание, таким образом можно передать данные из template.php в файл component_epilog.php, причем эти данные попадают в кеш, т.к. файл component_epilog.php исполняется на каждом хите.
Переменные доступные в файле result_modifier.php
В этом файле мы можем перехватить данные поступившие из component.php и ещё не дошедшие до template.php. В этом файле доступны следующие переменные для работы:$arParams
- параметры компонента.$arResult
- результат работы компонента, в него помещаются данные полученные в результате работы бизнес логики компонента$APPLICATION
- экземпляр приложения (глобальная переменная)$USER
- объект текущего пользователя (глобальная переменная)$DB
- объект текущей базы данных (глобальная переменная)$this
- ссылка на текущий компонент
Переменные доступные в файле component_epilog.php
Этот файл не кешируется и выполняется на каждом хите. Он срабатывает уже после выполнения template.php. В нём доступны следующие переменные:$arParams
- параметры компонента.$arResult
- результат работы компонента, в него помещаются данные полученные в результате работы бизнес логики компонента$APPLICATION
- экземпляр приложения (глобальная переменная)$USER
- объект текущего пользователя (глобальная переменная)$DB
- объект текущей базы данных (глобальная переменная)$componentPath
- путь к папке компонента, например /bitrix/components/news.list/$this
- ссылка на текущий компонент
$epilogFile
- путь к файлу component_epilog.php-
$templateName
- имя шаблона компонента -
$templateFile
- путь к файлу шаблона компонента -
$templateFolder
- путь к папке шаблона компонента
Как передать данные в файл script.js шаблона компонента
По сути файл script.js подключается после template.php, поэтому для передачи в него каких-то данных, мы можем задать глобальную переменную, например в объекте window.
<script>
window.var = 123;
</script>
Далее в script.js получить её значение так же из window.var. Хотя в 1С Битрикс чаще используют встроенный объект BX, например:
<script>
BX.message({
MY_VAR: '<?=$arResult["MY_VAR"]; ?>'
});
</script>
Функция
BX.message() часто используется для подобных задач. Вы даже можете конвертировать массив в Javascript объект и "передать" эти данные в script.js
используя специальный метод CUtil::PhpToJSObject()
.
BX.message(<?=CUtil::PhpToJSObject($arResult["MY_ARRAY"])?>);
Использование описанных выше предустановленных переменных компонента, позволяет сделать ваш код более лаконичным и понятным. Не городите кастыле! Желаю удачи!