xtt/hlhelpers

此包的最新版本(v1.0.6)没有可用的许可证信息。

Highloadblock Bitrix 辅助工具

v1.0.6 2023-02-01 22:39 UTC

This package is auto-updated.

Last update: 2024-09-30 01:38:07 UTC


README

用于 1С-Битри克斯 highloadblock 的一组方法

内容

安装

方法 1

  • 进入文件夹 /local/php_interface/lib/
  • composer require darkfriend/hlhelpers
  • 在文件 /local/php_interface/init.php 中写入 require __DIR__.'/lib/vendor/autoload.php'
  • 完成

方法 2

  • 将仓库复制到文件夹 /local/php_interface/lib/
  • 在文件 /local/php_interface/init.php 中写入 require __DIR__.'/lib/hlhelpers/HLHelpers.php'
  • 完成

如何使用?

创建 HighloadBlockTable

<?php
    use Darkfriend\HLHelpers;
    $nameHLBlock = 'TestHlBlock';
    $tableName = 'test_table_hl_block';
    $id = HLHelpers::getInstance()->create($nameHLBlock,$tableName);
    print_r($id); // id|false HighloadBlock
    // если $id === false
    // print_r(HLHelpers::$LAST_ERROR);
?>

向 HighloadBlockTable 添加字段

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    // описание какие данные указывать в $arFields тут https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=3496
    $arField = [
    	'FIELD_NAME' => 'UF_TEST',
        'USER_TYPE_ID' => 'string',
        'SORT' => '100',
        'MULTIPLE' => 'N',
        'MANDATORY' => 'N',
        'SETTINGS' => [
            'DEFAULT_VALUE' => 'empty',
        ],
        'EDIT_FORM_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
        'LIST_COLUMN_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
    ];
    $id = HLHelpers::getInstance()->addField($hlblockID,$arField);
    print_r($id); // id|false поля
    // если $id === false
    // print_r(HLHelpers::$LAST_ERROR);
?>

根据 ID 更新 HighloadBlockTable 中的字段

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    $fieldID = 1;
    $arField = [
        'SORT' => '100',
        'MANDATORY' => 'Y',
        'SETTINGS' => [
            'DEFAULT_VALUE' => 'empty',
        ],
        'EDIT_FORM_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
        'LIST_COLUMN_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
    ];
    $id = HLHelpers::getInstance()->updateField($hlblockID, $fieldID, $arField);
    print_r($id); // bool, как результат
?>

根据 UF_NAME 更新 HighloadBlockTable 中的字段

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    $ufName = 'UF_TEST';
    $arField = [
        'SORT' => '100',
        'MANDATORY' => 'Y',
        'SETTINGS' => [
            'DEFAULT_VALUE' => 'empty',
        ],
        'EDIT_FORM_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
        'LIST_COLUMN_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
    ];
    $id = HLHelpers::getInstance()->updateFieldByName($hlblockID, $ufName, $arField);
    print_r($id); // bool, как результат
?>

在 HighloadBlockTable 中删除字段或字段

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    $result = HLHelpers::getInstance()->removeFields($hlblockID,[
        'UF_FIELD_1',
        'UF_FIELD_2',
    ]);
    print_r($result); // true|false
?>

删除 HighloadBlockTable

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    $result = HLHelpers::getInstance()->deleteHighloadBlock($hlblockID);
    print_r($result);
?>

获取所有 highloadblock

<?php
    use Darkfriend\HLHelpers;
    $arHL = HLHelpers::getInstance()->getList();
    print_r($arHL);
?>

获取所有 highloadblock 元素

<?php
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock

    $arHlElements = HLHelpers::getInstance()->getElementList($hlID);
    print_r($arHlElements);
?>

获取 highloadblock 中的行数

<?php
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock
    $filters = ['UF_FIELD_FIILTER'=>1];
    $totalElements = HLHelpers::getInstance()->getTotalCount($hlID, $filters);
    print_r($totalElements);
?>

向 highloadblock 添加新元素

<?php
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock
    // массив добавляемых значений, колонка=>значение
    $arFields = [
        'UF_FIELD1' => 'VALUE'
        ...
    ];

    $id = HLHelpers::getInstance()->addElement($hlID, $arFields);
    var_dump($id);
    // при false ошибка будет в HLHelpers::$LAST_ERROR
?>

更新 highloadblock 中的元素

<?php
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock
    $elID = 1; // идентификатор элемента
    // массив обновляемых значений, колонка=>значение
    $arFields = [
        'UF_FIELD1' => 'VALUE2'
        ...
    ];

    $isUpd = HLHelpers::getInstance()->updateElement($hlID, $elID, $arFields);
    var_dump($isUpd);
    // при false ошибка будет в HLHelpers::$LAST_ERROR
?>

从 highloadblock 中删除元素

<?php
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock
    $elID = 1; // идентификатор элемента

    $isDel = HLHelpers::getInstance()->deleteElement($hlID, $elID);
    var_dump($isDel);
    // при false ошибка будет в HLHelpers::$LAST_ERROR
?>

处理 highloadblock 中的 "列表" 字段

获取 highloadblock 中所有 "列表" 字段的值

<?php
    use Darkfriend\HLHelpers;
    $fieldName = "UF_FIELD"; // название поля

    $arValues = HLHelpers::getInstance()->getFieldValues($fieldName);
    print_r($arValues);
?>

从 highloadblock 获取 "列表" 值

<?php
    use Darkfriend\HLHelpers;
    $fieldName = "UF_FIELD"; // название поля
    $valID = 1; // идентификатор значения

    $arValue = HLHelpers::getInstance()->getFieldValue($fieldName,$valID);
    print_r($arValue);
?>

从 highloadblock 获取其 XML_ID 的 "列表" 值

<?php
    use Darkfriend\HLHelpers;
    $fieldName = "UF_FIELD"; // название поля
    $codeName = "CODE_VALUE"; // XML_ID значения

    $arValue = HLHelpers::getInstance()->getFieldValueByCode($fieldName,$codeName);
    print_r($arValue);
?>

在 highloadblock 中工作的灵活性

为了获得更好的灵活性,请使用

  • getEntityTable($hlblockID)
  • getElementsResource($hlblockID,$arFilter=[],$arOrder=["ID" => "ASC"],$arSelect=['*'],$arMoreParams=[])

在 highloadblock 中处理 "列表" 字段的灵活性

为了获得更好的灵活性,请使用

  • getFieldValuesList($arSort=['SORT' => 'ASC'],$arFilter=[])