Создаю обработчик события добавления инфоблока, с целью добавлять новые умолчальные свойства:
Код |
---|
function OnAfterIBlockAddHandler(&$arFields){
if($arFields["ID"]>0) {
//Список Оценка rate
$prop_code = 'rate';
$arNewProps[$prop_code] = Array(
"NAME" => "Оценка",
"ACTIVE" => "Y",
"SORT" => "100",
"CODE" => $prop_code,
"PROPERTY_TYPE" => "L",
"IBLOCK_ID" => $arFields["ID"]
);
for ($i=0; $i<5; $i++) {
$arNewProps[$prop_code]["VALUES"][$i] = Array(
"VALUE" => $i+1,
"DEF" => "N",
"SORT" => ($i+1)*10
);
}
//Список Бесплатная доставка free_delivery
$prop_code = 'free_delivery';
$arNewProps[$prop_code] = Array(
'NAME' => 'Бесплатная доставка',
'ACTIVE' => 'Y',
'SORT' => '200',
'CODE' => $prop_code,
'PROPERTY_TYPE' => 'L',
'LIST_TYPE' => 'C',
'IBLOCK_ID' => $arFields['ID']
);
$arNewProps[$prop_code]['VALUES'][0] = Array(
'VALUE' => 'да',
'DEF' => 'N',
'SORT' => '100'
);
................................................................
................................................................
//Список Нет в наличии notavailable
$prop_code = 'notavailable';
$arNewProps[$prop_code] = Array(
'NAME' => 'Нет в наличии',
'ACTIVE' => 'Y',
'SORT' => '900',
'CODE' => $prop_code,
'PROPERTY_TYPE' => 'L',
'LIST_TYPE' => 'C',
'IBLOCK_ID' => $arFields['ID']
);
$arNewProps[$prop_code]['VALUES'][0] = Array(
'VALUE' => 'да',
'DEF' => 'N',
'SORT' => '100'
);
$ibp = new CIBlockProperty;
foreach ($arNewProps as $arProp) {
$PropID = $ibp->Add($arProp);
}
}
}
|
многоточие заменяет набор свойств - сократил вставляемый код.
В принципе все дефолтненько, но свойства создаются неактивными. В чем может быть проблема?
1С-Битрикс: Управление сайтом 8.5.1 (обновится не могу по объективным причинам)
P.S.
Всю кривость архитектуры которая видна сквозь код полностью осознаю, но она не моя и исправлять не буду...