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-2025, «1С-Битрикс», 2025