Для облегчения работы с системой, в компонентах 1С Битрикс есть набор специальных переменных, через которые можно получить доступ к различным параметрам компонента, путям  к файлам шаблонов, параметрам пользователя, наименованию шаблонов и т.д. Давайте рассмотрим базовую структуру компонента и то, какие переменные доступны в нём.

  • /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 - ссылка на текущий компонент
В component_epilog.php есть ещё несколько полезных переменных
  • $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"])?>);


Использование описанных выше предустановленных переменных компонента, позволяет сделать ваш код более лаконичным и понятным. Не городите кастыле! Желаю удачи!



Полезная статья?
(Голосов: 1, Рейтинг: 3.3)
Вам также могут понравиться
Английский для программистов

Английский для программистов

Почему IT-специалисту необходимо освоить английский язык? Разбираем в статье.

Как подключить CSS и JS файлы к шаблону 1С Битрикс

Как подключить CSS и JS файлы к шаблону 1С Битрикс

Как правильно подключать стили и скрипты к шаблону 1С Битрикс.

Генерация оглавления статьи

Генерация оглавления статьи

В статье рассмотрен пример функции для генерации оглавления статьи блога или новости


Комментарии
Защита от автоматических сообщений
CAPTCHA
Введите слово на картинке