Коллекция хелперов для 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
/**
* 1 - идентификатор HL блока
* 30 - время кеширования в минутах
*/
getHlBlockClass('1', 30);
/**
* table_comments - имя теблицы HL блока
* 30 - время кеширования в минутах
*/
getHlBlockClass('table_comments', 30);
/**
* TableComments - название HL блока
* 30 - время кеширования в минутах
*/
getHlBlockClass('TableComments', 30);
/**
* 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()
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>
- 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>