alex19pov31/bitrix-helper

Bitrix 的助手集合

v0.2.3 2019-05-28 07:10 UTC

This package is auto-updated.

Last update: 2024-09-25 17:36:38 UTC


README

Latest Stable Version Build Status Scrutinizer Code Quality

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>