18
Highload блоки Валерия Алексеева веб-программист компании Центр Высоких Технологий

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

  • Upload
    -

  • View
    1.037

  • Download
    8

Embed Size (px)

DESCRIPTION

Автор: Валерия Алексеева, веб-разработчик компании "Центр Высоких Технологий". Использование Highload-блоков в работе. Highload-блоки - модуль для работы с произвольными наборами данных в условиях высоких нагрузок.

Citation preview

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

Highload блоки

Валерия Алексеевавеб-программист компании Центр Высоких Технологий

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

Что такое highload блоки?

Модуль позволяет создавать сущности для хранения произвольных данных.

Доступные пользовательские поля:

• Фаил• Список• Привязка к разделам ИБ• Привязка к элементам ИБ• Шаблон• Опрос

• Видео • Строка• Целое число• Число• Дата со временем• Дата• Да / Нет

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

Зачем они?

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

news.list vs highloadblock.list

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

Новое API

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

Объявляем класс сущности

CModule::IncludeModule( 'highloadblock' );

use Bitrix\Highloadblock as HL;

$entity = HL\HighloadBlockTable::compileEntity( array(

'ID' => 6,

'NAME' => 'Goods',

'TABLE_NAME' => 'goods'

));

$entityDataClass = $entity->getDataClass();

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

Получение списка записей из 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 );

}

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

Удаление записи из highload блока

$goodsId = 14; // где 14- это id записи

$result = $entityDataClass::delete( $goodsId );

if ( $result->isSuccess() ) {

// Запись удалена

}

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

Изменение записи в highload блоке

$goodsId = 3; // Идентификатор записи в highload блоке

$result = $entityDataClass::update(

$goodsId,

array(

'UF_GOODS_NAME' => 'iPad Mini'

)

);

if ( $result->isSuccess() ) {

// Запись добавлена

}

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

Добавление нового highload блока

$highloadBlockData = array (

'NAME' => 'Goods',

'TABLE_NAME' => 'goods'

);

$result = HL\HighloadBlockTable::add( $highloadBlockData );

if ( $result->isSuccess() ) {

// Highload добавлен

}

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

Изменение highload блока$data = array(

'NAME' => 'Goods',

'TABLE_NAME' => 'goodsnew'

);

$highloadBlockId = 15; // где 15 - это id Highload блока

$result = HL\HighloadBlockTable::update(

$highloadBlockId,

$data

);

if ( $result->isSuccess() ) {

// Highload успешно изменён

}

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

Удаление highload блока

$highloadBlockId = 15; // где 15 - это id Highload блока

HL\HighloadBlockTable::delete( $highloadBlockId );

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

Получение информации о highload блоке

$highloadTableName = 'goods';

$highloadBlockCursor = HL\HighloadBlockTable::getList( array(

'filter' => array(

'TABLE_NAME' => $highloadTableName

),

'select' => array(

'ID' /* Требуемые поля */

),

));

$highloadBlock = $highloadBlockCursor->fetch();

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

Добавление нового свойства$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 );

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

Добавление записи в 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() ) {

// Запись добавлена

}

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

Групповые операции

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

Добавление свойств в фильтр

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

Highload блоки 15.0

1. Импорт/экспорт.

2. Поддержка прав.

3. Доработка компонентов и шаблонов.

4. Интеграция с модулем поиска.