Внешний источник файлов для галереи minishop
Есть необходимость хранить фото товаров во внешней галерее (на яндекс-диске).
Насколько сложно подружить галерею минишопа с Яндекс-диском?
Как понимаю, надо создать новый источник, с помощью компонента WebDAV, подрубить его к нужному яндекс-диску, добавить к источнику параметры thumbnails, maxUploadWidth, и т.д.
Этого будет достаточно? Или придётся покодить?
И второй вопрос. Надо будет добавлять фото к товарам через API с внешнего источника. Описанный здесь код:
?
Насколько сложно подружить галерею минишопа с Яндекс-диском?
Как понимаю, надо создать новый источник, с помощью компонента WebDAV, подрубить его к нужному яндекс-диску, добавить к источнику параметры thumbnails, maxUploadWidth, и т.д.
Этого будет достаточно? Или придётся покодить?
И второй вопрос. Надо будет добавлять фото к товарам через API с внешнего источника. Описанный здесь код:
$response = $modx->runProcessor('gallery/upload', array(Будет рабочим при простой замене 'file' => MODX_BASE_PATH. 'test.png', на 'file' => 'УРЛ к исходному файлу на ЯДиске'
'file' => MODX_BASE_PATH. 'test.png',
'id' => 9
),
array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/')
);
?
Комментарии: 9
Теоретически, нужно только создать источник файлов, и указать его товару для использования — дальше всё должно работать само.
Добавлять фото нужно штатно, а источник сам уже их выгрузит на Яндекс. Для того источники и придумали, чтобы не париться с работой удалённых сервисов.
Добавлять фото нужно штатно, а источник сам уже их выгрузит на Яндекс. Для того источники и придумали, чтобы не париться с работой удалённых сервисов.
Спасибо за ответ!
Работа через API нужна, так как делаю импорт товаров в каталог из экселевской таблицы.
Требуется регулярно добавлять порядка тысячи наименований — фото указываются в виде ссылок на изображения. И вручную перетаскивать такое количество фоток неприемлемо.
Работа через API нужна, так как делаю импорт товаров в каталог из экселевской таблицы.
Требуется регулярно добавлять порядка тысячи наименований — фото указываются в виде ссылок на изображения. И вручную перетаскивать такое количество фоток неприемлемо.
Здравствуйте! Подскажите, пожалуйста, как можно было бы массово поменять источник файлов для изображений? Через БД? Как установить другой источник файлов по-умолчанию? И можно ли просто перенести уже существующие изображения(в MS2 Images) в новый источник файлов (S3)?
В общем проверил — нифига не выйдет.
Яндекс же не позволяет показывать картинки по прямой ссылке. Нужно использовать что-то типа Amazon S3.
Яндекс же не позволяет показывать картинки по прямой ссылке. Нужно использовать что-то типа Amazon S3.
В итоге, допустим, есть прямая ссылка на изображение, которое надо добавить в галерею товара.
Просто указав ссылку на него в качестве параметра file процессору
Просто указав ссылку на него в качестве параметра file процессору
$response = $modx->runProcessor('gallery/upload', array(Можно это сделать? Или придётся отдельно закачивать файл на сайт, и потом натравливать процессор на закаченный файл?
'file' => MODX_BASE_PATH. 'test.png',
'id' => 9
),
array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/')
);
Родной процессор работает только с локальными файлами.
Можно написать свой процессор, который будет выкачивать удалённые.
Можно написать свой процессор, который будет выкачивать удалённые.
Решение, конечно, костыльное, но можно обернуть хэш-ссылку Я.Диска на изображение в некешируемый сниппет (или кешируемый на полчаса), который по curl будет генерировать прямой линк (пример взят отсюда):
<?php
$curl = curl_init('https://yadi.sk/i/sYFk9RnOWQgrJ'); //расшаренная ссылка на картинку
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
@preg_match('#<img class="content__image" src="(.*?)"#si', $result, $matches);
echo ($matches[1]);
?>
А теперь представь себе скорость вывода каталога товаров с такими картинками. Вместо отдачи статики веб-сервером, удалённые запросы через php на Яндекс.
Можно, конечно, всё кэшировать у себя на сайте — но зачем тогда вообще нужен удалённый сервис?
Так что тут только хороший платный статический хостинг, никаких Яндекс.Дисков и Google.Drive.
Можно, конечно, всё кэшировать у себя на сайте — но зачем тогда вообще нужен удалённый сервис?
Так что тут только хороший платный статический хостинг, никаких Яндекс.Дисков и Google.Drive.
> Можно, конечно, всё кэшировать у себя на сайте — но зачем тогда вообще нужен удалённый сервис?
Согласен, потому что понимаю это. Но раз человеку надо… Я поэтому и написал, что предложение костыльное. Но, может, человеку «поиграться» надо перед принятием решения?
Согласен, потому что понимаю это. Но раз человеку надо… Я поэтому и написал, что предложение костыльное. Но, может, человеку «поиграться» надо перед принятием решения?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.