PHPackages                             alex19pov31/bitrix-helper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. alex19pov31/bitrix-helper

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

alex19pov31/bitrix-helper
=========================

Helper collection for bitrix

v0.2.3(6y ago)11571MITPHPPHP &gt;=7.0

Since Mar 18Pushed 6y ago1 watchersCompare

[ Source](https://github.com/alex19pov31/bitrix-helper)[ Packagist](https://packagist.org/packages/alex19pov31/bitrix-helper)[ RSS](/packages/alex19pov31-bitrix-helper/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (6)Used By (1)

[![Latest Stable Version](https://camo.githubusercontent.com/f3d57d33bd27fe8856f5c35a9dc60ac25af343ce15dbae309a3d4e8dca1dca41/68747470733a2f2f706f7365722e707567782e6f72672f616c65783139706f7633312f6269747269782d68656c7065722f762f737461626c65)](https://packagist.org/packages/alex19pov31/bitrix-helper) [![Build Status](https://camo.githubusercontent.com/73f03b3add946201b46e90e89534c8e4a35ea71579858f42b6403f0a12f40d8e/68747470733a2f2f7472617669732d63692e6f72672f616c65783139706f7633312f6269747269782d68656c7065722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/alex19pov31/bitrix-helper) [![Scrutinizer Code Quality](https://camo.githubusercontent.com/3326d6027d686585fac83692c78bbd1eca1a8c4a16d2b55e7d907f29d192b943/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f616c65783139706f7633312f6269747269782d68656c7065722f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/alex19pov31/bitrix-helper/?branch=master)

Bitrix helper
=============

[](#bitrix-helper)

Коллекция хелперов для 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 блоком

[](#получение-класса-для-работы-с-hl-блоком)

```
    /**
     *  1 - идентификатор HL блока
     *  30 - время кеширования в минутах
     */
    getHlBlockClass('1', 30);

    /**
     * table_comments - имя теблицы HL блока
     * 30 - время кеширования в минутах
     */
    getHlBlockClass('table_comments', 30);

    /**
     * TableComments - название HL блока
     * 30 - время кеширования в минутах
     */
    getHlBlockClass('TableComments', 30);
```

### Получение информации о HL блоке

[](#получение-информации-о-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 запрос к базе

[](#выполнить-произвольный-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;
```

**Пример:**

```
