Как добавить изображение в товар UMI CMS?

196
21 августа 2018, 17:00

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

public function addImageToObject($e) {
      if($e->getMode() == "after") {
        $element = $e->getRef('element');
        if ($element->getMethod() != 'object') return false;
        $image1C = new umiImageFile($element->getValue('photo'));
        $element->setValue("photos", [$image1C]);
        $element->commit();
      }
}

Объект в $image1C есть:

    __PHP_Incomplete_Class Object
(
    [__PHP_Incomplete_Class_Name] => umiImageFile
    [sImageType:umiImageFile:private] => JPEG
    [iImageWidth:umiImageFile:private] => 450
    [iImageHeight:umiImageFile:private] => 450
    [alt:umiImageFile:private] => 
    [filepath:protected] => ./images/cms/data/import_files/b0/sprut_mrs-5.jpeg
    [size:protected] => 60968
    [ext:protected] => jpeg
    [name:protected] => sprut_mrs-5.jpeg
    [dirname:protected] => ./images/cms/data/import_files/b0
    [modify_time:protected] => 1530800215
    [is_broken:protected] => 
    [order:protected] => 
    [id:protected] => 
    [ignoreSecurity:umiFile:private] => 
    [isReadable:umiFile:private] => 1
    [isWritable:umiFile:private] => 1
)
Answer 1

Ни к чему оборачивать $element->getValue('photo') в umiImageFile. Для полей с изображением и так возвращается экземпляр umiImageFile.

После такой модификации у меня сработало:

public function addImageToObject($e) {
      if($e->getMode() == "after") {
        $element = $e->getRef('element');
        if ($element->getMethod() != 'object') return false;
        $element->setValue("photos", [$element->getValue('photo')]);
        $element->commit();
      }
}
READ ALSO
Как сгруппировать элементы массивов?

Как сгруппировать элементы массивов?

Подскажите, пожалуйста, идеи, как можно сгруппировать такого рода массивы:

198
как записать JSON массив в csv на php

как записать JSON массив в csv на php

вот что есть на данный момент

208