Сделал типо комментарии на ИБ (так мне удобно), сделал форму добавления комментария с вот таким обработчиком:
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die('Скрипт должен быть запущен в битриксе');
?>
<?
if($APPLICATION->CaptchaCheckCode($_POST["captcha_word"], $_POST["captcha_code"]) || ($USER->IsAuthorized()))
{
CModule::IncludeModule('iblock');
$el = new CIBlockElement;
$fields = array(
"DATE_CREATE" => date("d.m.Y H:i:s"),
"DATE_ACTIVE_FROM" => date("d.m.Y H:i:s"),
"IBLOCK_ID" => (int) $_POST['iblockID'],
"NAME" => strip_tags($_POST['authorName']),
"ACTIVE" => "Y",
"PREVIEW_TEXT" => strip_tags($_REQUEST['comment']),
"PREVIEW_PICTURE" => NULL,
"PROPERTY_VALUES" => [
"LINKED_USER" => NULL,
"LINKED_ELEMENT" => $_POST['linkedElement'],
]
);
if ($USER->IsAuthorized()){
$fields['PREVIEW_PICTURE'] = CFile::GetFileArray($USER->GetParam('PERSONAL_PHOTO'));
$fields['PROPERTY_VALUES']['LINKED_USER'] = $USER->GetID();
}
if ($ID = $el->Add($fields)) {
echo "Сохранено";
dump($fields['PREVIEW_PICTURE']);
$rs = CIBlockElement::GetList(array(), array("ID" => $ID), false, false, array("ID", "PREVIEW_PICTURE"));
if($ar = $rs->GetNext())
dump($ar);
//header('Location: '.$_SERVER['HTTP_REFERER']);
} else {
echo '<p>Ошибка при добавлении:<br>'.$el->LAST_ERROR.'</p>';
}
}else{
die('<p>Капча введена неправильно!</p>');
}
?>
Не могу заставить метод add добавить к элементу массив PREVIEW_PICTURE. В первом дампе все нормально, а во втором массива нет:
Как это исправить?