Почему из файла не срабатывает runProcessor gallery/upload, а в Console срабатывает ?

Здравствуйте, подскажите пожалуйста. Почему-то из файла не срабатывает установка картинки через gallery/upload

/* include MODX_API BEGIN */
define('MODX_API_MODE', true);
require_once('/var/www/domain/data/www/domain/index.php');
$modx=new modX();
$modx->initialize('web');
/* include MODX_API END */

$product = $modx->getObject('msProduct', 1);
$properties = $product->getProperties('ms2gallery');
var_dump($properties);

$data = [
    'id' => 1,
    'name' => '',
    'rank' => 0,
    'file' => '/var/www/domain/data/www/domain/assets/file.jpg',
];
$response = $modx->runProcessor('gallery/upload', $data, array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/'));
var_dump($response->getAllErrors());
Метод getAllErrors возвращает «ms2_gallery_err_no_source». Но в var_dump($properties); выводится media_source = 3.
А в редакторе php-кода (Console) этот код срабатывает, картинка устанавливается.
Подскажите пожалуйста может я что-то забыл ещё подключить?
Заранее благодарю за ответ.

Ещё дополню а в журнале ошибок после выполнения этого скрипта из файла выводится вот что:

domain/core/xpdo/xpdo.class.php : 1321 Could not get table class for class: msProductData
domain/core/xpdo/xpdo.class.php : 1290 Could not get table name for class: msProductData
domain/core/xpdo/om/xpdoobject.class.php : 240 Error 42000 executing statement: 
Array
(
    [0] => 42000
    [1] => 1064
    [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS `msProductData` WHERE `msProductData`.`id` = 1' at line 1
)
domain/core/xpdo/xpdo.class.php : 1290 Could not get table name for class: msProductData
Сергей Хлопов
28 июля 2021, 19:45
modx.pro
908
0

Комментарии: 4

Сергей
28 июля 2021, 23:29
0
Не подключены службы, поэтому и не работает ms2Gallery.
Добавь под require_once('/var/www/domain/data/www/domain/index.php'); службы:
// Подключение нужных служб
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$modx->ms2Gallery = $modx->getService('ms2gallery', 'ms2Gallery', MODX_CORE_PATH . 'components/ms2gallery/model/ms2gallery/');
    Сергей Хлопов
    29 июля 2021, 08:39
    0
    Благодарю вас за комментарий. Нет к сожалению всё равно не работает, у меня нету ms2Gallery.
    Пишет вот что:
    Could not load class: ms2Gallery from ms2gallery.
    Problem getting service ms2gallery, instance of class ms2Gallery, from path domain/core/components/ms2gallery/model/ms2gallery/
    Я просто думаю gallery/upload он же из minishop2. Просто ещё странно что на другом сайте который тоже на modx такая конструкция работает из файла, а на данном сайте нет почему-то. Может из-за того что обновил modx
    Сергей Хлопов
    29 июля 2021, 11:54
    0
    Похоже getObject как-то не корректно работает у меня.
    Возвращает объект товара а в нём source нет.
    Из за того что source нет, процесс и не срабатывает похоже.
    Но когда через Console вызываю getObject, то там source есть у объекта который возвращается.
    И наверно поэтому в Console и срабатывает процесс.
      Сергей Хлопов
      29 июля 2021, 14:38
      0
      Когда подключил API modx вот так:
      /* include MODX_API BEGIN */
      define('MODX_API_MODE', true);
      require_once('/var/www/domain/data/www/domain/index.php');
      /* include MODX_API END */
      $product = $modx->getObject('msProduct', 20387);
      $modx->log(1, print_r($product->get('source'), 1),'HTML');
      То заработало.
      source = 3 и процесс запустился
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4