«Highload блоки и новое api к ним»

  • View
    1.037

  • Download
    8

  • Category

    Software

Preview:

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. Интеграция с модулем поиска.

Recommended