Переменную $component в result_modifier и в component_epilog

Рейтинг: 26.1769  
Новая
Предложил Долганин Антон 19.02.2012 23:06:55

Переменную $component в result_modifier и в component_epilog

Вроде бы ничему не противоречит. Столкнулся с тем, что мне в нескольких файлах одного шаблона пришлось прописать одинаковую конструкцию вида:

$APPLICATION->AddHeadString("<!--[if IE 9]>
   <link rel=\"stylesheet\" href=\"".$component->__template->__folder."/style-ie9.css\">
<![endif]-->");

Рейтинг: 0.4711  
Долганин Антон 28.03.2012 04:04:28
Ха, оказывается до нее можно достучаться в  result_modifier  вот так: $this->__component
Рейтинг: 9.4749  
Валерий Чебан 22.05.2012 18:55:27
Переменные, доступные в компоненте 2.0

1/ В файле component.php доступны (в файле самого компонента):

очевидные и постоянно используемые:
$arParams — параметры, чтение/изменение, затрагивает одноименный член класса компонента
$arResult — результат, чтение/изменение, затрагивает одноименный член класса компонента
$APPLICATION, $USER, $DB — все доступны, можно не объявлять их как global в файле component.php
$this — естественно ссылка на текущий вызванный компонент (объект класса CBitrixComponent), можно использовать все методы класса CBitrixComponent
дополнительные, локальные для удобства:
$componentPath — путь к вызванному компоненту от DOCUMENT_ROOT (пример: /bitrix/components/wexpert/iblock.list)
$componentName — имя вызванного компонента (например: wexpert:iblock.list)
$componentTemplate — шаблон вызванного компонента (например: «my_template»)
аналогичные значения, если компонент вызван в составе другого компонента, идут отсылки на родительский компонент:
$parentComponentPath
$parentComponentName
$parentComponentTemplate

2/ В файле result_modifier.php доступны (в файле модификации шаблона компонента):

$arParams
-
параметры, чтение, изменение не затрагивает одноименный член компонента, но изменения тут отразятся на $arParams в файле template.php
$arResult
результат, чтение/изменение, затрагивает одноименный член класса компонента
$APPLICATION, $USER, $DB - как обычно, объявлять их как global избыточно $this — ссылка на текущий шаблон (объект, описывающий шаблон, тип CBitrixComponentTemplate)

3/ В файле template.php доступны:

$arParams -
параметры, чтение, изменение не затрагивает одноименный член компонента
$arResult
результат, чтение/изменение, затрагивает одноименный член класса компонента (ссылка на поле компонента)
$APPLICATION, $USER, $DB —
как обычно, объявлять их как global избыточно
$this
- ссылка на текущий шаблон (объект, описывающий шаблон, тип CBitrixComponentTemplate)
$templateName — имя шаблона компонента (например: «.dеfault»)
$templateFile  —
путь к файлу шаблона от DOCUMENT_ROOT (напр. «/bitrix/components/wexpert/iblock.list/templates/.default/template.php»)
$templateFolder
- путь к папке с шаблоном от DOCUMENT_ROOT (напр. «/bitrix/components/wexpert/iblock.list/templates/.default»)
$componentPath
- путь к папке с компонентом от DOCUMENT_ROOT (напр. «/bitrix/components/wexpert/iblock.list»)
$component —
ссылка на текущий вызванный компонент (тип CBitrixComponent)
$templateData — массив для записи, обратите внимание, таким образом можно передать данные из template.php в файл component_epilog.php, причем эти данные попадают в кеш, т.к. файл component_epilog.php исполняется на каждом хите.

4/ В файле component_epilog.php (эпилог компонента) доступны:

$arParams
-
параметры, чтение, изменение не затрагивает одноименный член компонента
$arResult
результат, чтение/изменение не затрагивает одноименный член класса компонента
$APPLICATION, $USER, $DB — аналогично, эта «троица» доступна
$componentPath — путь к папке с компонентом от DOCUMENT_ROOT (напр. «/bitrix/components/wexpert/iblock.list») $component — ссылка на $this, читай на строку ниже
$this — естественно ссылка на текущий вызванный компонент (объект класса CBitrixComponent), можно использовать все методы класса CBitrixComponent
дополнительные, не явные в component_epilog.php:
$epilogFile — путь к файлу component_epilog.php относительно DOCUMENT_ROOT
$templateName - имя шаблона компонента (например: «.dеfault»)
$templateFile
— путь к файлу шаблона от DOCUMENT_ROOT (напр. «/bitrix/components/wexpert/iblock.list/templates/.default/template.php»)
$templateFolder
— путь к папке с шаблоном от DOCUMENT_ROOT (напр. «/bitrix/components/wexpert/iblock.list/templates/.default»)
$templateData — обратите внимание, таким образом можно передать данные из template.php в файл component_epilog.php, причем эти данные закешируются и будут доступны в component_epilog.php на каждом хите!
Рейтинг: 0  
Басыров Роберт 03.06.2016 12:02:42
Спасибо за обобщённую информацию.
https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2499