Почему из файла не срабатывает runProcessor gallery/upload, а в Console срабатывает ?
Здравствуйте, подскажите пожалуйста. Почему-то из файла не срабатывает установка картинки через gallery/upload
А в редакторе php-кода (Console) этот код срабатывает, картинка устанавливается.
Подскажите пожалуйста может я что-то забыл ещё подключить?
Заранее благодарю за ответ.
Ещё дополню а в журнале ошибок после выполнения этого скрипта из файла выводится вот что:
/* 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
Комментарии: 4
Не подключены службы, поэтому и не работает ms2Gallery.
Добавь под require_once('/var/www/domain/data/www/domain/index.php'); службы:
Добавь под 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/');
Благодарю вас за комментарий. Нет к сожалению всё равно не работает, у меня нету 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
Похоже getObject как-то не корректно работает у меня.
Возвращает объект товара а в нём source нет.
Из за того что source нет, процесс и не срабатывает похоже.
Но когда через Console вызываю getObject, то там source есть у объекта который возвращается.
И наверно поэтому в Console и срабатывает процесс.
Возвращает объект товара а в нём source нет.
Из за того что source нет, процесс и не срабатывает похоже.
Но когда через Console вызываю getObject, то там source есть у объекта который возвращается.
И наверно поэтому в Console и срабатывает процесс.
Когда подключил API modx вот так:
source = 3 и процесс запустился
/* 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 и процесс запустился
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.