public function addHlblock($fields) { $this->checkRequiredKeys(__METHOD__, $fields, array('NAME', 'TABLE_NAME')); $fields['NAME'] = ucfirst($fields['NAME']); $result = HL\HighloadBlockTable::add($fields); if ($result->getId()) { return $result->getId(); } $this->throwException(__METHOD__, implode(', ', $result->getErrors())); }
/** * Add * @param $entityName * @param $tableName * @return bool * @throws \Exception */ public static function Add($entityName, $tableName) { if (empty($entityName)) { throw new BimException('entityName is empty'); } if (empty($tableName)) { throw new BimException('tableName is empty'); } $addFields = array('NAME' => trim($entityName), 'TABLE_NAME' => trim($tableName)); $addResult = HL\HighloadBlockTable::add($addFields); if (!$addResult->isSuccess()) { throw new \Exception(implode(", ", $addResult->getErrorMessages())); } return true; }
use Bitrix\Highloadblock as HL; $dbHblock = HL\HighloadBlockTable::getList( array( "filter" => array("NAME" => "ColorReference") ) ); if ($dbHblock->Fetch()) return; $data = array( 'NAME' => 'ColorReference', 'TABLE_NAME' => 'eshop_color_reference', ); $result = HL\HighloadBlockTable::add($data); $ID = $result->getId(); $_SESSION["ESHOP_HBLOCK_ID"] = $ID; $hldata = HL\HighloadBlockTable::getById($ID)->fetch(); $hlentity = HL\HighloadBlockTable::compileEntity($hldata); //adding user fields $arUserFields = array ( array ( 'ENTITY_ID' => 'HLBLOCK_'.$ID, 'FIELD_NAME' => 'UF_NAME', 'USER_TYPE_ID' => 'string', 'XML_ID' => 'UF_COLOR_NAME', 'SORT' => '100',
/** * @return array */ protected function infrastructureCheck() { $table = $this->getTableName(); $modelName = $this->getModelName(); //проверяем существует ли таблица миграций $filter = array('select' => array('ID', 'NAME', 'TABLE_NAME'), 'filter' => array('=TABLE_NAME' => $table)); $hlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList($filter)->fetch(); //создаем таблицу, если она не существует if (empty($hlblock['ID'])) { $result = \Bitrix\Highloadblock\HighloadBlockTable::add(['NAME' => $modelName, 'TABLE_NAME' => $table]); $id = $result->getId(); if (!$id) { throw new \marvin255\bxmigrate\Exception('Can\'t create HL table'); } } else { $id = $hlblock['ID']; } //проверяем поля таблицы, чтобы были все $fields = []; $rsData = CUserTypeEntity::GetList([], ['ENTITY_ID' => "HLBLOCK_{$id}"]); while ($ob = $rsData->GetNext()) { $fields[$ob['FIELD_NAME']] = $ob['ID']; } //название миграции if (empty($fields['UF_MIGRATION_NAME'])) { $obUserField = new CUserTypeEntity(); $idRes = $obUserField->Add(['USER_TYPE_ID' => 'string', 'ENTITY_ID' => "HLBLOCK_{$id}", 'FIELD_NAME' => 'UF_MIGRATION_NAME', 'EDIT_FORM_LABEL' => ['ru' => 'Название миграции']]); if (!$idRes) { throw new \marvin255\bxmigrate\Exception('Can\'t create UF_MIGRATION_NAME property'); } } //дата миграции if (empty($fields['UF_MIGRATION_DATE'])) { $obUserField = new CUserTypeEntity(); $idRes = $obUserField->Add(['USER_TYPE_ID' => 'string', 'ENTITY_ID' => "HLBLOCK_{$id}", 'FIELD_NAME' => 'UF_MIGRATION_DATE', 'EDIT_FORM_LABEL' => ['ru' => 'Дата миграции']]); if (!$idRes) { throw new \marvin255\bxmigrate\Exception('Can\'t create UF_MIGRATION_DATE property'); } } return ['ID' => $id, 'NAME' => $modelName, 'TABLE_NAME' => $table]; }