hlhelpers
hlhelpers copied to clipboard
Набор методов для работы с highloadblock 1С-Битрикс
HLHelpers
Набор методов для работы с highloadblock 1С-Битрикс
Содержание
- Как установить
- Работа с HighloadBlockTable
- Получить все highloadblock
- Создать HighloadBlockTable
- Добавить поле в HighloadBlockTable
- Обновить поле в HighloadBlockTable по ID
- Обновить поле в HighloadBlockTable по UF_NAME
- Удалить поле или поля в HighloadBlockTable
- Удалить HighloadBlockTable
- Работа с элементами
- Получить все элементы
- Получить количество строк
- Добавить новый элемент
- Обновить элемент
- Удалить элемент
- Работа с полем вида список
- Получить все значения списка
- Получить 1 значение списка
- Получить 1 значение списка по его XML_ID
- Гибкость в работе с 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);
?>
Обновить поле в HighloadBlockTable по ID
<?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, как результат
?>
Обновить поле в HighloadBlockTable по UF_NAME
<?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);
?>
Получить значение списка по его XML_ID из highloadblock
<?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=[])