• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/classes/general/restentity.php
  • Класс: CBitrixRestEntity
  • Вызов: CBitrixRestEntity::entityAdd
static function entityAdd($params, $n, $server)
{
	global $USER;

	if(self::checkParams($params))
	{
		if(!self::checkEntity($params['ENTITY'], $server))
		{
			if(!isset($params['ACCESS']) || !is_array($params['ACCESS']))
			{
				$params['ACCESS'] = array();
			}

			$params['ACCESS']['U'.$USER->GetID()] = 'X';

			$arIBlockFields = array(
				'IBLOCK_TYPE_ID' => self::getIBlockType(),
				"NAME" => trim($params['NAME']),
				"CODE" => self::getEntityIBlockCode($params['ENTITY'], $server),
				"ACTIVE" => "Y",
				'WORKFLOW' => 'N',
				'INDEX_SECTION' => 'N',
				'INDEX_ELEMENT' => 'N',
				'VERSION' => 1,
				'RIGHTS_MODE' => 'E',
				'RIGHTS' => self::checkRights($params['ACCESS']),
				'SITE_ID' => CSite::GetDefSite()
			);

			$ib = new CIBlock();
			$ID = $ib->Add($arIBlockFields);
			if($ID > 0)
			{
				//$server->setStatus(CRestServer::STATUS_CREATED);
				return true;
			}
			else
			{
				throw new RestException($ib->LAST_ERROR, RestException::ERROR_CORE);
			}
		}
		else
		{
			throw new RestException('Entity already exists', self::ERROR_ENTITY_ALREADY_EXISTS);
		}
	}
}