コード例 #1
0
 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()));
 }
コード例 #2
0
 /**
  * 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;
 }
コード例 #3
0
ファイル: references.php プロジェクト: ASDAFF/entask.ru
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',
コード例 #4
0
ファイル: HighLoadIb.php プロジェクト: marvin255/bxmigrate
 /**
  * @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];
 }