@wb_by
Учусь

Почему в элемент не добавляется массив изображения?

Сделал типо комментарии на ИБ (так мне удобно), сделал форму добавления комментария с вот таким обработчиком:
<?
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. В первом дампе все нормально, а во втором массива нет:
5ee744210a411590810657.png

Как это исправить?
  • Вопрос задан
  • 489 просмотров
Решения вопроса 1
@anton99zel Куратор тега 1С-Битрикс
29а класс средней школы №7
Путь к картинке должен начинаться с $_SERVER['DOCUMENT_ROOT']
В комментах примеры
https://dev.1c-bitrix.ru/api_help/iblock/classes/c...
И
Как добавить картинки на инфоблок через API?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
scottparker
@scottparker
там же вроде не массив хранится, а id картинки
Ответ написан
smilingcheater
@smilingcheater
Зачем вы хотите в каждый отзыв копировать аватар пользователя? Это как минимум не рационально. В отзыве уже хранится ИД пользователя, при выводе картинки просто доставайте его аватар.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы