Как добавить свойства в инфоблок.
В 1С битрикс есть такая прекрасная штука как Информационные блоки, или коротко – инфоблоки. У них, в свою очередь, есть свойства, которые мы и будем массово добавлять.
Массив с данными будет иметь следующий вид:
Array ( [1] => date [2] => update-date [3] => id [4] => url [5] => mark [6] => model [7] => year [8] => seller-city [9] => seller-phone [10] => seller [11] => price [12] => old_price [13] => currency-type [14] => run-metric [15] => run [16] => additional-info [17] => state [18] => color [19] => body-type [20] => doors-count [21] => engine-type [22] => gear-type [23] => displacement [24] => transmission [25] => horse-power [26] => steering-wheel [27] => vin [28] => stock [29] => haggle [30] => custom-house-state [31] => equipment [32] => image [33] => video )
После этого нам нужно всё загрузить в базу:
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");?> <? CModule::IncludeModule("iblock"); foreach($arrr as $p => $k) { $code = str_replace('-', '_', $k); $code = strtoupper($code); $arFields = Array( "NAME" => "$k", "ACTIVE" => "Y", "SORT" => "$p", "CODE" => "$code", "PROPERTY_TYPE" => "S", "IBLOCK_ID" => 23 ); $ibp = new CIBlockProperty; $PropID = $ibp->Add($arFields); }
На что стоит обратить внимание:
1. Знак тире “-” является недопустимым в языке PHP если вы указываете переменные. С символьными кодами такая же история.
2. Все символьные коды должны быть записаны в верхнем регистре (вы конечно можете их писать в нижнем, но это плохой тон для битрикса).
Немного типов свойств в самом битриксе, которые вам могут пригодится (PROPERTY_TYPE) :
S — Строка
N — Число
L — Список
F — Файл
G — Привязка к разделам
E — Привязка к элементам
S:map_yandex — Привязка к Яндекс.Карте
S:video — Видео
S:map_google — Привязка к карте Google Maps
N:CatalogIblock — Привязка к торговому каталогу
S:UserID — Привязка к пользователю
S:TopicID — Привязка к теме форума
E:EList — Привязка к элементам в виде списка
S:FileMan — Привязка к файлу (на сервере)
E:SKU — Привязка к товарам (SKU)
S:HTML — HTML/текст
N:Sequence — Счетчик
S:DateTime — Дата/Время
E:EAutocomplete — Привязка к элементам с автозаполнением
S:ElementXmlID — Привязка к элементам по XML_ID
И напоследок еще пример добавления свойства:
$arFields[0] = Array( "NAME" => 'название', "ACTIVE" => "Y", "SORT" => "500", "CODE" => "CODE", "PROPERTY_TYPE" => "N", // тип "IBLOCK_ID" => $IBLOCK_ID ); $ibp = new CIBlockProperty; if($PropID = $ibp->Add($arFields[0])) echo 'OK: '.$PropID . '<br/>'; else echo 'Error: '.$ibp->LAST_ERROR . '<br/>';
Вот и всё, надеюсь статья была для вас полезна :).