В файлах компонентов доступны стандартные компоненты, благодаря которым можно строить, к примеру, относительные пути. Такие компоненты избавляют от необходимости прописания абсолютных величин в файлах компонента.
В файлах компонентов доступны стандартные компоненты, благодаря которым можно строить, к примеру, относительные пути. Такие компоненты избавляют от необходимости прописания абсолютных величин в файлах компонента.
В файле component.php доступны (в файле самого компонента):
очевидные и постоянно используемые:
- $arParams — параметры, чтение/изменение, затрагивает одноименный член класса компонента
- $arResult — результат, чтение/изменение, затрагивает одноименный член класса компонента
- $APPLICATION, $USER, $DB — все доступны, можно не объявлять их как global в файле component.php
- $this — естественно ссылка на текущий вызванный компонент (объект класса CBitrixComponent), можно использовать все методы класса CBitrixComponent
дополнительные, локальные для удобства:
- $componentPath — путь к вызванному компоненту от DOCUMENT_ROOT (пример: /bitrix/components/bitrix/iblock.list)
- $componentName — имя вызванного компонента (например: bitrix:iblock.list)
- $componentTemplate — шаблон вызванного компонента (например: «my_template»)
аналогичные значения, если компонент вызван в составе другого компонента, идут отсылки на родительский компонент:
- $parentComponentPath
- $parentComponentName
- $parentComponentTemplate
В файле result_modifier.php доступны (в файле модификации шаблона компонента):
- $arParams - параметры, чтение, изменение не затрагивает одноименный член компонента, но изменения тут отразятся на $arParams в файле template.php
- $arResult — результат, чтение/изменение, затрагивает одноименный член класса компонента
- $APPLICATION, $USER, $DB - как обычно, объявлять их как global избыточно $this — ссылка на текущий шаблон (объект, описывающий шаблон, тип CBitrixComponentTemplate)
В файле 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/bitrix/iblock.list/templates/.default»)
- $componentPath - путь к папке с компонентом от DOCUMENT_ROOT (напр. «/bitrix/components/bitrix/iblock.list»)
- $component — ссылка на текущий вызванный компонент (тип CBitrixComponent)
- $templateData — массив для записи, обратите внимание, таким образом можно передать данные из template.php в файл component_epilog.php, причем эти данные попадают в кеш, т.к. файл component_epilog.php исполняется на каждом хите.
В файле component_epilog.php (эпилог компонента) доступны:
- $arParams - параметры, чтение, изменение не затрагивает одноименный член компонента
- $arResult — результат, чтение/изменение не затрагивает одноименный член класса компонента
- $APPLICATION, $USER, $DB — аналогично, эта «троица» доступна
-
$componentPath — путь к папке с компонентом от DOCUMENT_ROOT (напр. «/bitrix/components/bitrix/iblock.list»)
- $component — ссылка на $this, читай на строку ниже
- $this — естественно ссылка на текущий вызванный компонент (объект класса CBitrixComponent), можно использовать все методы класса CBitrixComponent
дополнительные, не явные в component_epilog.php:
- $epilogFile — путь к файлу component_epilog.php относительно DOCUMENT_ROOT
- $templateName - имя шаблона компонента (например: «.dеfault»)
- $templateFile — путь к файлу шаблона от DOCUMENT_ROOT (напр. «/bitrix/components/bitrix/iblock.list/templates/.default/template.php»)
- $templateFolder — путь к папке с шаблоном от DOCUMENT_ROOT (напр. «/bitrix/components/bitrix/iblock.list/templates/.default»)
- $templateData — обратите внимание, таким образом можно передать данные из template.php в файл component_epilog.php, причем эти данные закешируются и будут доступны в component_epilog.php на каждом хите!
и в конце, небольшой пример: чтобы получить в result_modifier.php значение $templateFolder, необходимо воспользоваться методами текущего шаблона:
$this->__component->__template->__folderили:
$this->GetFolder();или:
$this->__folder
Чтобы передать данные из вложенного в комплексный компонента, можно в компоненте-потомке обратиться к результирующему массиву родительского компонента:
$this->__component->getParent()->arResult['CHILD_DATA'] = array(.....);
Т.к. переменная $this в component_epilog.php обращается к классу CBitrixComponent, то для того чтобы использовать функционал шаблона в component_epilog.php, необходимо обратиться к шаблону компонента из самого компонента:
$this->getTemplate()->addExternalJs("path-to-js-script");
Подключать данный так скрипты не целесообразно- лучше делать подключение из result_modifier.php, чтобы скрипты попадали в кешируемую область.
Как передать в script.js шаблона компонена путь к папке, шаблона:
В файле шаблона, template.php, прописываем:
<script> BX.message({ TEMPLATE_PATH: '<? echo $this->GetFolder(); ?>' }); </script>
И в файле script.js можем этот путь получить:
var folderPath = BX.message('TEMPLATE_PATH');
В курсе веб-разработчика 1С-Битрикс появилась таблица с доступностью переменных .
Передать языковые фразы в JS
Сначала считаем языковые фразы в переменную:
$messages = Loc::loadLanguageFile(__FILE__);
После этого, в js-скрипте можем получить массив языковых файлов:
BX.message(<?=CUtil::PhpToJSObject($messages)?>);
Для передачи всех языковых фраз шаблона в JS, можно воспользоваться такой структурой:
<php> use \Bitrix\Main\Localization\Loc; Loc::loadMessages(__FILE__); $messages = Loc::loadLanguageFile(__FILE__); </php> <script> BX.message(<?=CUtil::PhpToJSObject($messages)?>); </script>
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.