Upload
-
View
1.037
Download
8
Tags:
Embed Size (px)
DESCRIPTION
Автор: Валерия Алексеева, веб-разработчик компании "Центр Высоких Технологий". Использование Highload-блоков в работе. Highload-блоки - модуль для работы с произвольными наборами данных в условиях высоких нагрузок.
Citation preview
Highload блоки
Валерия Алексеевавеб-программист компании Центр Высоких Технологий
Что такое highload блоки?
Модуль позволяет создавать сущности для хранения произвольных данных.
Доступные пользовательские поля:
• Фаил• Список• Привязка к разделам ИБ• Привязка к элементам ИБ• Шаблон• Опрос
• Видео • Строка• Целое число• Число• Дата со временем• Дата• Да / Нет
Зачем они?
news.list vs highloadblock.list
Новое API
Объявляем класс сущности
CModule::IncludeModule( 'highloadblock' );
use Bitrix\Highloadblock as HL;
$entity = HL\HighloadBlockTable::compileEntity( array(
'ID' => 6,
'NAME' => 'Goods',
'TABLE_NAME' => 'goods'
));
$entityDataClass = $entity->getDataClass();
Получение списка записей из highload блока
$goodsCursor = $entityDataClass::getList( array(
'select' => array( 'ID', 'UF_GOODS_NAME' ),
'order' => array( 'UF_GOODS_NAME' => 'ASC' ),
'filter' => array( 'UF_GOODS_COUNT' => 100 )
));
while ( $goods = $goodsCursor->fetch() ) {
var_dump( $goods );
}
Удаление записи из highload блока
$goodsId = 14; // где 14- это id записи
$result = $entityDataClass::delete( $goodsId );
if ( $result->isSuccess() ) {
// Запись удалена
}
Изменение записи в highload блоке
$goodsId = 3; // Идентификатор записи в highload блоке
$result = $entityDataClass::update(
$goodsId,
array(
'UF_GOODS_NAME' => 'iPad Mini'
)
);
if ( $result->isSuccess() ) {
// Запись добавлена
}
Добавление нового highload блока
$highloadBlockData = array (
'NAME' => 'Goods',
'TABLE_NAME' => 'goods'
);
$result = HL\HighloadBlockTable::add( $highloadBlockData );
if ( $result->isSuccess() ) {
// Highload добавлен
}
Изменение highload блока$data = array(
'NAME' => 'Goods',
'TABLE_NAME' => 'goodsnew'
);
$highloadBlockId = 15; // где 15 - это id Highload блока
$result = HL\HighloadBlockTable::update(
$highloadBlockId,
$data
);
if ( $result->isSuccess() ) {
// Highload успешно изменён
}
Удаление highload блока
$highloadBlockId = 15; // где 15 - это id Highload блока
HL\HighloadBlockTable::delete( $highloadBlockId );
Получение информации о highload блоке
$highloadTableName = 'goods';
$highloadBlockCursor = HL\HighloadBlockTable::getList( array(
'filter' => array(
'TABLE_NAME' => $highloadTableName
),
'select' => array(
'ID' /* Требуемые поля */
),
));
$highloadBlock = $highloadBlockCursor->fetch();
Добавление нового свойства$userTypeEntity = new CUserTypeEntity();
$userTypeData = array(
'ENTITY_ID' => 'HLBLOCK_1', /*где 1- это id highload блока*/
'FIELD_NAME' => 'UF_GOODS_NAME',
'USER_TYPE_ID' => 'string',
'MANDATORY' => 'N',
'SHOW_FILTER' => 'Y',
'IS_SEARCHABLE' => 'N',
'EDIT_FORM_LABEL' => array(
'ru' => 'Наименование товара',
'en' => 'Description of goods',),
'LIST_COLUMN_LABEL' => array(
'ru' => 'Наименование товара',
'en' => 'Description of goods',),
'LIST_FILTER_LABEL' => array(
'ru' => 'Наименование товара',
'en' => 'Description of goods',
),
);
$userTypeId = $userTypeEntity->Add( $userTypeData );
Добавление записи в highload блок
$highloadBlockData = array(
'ID' => 6,
'NAME' => 'Goods',
'TABLE_NAME' => 'goods'
);
$entity = HL\HighloadBlockTable::compileEntity( $highloadBlockData );
$entityDataClass = $entity->getDataClass();
$result = $entityDataClass::add( array(
'UF_USER_NAME' => 'Иванов Пётр'
));
if ( $result->isSuccess() ) {
// Запись добавлена
}
Групповые операции
Добавление свойств в фильтр
Highload блоки 15.0
1. Импорт/экспорт.
2. Поддержка прав.
3. Доработка компонентов и шаблонов.
4. Интеграция с модулем поиска.