{"id":23138358,"url":"https://github.com/alex19pov31/bitrix-helper","last_synced_at":"2025-04-04T09:44:08.864Z","repository":{"id":56944290,"uuid":"176274528","full_name":"alex19pov31/bitrix-helper","owner":"alex19pov31","description":"Набор вспомогательных функций для CMS Bitrix","archived":false,"fork":false,"pushed_at":"2019-07-25T06:14:27.000Z","size":32,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-12T03:16:12.245Z","etag":null,"topics":["bitrix","helper","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alex19pov31.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-03-18T12:02:03.000Z","updated_at":"2023-09-22T12:21:58.000Z","dependencies_parsed_at":"2022-08-21T02:10:18.282Z","dependency_job_id":null,"html_url":"https://github.com/alex19pov31/bitrix-helper","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex19pov31%2Fbitrix-helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex19pov31%2Fbitrix-helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex19pov31%2Fbitrix-helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alex19pov31%2Fbitrix-helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alex19pov31","download_url":"https://codeload.github.com/alex19pov31/bitrix-helper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247157133,"owners_count":20893210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitrix","helper","php"],"created_at":"2024-12-17T13:10:43.326Z","updated_at":"2025-04-04T09:44:08.839Z","avatar_url":"https://github.com/alex19pov31.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Latest Stable Version](https://poser.pugx.org/alex19pov31/bitrix-helper/v/stable)](https://packagist.org/packages/alex19pov31/bitrix-helper) [![Build Status](https://travis-ci.org/alex19pov31/bitrix-helper.svg?branch=master)](https://travis-ci.org/alex19pov31/bitrix-helper) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/alex19pov31/bitrix-helper/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/alex19pov31/bitrix-helper/?branch=master)\n\n# Bitrix helper\n\nКоллекция хелперов для CMS Bitrix.\n\n## Установка\n\n```bash\n    composer require alex19pov31/bitrix-helper\n```\n\n### Получение идентификатора инфоблока по его коду:\n\n* code - Код инфоблока\n* iblockType - Тип инфоблока\n* minutes - время кеширования списка инфоблоков в минутах\n\n```php\n    function getIblockId(string $code, ?string $iblockType = null, int $minutes = 0): ?int;\n```\n\n**Пример:**\n\n```php\n    /**\n     * shoes - код инфоблока\n     * catalog - идентификатор типа инфоблока (не обязательный параметр)\n     * 30 - время кеширования в минутах\n     */\n    getIblockId('shoes', 'catalog', 30); // 2\n```\n\n### Получение класса для работы с HL блоком\n\n```php\n    /**\n     *  1 - идентификатор HL блока\n     *  30 - время кеширования в минутах\n     */\n    getHlBlockClass('1', 30);\n\n    /**\n     * table_comments - имя теблицы HL блока\n     * 30 - время кеширования в минутах\n     */\n    getHlBlockClass('table_comments', 30);\n\n    /**\n     * TableComments - название HL блока\n     * 30 - время кеширования в минутах\n     */\n    getHlBlockClass('TableComments', 30);\n```\n\n### Получение информации о HL блоке\n\n```php\n    /**\n     *  1 - идентификатор HL блока\n     *  30 - время кеширования в минутах\n     */\n    getHlBlock('1', 30);\n\n    /**\n     * table_comments - имя теблицы HL блока\n     * 30 - время кеширования в минутах\n     */\n    getHlBlock('table_comments', 30);\n\n    /**\n     * TableComments - название HL блока\n     * 30 - время кеширования в минутах\n     */\n    getHlBlock('TableComments', 30);\n```\n\n### Подключение модуля\n\n```php\n    loadModule('iblock');\n```\n\n```php\n    bxApp(); // $APPLICATION\n```\n\n```php\n    appInstance(); // Application::getInstance()\n```\n\n### Выполнить произвольный SQL запрос к базе\n\n```php\n    echo sql('show tables')-\u003efetch();\n```\n\n### Тегированный кеш\n\n```php\n    taggedCache();\n\n    /**\n     * Отчистка кеша по тегу\n     */\n    taggedCache()-\u003eclearByTag('tag_name');\n```\n\n### Инициализация тегированного кеша\n\n```php\n\n    /**\n     * ['catalog', 'cars'] - теги для кеша\n     * /catalog - расположение кеша\n     */\n    initTagCache(['catalog', 'cars'], '/catalog')\n```\n\n### Кеширование\n\n```php\n\n    /**\n     * 30 - время кеширования в минутах\n     * cache_key - ключ кеширования\n     */\n    $cacheData = cache(30, 'cache_key', '/', 'cache', function() {\n        initTagCache(['simple_cache'], '/simple'); // инициализация тегированного кеша\n\n        return \"данные которые надо закешировать\";\n    });\n\n    /**\n     * Отчистка данных кеша\n     */\n    cleanCache('cache_key', '/', 'cache');\n\n    /**\n     * Записть данные в кеш (с предварительной отчисткой кеша)\n     */\n    setCacheData(30, 'cache_key', '/', 'cache', 'данные для кеширования');\n```\n\n### Подключение компонента\n\n```php\n    initComponent('bitrix:catalog', 'test', ['CACHE' =\u003e 'Y'])-\u003eshow();\n\n    // Call in component\n    $arResult['bitrix:catalog'] = initComponent('bitrix:catalog', 'test_template', ['CACHE' =\u003e 'Y']);\n    // Call in component template\n    $arResult['bitrix:catalog']-\u003eshow();\n\n\n    initComponent('bitrix:catalog')\n        -\u003esetTemplate('test_template')\n        -\u003esetParams(['CACHE' =\u003e 'N'])\n        -\u003ecache(120, 'cache_key') // Кеширование вывода компонента на 120 минут по ключу cache_key\n        -\u003eshow();\n\n    /**\n     * Инициируем компонент без вывода, \n     * задаем имя в стеке вызова чтобы вызвать в другом месте\n     */\n    initComponent('bitrix:catalog')\n        -\u003esetTemplate('new_template')\n        -\u003esetParams(['PARAM' =\u003e 'local acces to value'])\n        -\u003esetNameInStack('wery_impotant_component'); // задаем имя в стеке вызова компонентов\n\n    use Alex19pov31\\BitrixHelper\\ComponentHelper;\n\n    /**\n     * Получаем компонент из стека по заданному имени и вызываем его\n     */\n    ComponentHelper::getByNameInStack('wery_impotant_component')-\u003eshow();\n\n    ComponentHelper::getStack(); // стек вызова компонентов \n```\n\n### Область редактирования элемента инфоблока\n\n* tpl - Объект шаблона компонента\n* elementId - Идентификатор элемента\n* iblockId - Идентификатор инфоблока\n* iblockType - Тип инфоблока\n* description - Надпись в области редактирования\n\n```php\n    function initEditIblockElement(CBitrixComponentTemplate $tpl, int $elementId, int $iblockId, string $iblockType, string $description = null): string;\n```\n\n**Пример:**\n\n```html\n    \u003cdiv id=\"\u003c?= initEditHLBlockElement($this, 4, 2, 'catalog'); ?\u003e\"\u003e\n        ...\n    \u003c/div\u003e\n```\n\n### Область редактирования раздела инфоблока\n\n* tpl - Объект шаблона компонента\n* elementId - Идентификатор элемента\n* iblockId - Идентификатор инфоблока\n* iblockType - Тип инфоблока\n* description - Надпись в области редактирования\n\n```php\n    function initEditIblockSection(CBitrixComponentTemplate $tpl, int $sectionId, int $iblockId, string $iblockType, string $description = null): string;\n```\n\n**Пример:**\n\n```html\n    \u003cdiv id=\"\u003c?= initEditIblockSection($this, 4, 2, 'catalog'); ?\u003e\"\u003e\n        ...\n    \u003c/div\u003e\n```\n\n### Область редактирования элемента HL блока\n\n* tpl - Объект шаблона компонента\n* elementId - Идентификатор элемента\n* hlBlockName - Имя таблицы/имя HL блока/идентификатор HL блока\n* description - Надпись в области редактирования\n\n```php\n    function initEditHLBlockElement(CBitrixComponentTemplate $tpl, int $elementId, string $hlBlockName, string $description = null): string;\n```\n\n**Пример:**\n\n```html\n    \u003cdiv id=\"\u003c?= initEditHLBlockElement($this, 4, 'hl_table_name', 'catalog'); ?\u003e\"\u003e\n        ...\n    \u003c/div\u003e\n\n    \u003cdiv id=\"\u003c?= initEditHLBlockElement($this, 4, 'HLName', 'catalog'); ?\u003e\"\u003e\n        ...\n    \u003c/div\u003e\n\n    \u003cdiv id=\"\u003c?= initEditHLBlockElement($this, 4, '1', 'catalog'); ?\u003e\"\u003e\n        ...\n    \u003c/div\u003e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex19pov31%2Fbitrix-helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falex19pov31%2Fbitrix-helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falex19pov31%2Fbitrix-helper/lists"}