Загрузка изображений в галерею miniShop2 из фронтэ
Доброго времени суток.
Не получается решить проблему с загрузкой изображений для созданного из фронта товара. Пробовал делать загрузку при помощи процессора miniShop2 но что то результата нет.
Собственно последние строчи хука FormIt:
Не получается решить проблему с загрузкой изображений для созданного из фронта товара. Пробовал делать загрузку при помощи процессора miniShop2 но что то результата нет.
Собственно последние строчи хука FormIt:
// тут идет создание нового товара с опциями
$res->save(); // сохранение товара
$miniShop2 = $modx->getService('miniShop2');
$response = $miniShop2->runProcessor('mgr/gallery/upload', array('id' => $res->get("id"), $_FILES['file']));
Комментарии: 17
Переписал так:
Судя по всему, доступа нет.
$otherProps = array(
'processors_path' => $modx->getOption('core_path') . 'components/minishop2/processors/mgr/'
);
$response = $modx->runProcessor('gallery/upload', array('id' => $res->get("id"), $_FILES["file"]), $otherProps);
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, $response->getMessage());
}
Ругается permission_deniedСудя по всему, доступа нет.
Отвечаю сам себе, что действительно не хватает прав на загрузку. Так как если выставить польлзователю полные права, то изображение загружаются.
А теперь вопрос к вам. Какие права должен иметь простой пользователь, чтоб загружать изображения в галерею? И почему то файлы загрузились не в то источник файлов?
А теперь вопрос к вам. Какие права должен иметь простой пользователь, чтоб загружать изображения в галерею? И почему то файлы загрузились не в то источник файлов?
Добавил пользователям политику доступа «miniShopManagerPolicy». Дал необходимые права к источнику файлов. Ошибка доступа осталась.
Что делать? Куда рыть?
Что делать? Куда рыть?
Похоже я столкнулся с той же проблемой. Может вспомните как её решили?)
Вот так поговоришь с умным человеком за целый день и все проблемы решаются)
Ну почти все.
Как указать процессору«gallery/upload» работать с источником файлов MS2?
Ну почти все.
Как указать процессору«gallery/upload» работать с источником файлов MS2?
По идее он берёт источник файлов из таблицы modx_site_content, поле properties. Значит, нужно перед загрузкой фото исправить источник, если он по умолчанию не тот.
Николай, Вы были почти правы.
Только он берез из таблицы _ms2_products, поле source.
Т.е при создании товара необходимо добавлять свойства товара в виде:
Только он берез из таблицы _ms2_products, поле source.
Т.е при создании товара необходимо добавлять свойства товара в виде:
$filds['source'] = $modx->getOption('ms2_product_source_default', null, 1);
А чё бы не погуглить?
https://docs.modx.pro/components/ms2gallery/examples/console-import
UPD:
github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/import/csv.php
c 169 строки
https://docs.modx.pro/components/ms2gallery/examples/console-import
UPD:
github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/import/csv.php
c 169 строки
Попробовал так, не помогло
$response = $modx->runProcessor('gallery/upload', array('id' => $idDoc,
$_FILES["file"],
'media_source' => $modx->getOption('ms2_product_source_default')), $otherProps);
Проверил — полностью рабочий вариант из cvs.php
$product = $this->modx->runProcessor('gallery/upload', array('id' => $doc_id, 'name' => $title , 'file' => $image),array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/'));
if ($product->isError()) {
$this->modx->log(modX::LOG_LEVEL_ERROR, "Error on upload \"$v\": \n". print_r($product->getAllErrors(), 1)." -id:".$doc_id.",img:".$image);
}
Загружает изображения в источник файлов MS2 Images?
Просто у меня то тоже рабочий вариант, но грузит все в корень сайта в папки с ID документов
Просто у меня то тоже рабочий вариант, но грузит все в корень сайта в папки с ID документов
Ну а куда ему еще его загружать? если это дефолтовый процессор ms2
Ну вот у меня он загружает в источник фалов с корнем сайта, т.е дефолтный MODX
Каких еще настроек доступа не хватало, если не секрет? Я сейчас на этом же этапе)
Проблема так и осталась. Не у кого нет решения?
В начале скрипта дописать
$modx->user = $modx->getObject('modUser', 1);
$res->set('source',2);
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.