wheatleywl / bx-iblock-helpers

用于简化Bitrix中iblocks和hlblocks的辅助函数

1.1.1 2019-11-25 14:45 UTC

This package is auto-updated.

Last update: 2024-09-26 02:11:01 UTC


README

这是一个用于简化1C-Bitrix中infoblocks和Highload blocks操作的库。

功能

  • 通过符号代码、类型和网站获取infoblock的ID;
  • 通过符号代码和infoblock的ID获取infoblock属性的ID;
  • 通过符号代码和infoblock的ID获取infoblock节点的ID;
  • 通过XML_ID、属性代码和infoblock的ID获取类型为“列表”的属性中的项目ID;
  • 通过ID、属性代码和infoblock的ID获取类型为“列表”的属性中的项目的XML_ID;
  • 通过Highload block的名称获取用于操作Highload block的类;
  • 通过Highload block的表名称获取用于操作Highload block的类。

安装

可以使用Composer将库添加到项目中。

composer require wheatleywl/bx-iblock-helpers

在文件/local/php_interface/init.php中,需要从vendor文件夹中添加对autoload.php的连接。

使用示例

通过符号代码、类型和网站获取infoblock的ID

use \WheatleyWL\BXIBlockHelpers\IBlockHelper;

// выборка инфоблока по коду
$iblockId = IBlockHelper::getIBlockIdByCode('pages');

// выборка инфоблока по коду и типу инфоблока
$iblockId = IBlockHelper::getIBlockIdByCode('pages', 'content');

// выборка инфоблока по коду, типу инфоблока и идентификатору сайта
$iblockId = IBlockHelper::getIBlockIdByCode('pages', 'content', 's1');

// выборка инфоблока по коду и идентификатору сайта
$iblockId = IBlockHelper::getIBlockIdByCode('pages', null, 's1');

注意:在从管理区域请求infoblock的ID时,必须指定infoblock所属的网站标识符。

通过符号代码和infoblock的ID获取属性ID

$propCode = IBlockHelper::getPropertyIdByCode('BLOCK', 1);

通过符号代码和infoblock的ID获取节点ID

$section = IBlockHelper::getSectionIdByCode('AWESOME_SECTION', 1);

通过XML_ID获取节点ID

$enumId = IBlockHelper::getEnumIdByXmlId('FLAT', 'CONTAINER_STYLE', 1);

通过ID获取节点的XML_ID

$xmlId = IBlockHelper::getXmlIdByEnumId(1, 'CONTAINER_STYLE', 1);

通过名称获取Highload block的类

use \WheatleyWL\BXIBlockHelpers\HLHelper;

$entity = HLHelper::getClassByName('TestEntity');

通过表名称获取Highload block的类

$entity = HLHelper::getClassByName('test_entities');

错误处理

如果无法找到所需的实体或发生其他错误(例如,无法连接模块或传入的数据不正确),将抛出IBlockHelperException或HLHelperException异常,具体取决于使用的类。