Картинки для товаров есть на другом хойстинге, доступны по http , как автоматом прогрузить все картинки на мой сайт используя встроенные методы престы?
В корне создайте файл с подобным кодом:
Код:
require(dirname(__FILE__).'/config/config.inc.php');
$res = [];
$products = Db::getInstance()->ExecuteS('SELECT `id_product` FROM `'._DB_PREFIX_.'product`');
foreach($products as $product)
{
if(Image::getImagesTotal($product['id_product']) == 0)
{
if($url = 'http://ССЫЛКА НА ДРУГОЙ САЙТ/img/p/' . Image::getImgFolderStatic($product['id_product']) . $product['id_product'] .'.jpg')
{
if($file = @file_get_contents($url, false, stream_context_create(['http' => ['method' => 'GET', 'timeout' => 20]])))
{
$img = new Image();
$img->id_product = $product['id_product'];
if (!Image::getCover($img->id_product))
$img->cover = 1;
else
$img->cover = 0;
$img->add();
$path = $img->getPathForCreation();
@file_put_contents($path . '.' . $img->image_format, $file);
$imageTypes = ImageType::getImagesTypes('products');
foreach ($imageTypes as $imageType)
ImageManager::resize($path.'.'.$img->image_format, $path.'-'.stripslashes($imageType['name']).'.'.$img->image_format, $imageType['width'], $imageType['height'], $img->image_format);
Hook::exec('actionWatermark', ['id_image' => $img->id, 'id_product' => $img->id_product]);
$res[] = 'Load image for product #' . $img->id_product;
}
}
}
}
echo implode($res, '<br>');
die('END');