пятница, 18 января 2013 г.

Добавление элемента со множественным свойством типа Файл.

Заметил что в API-документации битрикса не хватает одной маленькой, но иногда очень нужной мелочи.
При создании елмента, через API, не увидел примера добавления пользовательского, множественного свойства типа "Файл".

Как оказалось все до банального просто и не интеренсо, но на всякий случай опишу, может кому то пригодится.

Что бы добавить пользовательское свйоство типа файл, необходмо сначала обработать этот файл методом  CFile::MakeFileArray.

$file_arr = CFile::MakeFileArray( #Полный путь к файлу #);

Если у нес несколько файлов и поле множественное то это надо заключить в цикл

 
foreach( $file_arr as $file){
     $more_src[] = CFile::MakeFileArray( $file );
 }

где:
$file_arr - Массив с путями картинок.

После присвоим полученый массив в массив пользовательских свойств.

$PROP[3] = $more_src;

где:
ключ 3 - ID Пользовательского свойства, ID можно заменить символьным кодом.

Следущим шагом будет заполнение массива с остальными полями:
$arLoadProductArray = Array(
        "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
        "IBLOCK_SECTION_ID" =>"",        
        "IBLOCK_ID"      => #IBLOCK_ID#,
        "PROPERTY_VALUES" =>  $PROP,
 );

Описание этих полей можете найти в документации 1С-Битрикс.

Все остальное останется неизменным

CModule::IncludeModule("iblock");
$el = new CIBlockElement;
$PRODUCT_ID = $el->Add($arLoadProductArray)

После  выполнения кода должны получить примерно следующее:
1c-Битрикс - заполнения пользовательского множественого свойства типа Файл.


Надеюсь эта статья кому то поможет, и я потратил время не зря.