Документация для разработчиков
Темная тема

Add

Описание и параметры

int CIBlockProperty::Add(
	array arFields
);

Метод добавляет новое свойство. Отменить добавление или изменить поля свойства можно в обработчике события OnBeforeIBlockPropertyAdd. После добавления нового свойства вызываются обработчики события OnAfterIBlockPropertyAdd. Нестатический метод.

Параметры вызова

ПараметрОписание
arFields Массив Array("поле"=>"значение", ...).
Содержит значения всех полей свойства. Кроме того, с помощью поля "VALUES", значением которого должен быть массив структуры
array(
	array(
		"VALUE"=>"значение",
		"DEF"=>"по умолчанию (Y/N)",
		"SORT"=>"индекс сортировки"
		...
	),
)
, можно установить варианты выбора для свойств типа "список" (подробнее смотрите метод CIBlockProperty::UpdateEnum()).

Возвращаемое значение

Метод возвращает ID добавленного свойства, если добавление прошло успешно, при возникновении ошибки метод вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

Примеры использования

<?
$arFields = Array(
	"NAME" => "Цвет",
	"ACTIVE" => "Y",
	"SORT" => "100",
	"CODE" => "color",
	"PROPERTY_TYPE" => "L",
	"IBLOCK_ID" => 11
);
$arFields["VALUES"][0] = Array(
	"VALUE" => "Красный",
	"DEF" => "N",
	"SORT" => "100"
);
$arFields["VALUES"][1] = Array(
	"VALUE" => "Желтый",
	"DEF" => "N",
	"SORT" => "200"
);
$arFields["VALUES"][2] = Array(
	"VALUE" => "Зеленый",
	"DEF" => "Y",
	"SORT" => "300"
);
$ibp = new CIBlockProperty;
$PropID = $ibp->Add($arFields);
?>
//добавление свойства типа "HTML"
$arFields = Array(
	"NAME" => "Итог",
	"ACTIVE" => "Y",
	"SORT" => "600",
	"CODE" => "ITOG",
	"PROPERTY_TYPE" => "S",
	"USER_TYPE" => "HTML", 
	"IBLOCK_ID" => $arParams["IBLOCK_ID"],
);
      
$ibp = new CIBlockProperty;
$PropID = $ibp->Add($arFields);


//для добавления свойства типа "Видео" в массиве arFields должно быть указано:
"PROPERTY_TYPE" => "S",
"USER_TYPE" => "video",
//установка параметра "Выводить поле для описания значения" для свойства инфоблока ("WITH_DESCRIPTION" => "Y")
// доступно только для типов свойств:  S - строка, N - число и F - файл
$arFields = Array(
	"NAME" => "Прочее",
	"ACTIVE" => "Y",
	"SORT" => "1700",
	"CODE" => "F_OTHER",
	"PROPERTY_TYPE" => "S",
	"IBLOCK_ID" => $IBLOCK_ID,
	"WITH_DESCRIPTION" => "Y",
);

$iblockproperty = new CIBlockProperty;
$PropertyID = $iblockproperty->Add($arFields);
//добавление к инфоблоку свойства типа "Справочник"
$arFields = Array(
	"NAME" => "Производитель",
	"ACTIVE" => "Y",
	"SORT" => "50",
	"CODE" => "PROIZVODITEL",
	"PROPERTY_TYPE" => "S",
	"USER_TYPE" => "directory",
	"IBLOCK_ID" => 888888888888888,//номер вашего инфоблока
	"LIST_TYPE" => "L",
	"MULTIPLE" => "N",
	"USER_TYPE_SETTINGS" => array("size"=>"1", "width"=>"0", "group"=>"N", "multiple"=>"N", "TABLE_NAME"=>"b_producers")
);

$ibp = new CIBlockProperty;
$PropID = $ibp->Add($arFields);


//затем следует в значение свойства вставить значение поля  UF_XML_ID от вашего справочника
CIBlockElement::SetPropertyValuesEx(123188, 888888888888888, array('PROIZVODITEL'=>'000000701'));


© «Битрикс», 2001-2024, «1С-Битрикс», 2024