alex19pov31 / bitrix-helper
Bitrix 的助手集合
v0.2.3
2019-05-28 07:10 UTC
Requires
- php: >=7.0
Requires (Dev)
- mockery/mockery: ^1.2
- phpunit/phpunit: ^6.5
README
Bitrix 辅助工具
为 CMS Bitrix 提供的助手集合。
安装
composer require alex19pov31/bitrix-helper
根据其代码获取信息块标识符
- code - 信息块的代码
- iblockType - 信息块类型
- minutes - 信息块列表缓存时间(分钟)
function getIblockId(string $code, ?string $iblockType = null, int $minutes = 0): ?int;
示例
/** * shoes - код инфоблока * catalog - идентификатор типа инфоблока (не обязательный параметр) * 30 - время кеширования в минутах */ getIblockId('shoes', 'catalog', 30); // 2
获取用于操作 HL 块的类
/** * 1 - идентификатор HL блока * 30 - время кеширования в минутах */ getHlBlockClass('1', 30); /** * table_comments - имя теблицы HL блока * 30 - время кеширования в минутах */ getHlBlockClass('table_comments', 30); /** * TableComments - название HL блока * 30 - время кеширования в минутах */ getHlBlockClass('TableComments', 30);
获取 HL 块信息
/** * 1 - идентификатор HL блока * 30 - время кеширования в минутах */ getHlBlock('1', 30); /** * table_comments - имя теблицы HL блока * 30 - время кеширования в минутах */ getHlBlock('table_comments', 30); /** * TableComments - название HL блока * 30 - время кеширования в минутах */ getHlBlock('TableComments', 30);
连接模块
loadModule('iblock');
bxApp(); // $APPLICATION
appInstance(); // Application::getInstance()
执行 SQL 查询
echo sql('show tables')->fetch();
标签缓存
taggedCache(); /** * Отчистка кеша по тегу */ taggedCache()->clearByTag('tag_name');
初始化标签缓存
/** * ['catalog', 'cars'] - теги для кеша * /catalog - расположение кеша */ initTagCache(['catalog', 'cars'], '/catalog')
缓存
/** * 30 - время кеширования в минутах * cache_key - ключ кеширования */ $cacheData = cache(30, 'cache_key', '/', 'cache', function() { initTagCache(['simple_cache'], '/simple'); // инициализация тегированного кеша return "данные которые надо закешировать"; }); /** * Отчистка данных кеша */ cleanCache('cache_key', '/', 'cache'); /** * Записть данные в кеш (с предварительной отчисткой кеша) */ setCacheData(30, 'cache_key', '/', 'cache', 'данные для кеширования');
连接组件
initComponent('bitrix:catalog', 'test', ['CACHE' => 'Y'])->show(); // Call in component $arResult['bitrix:catalog'] = initComponent('bitrix:catalog', 'test_template', ['CACHE' => 'Y']); // Call in component template $arResult['bitrix:catalog']->show(); initComponent('bitrix:catalog') ->setTemplate('test_template') ->setParams(['CACHE' => 'N']) ->cache(120, 'cache_key') // Кеширование вывода компонента на 120 минут по ключу cache_key ->show(); /** * Инициируем компонент без вывода, * задаем имя в стеке вызова чтобы вызвать в другом месте */ initComponent('bitrix:catalog') ->setTemplate('new_template') ->setParams(['PARAM' => 'local acces to value']) ->setNameInStack('wery_impotant_component'); // задаем имя в стеке вызова компонентов use Alex19pov31\BitrixHelper\ComponentHelper; /** * Получаем компонент из стека по заданному имени и вызываем его */ ComponentHelper::getByNameInStack('wery_impotant_component')->show(); ComponentHelper::getStack(); // стек вызова компонентов
信息块元素编辑区域
- tpl - 组件模板对象
- elementId - 元素标识符
- iblockId - 信息块标识符
- iblockType - 信息块类型
- description - 编辑区域文字说明
function initEditIblockElement(CBitrixComponentTemplate $tpl, int $elementId, int $iblockId, string $iblockType, string $description = null): string;
示例
<div id="<?= initEditHLBlockElement($this, 4, 2, 'catalog'); ?>"> ... </div>
信息块区域编辑
- tpl - 组件模板对象
- elementId - 元素标识符
- iblockId - 信息块标识符
- iblockType - 信息块类型
- description - 编辑区域文字说明
function initEditIblockSection(CBitrixComponentTemplate $tpl, int $sectionId, int $iblockId, string $iblockType, string $description = null): string;
示例
<div id="<?= initEditIblockSection($this, 4, 2, 'catalog'); ?>"> ... </div>
HL 块元素编辑区域
- tpl - 组件模板对象
- elementId - 元素标识符
- hlBlockName - 表格/HL 块名称/HL 块标识符
- description - 编辑区域文字说明
function initEditHLBlockElement(CBitrixComponentTemplate $tpl, int $elementId, string $hlBlockName, string $description = null): string;
示例
<div id="<?= initEditHLBlockElement($this, 4, 'hl_table_name', 'catalog'); ?>"> ... </div> <div id="<?= initEditHLBlockElement($this, 4, 'HLName', 'catalog'); ?>"> ... </div> <div id="<?= initEditHLBlockElement($this, 4, '1', 'catalog'); ?>"> ... </div>