Набор методов для работы с highloadblock 1С-Битрикс
- Как установить
- Работа с HighloadBlockTable
- Работа с элементами
- Работа с полем вида список
- Гибкость в работе с HighloadBlock
- Гибкость в работа с полем "список"
- Переходим в папку
/local/php_interface/lib/
composer require darkfriend/hlhelpers
- В файле
/local/php_interface/init.php
пишемrequire __DIR__.'/lib/vendor/autoload.php'
- Готово
- Копируем репозиторий в папку
/local/php_interface/lib/
- В файле
/local/php_interface/init.php
пишемrequire __DIR__.'/lib/hlhelpers/HLHelpers.php'
- Готово
<?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);
?>
<?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);
?>
<?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, как результат
?>
<?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, как результат
?>
<?php
use Darkfriend\HLHelpers;
$hlblockID = 1;
$result = HLHelpers::getInstance()->removeFields($hlblockID,[
'UF_FIELD_1',
'UF_FIELD_2',
]);
print_r($result); // true|false
?>
<?php
use Darkfriend\HLHelpers;
$hlblockID = 1;
$result = HLHelpers::getInstance()->deleteHighloadBlock($hlblockID);
print_r($result);
?>
<?php
use Darkfriend\HLHelpers;
$arHL = HLHelpers::getInstance()->getList();
print_r($arHL);
?>
<?php
use Darkfriend\HLHelpers;
$hlID = 1; // идентификатор highloadblock
$arHlElements = HLHelpers::getInstance()->getElementList($hlID);
print_r($arHlElements);
?>
<?php
use Darkfriend\HLHelpers;
$hlID = 1; // идентификатор highloadblock
$filters = ['UF_FIELD_FIILTER'=>1];
$totalElements = HLHelpers::getInstance()->getTotalCount($hlID, $filters);
print_r($totalElements);
?>
<?php
use Darkfriend\HLHelpers;
$hlID = 1; // идентификатор highloadblock
// массив добавляемых значений, колонка=>значение
$arFields = [
'UF_FIELD1' => 'VALUE'
...
];
$id = HLHelpers::getInstance()->addElement($hlID, $arFields);
var_dump($id);
// при false ошибка будет в HLHelpers::$LAST_ERROR
?>
<?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
?>
<?php
use Darkfriend\HLHelpers;
$hlID = 1; // идентификатор highloadblock
$elID = 1; // идентификатор элемента
$isDel = HLHelpers::getInstance()->deleteElement($hlID, $elID);
var_dump($isDel);
// при false ошибка будет в HLHelpers::$LAST_ERROR
?>
<?php
use Darkfriend\HLHelpers;
$fieldName = "UF_FIELD"; // название поля
$arValues = HLHelpers::getInstance()->getFieldValues($fieldName);
print_r($arValues);
?>
<?php
use Darkfriend\HLHelpers;
$fieldName = "UF_FIELD"; // название поля
$valID = 1; // идентификатор значения
$arValue = HLHelpers::getInstance()->getFieldValue($fieldName,$valID);
print_r($arValue);
?>
<?php
use Darkfriend\HLHelpers;
$fieldName = "UF_FIELD"; // название поля
$codeName = "CODE_VALUE"; // XML_ID значения
$arValue = HLHelpers::getInstance()->getFieldValueByCode($fieldName,$codeName);
print_r($arValue);
?>
Для обеспечения лучшей гибкости использовать:
getEntityTable($hlblockID)
getElementsResource($hlblockID,$arFilter=[],$arOrder=["ID" => "ASC"],$arSelect=['*'],$arMoreParams=[])
Для обеспечения лучшей гибкости использовать:
getFieldValuesList($arSort=['SORT'=>'ASC'],$arFilter=[])