Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Обновление элемента инфоблока, не пойму в чём проблема

00 голосов
2
Здравствуйте, пытаюсь при добавлении элементов инфоблока изменить детальную картинку и картинку анонса.

Файл init.php

Код
<?

//Регистрация обработчиков
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("IBlockElement", "OnAfterIBlockElementAddHandler"));

class IBlockElement
{
    // создаем обработчик события "OnAfterIBlockElementAdd"
    function OnAfterIBlockElementAddHandler(&$arFields)
    {
        if($arFields["ID"]>0 && $arFields['IBLOCK_ID'] == 2){
         $elementID   = $arFields['ID'];
         $videoID   = $arFields['PROPERTY_VALUES'][2]['n0']['VALUE'];
         if(CModule::IncludeModule("iblock")){
            $arOreder = array(
            'SORT'   => 'ASC'
            );
            $arFilter = array(
               'ID'      => $videoID,
               'ACTIVE'   => 'Y',
               'IBLOCK_ID'   => 3
            );
            $arSelectFields = array(
               'ID',
               'NAME',
               'DETAIL_PICTURE',
               'PROPERTY_FILE'
            );
            $cdbVideo = CIBlockElement::GetList($arOreder, $arFilter, false, false, $arSelectFields);
            $arVideoValues = $cdbVideo->GetNext();
            $arVideo = CFile::GetFileArray($arVideoValues['PROPERTY_FILE_VALUE']);
            $arScreen = CFile::GetFileArray($arVideoValues['DETAIL_PICTURE']);
            
            $Element = new CIBlockElement;
            $arLoadElementArray = array(
               "DETAIL_PICTURE"   => $arScreen,
               "PREVIEW_PICTURE"   => $arScreen
            );
            file_put_contents($_SERVER['DOCUMENT_ROOT'].'/log.txt', "\n\n". 'Update from:->'.(int)$elementID, FILE_APPEND);
            $updateResult = $Element->Update((int)$elementID, $arLoadElementArray, false, false, true);
            if($updateResult){
               file_put_contents($_SERVER['DOCUMENT_ROOT'].'/log.txt', "\n\n".var_export($arScreen, true), FILE_APPEND);
            }else{
               file_put_contents($_SERVER['DOCUMENT_ROOT'].'/log.txt', "\n\n".$updateResult->LAST_ERROR(), FILE_APPEND);
            };
         }
         
      }
    }
}
?>


Метод Update возвращает true. Но при этом добавление не происходит, вот что в лог падает

Цитата


Update from:->64

array (
'ID' => '97',
'TIMESTAMP_X' => '23.09.2011 12:55:40',
'MODULE_ID' => 'iblock',
'HEIGHT' => '240',
'WIDTH' => '320',
'FILE_SIZE' => '9533',
'CONTENT_TYPE' => 'image/jpeg',
'SUBDIR' => 'iblock/e73',
'FILE_NAME' => 'video.jpg',
'ORIGINAL_NAME' => 'video.jpg',
'DESCRIPTION' => '',
'SRC' => '/upload/iblock/e73/video.jpg',
)


Из лога видно, что и ID элемента передаётся и массив файла. Скажите, что я делаю не так.
спросил 25 Янв, 14 от Limur (240 баллов)

2 Ответы

00 голосов
nigger nigger nigger
ответил 23 Апр, 14 от аноним
00 голосов
Ау, люди. Хелп ми плиз
ответил 23 Май, 14 от Limur (240 баллов)
я думаю, нужно забить

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

0 голосов
3 ответов
0 голосов
7 ответов
спросил 14 Июль, 13 от andrey2 (160 баллов)
0 голосов
4 ответов
спросил 11 Окт, 13 от UGeen (140 баллов)
0 голосов
7 ответов
0 голосов
1 ответ