• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/model/propertyfeature.php
  • Класс: BitrixIblockModelPropertyFeature
  • Вызов: PropertyFeature::addFeatures
static function addFeatures($propertyId, array $features): MainEntityResult
{
	$result = new MainEntityResult();

	$propertyId = (int)$propertyId;
	if ($propertyId <= 0)
	{
		$result->addError(new MainError(
			Loc::getMessage('PROPERTY_FEATURE_ERR_BAD_PROPERTY_ID')
		));
		return $result;
	}

	if (empty($features))
	{
		$result->addError(new MainError(
			Loc::getMessage('PROPERTY_FEATURE_ERR_EMPTY_FEATURE_LIST')
		));
		return $result;
	}
	$features = self::checkFeatureList($features);
	if ($features === null)
	{
		$result->addError(new MainError(
			Loc::getMessage('PROPERTY_FEATURE_ERR_BAD_FEATURE_LIST')
		));
		return $result;
	}

	$resultIds = [];
	foreach ($features as $row)
	{
		$row['PROPERTY_ID'] = $propertyId;
		$internalResult = IblockPropertyFeatureTable::add($row);
		if (!$internalResult->isSuccess())
		{
			$result->addErrors($internalResult->getErrors());
			return $result;
		}

		$resultIds[] = $internalResult->getId();
	}
	unset($internalResult, $row);

	$result->setData($resultIds);
	return $result;
}