Ответить Новая тема Новый опрос 
 Загрузить картини для товаров из другого сервера
Yurii
Новичок
Сообщений: 34
Регистрация: 05-08-2019


07-08-2020 17:46
Картинки для товаров есть на другом хойстинге, доступны по http , как автоматом прогрузить все картинки на мой сайт используя встроенные методы престы?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


08-08-2020 14:10
Цитата:( Yurii @ 07-08-2020 18:46 Смотреть сообщение )
Картинки для товаров есть на другом хойстинге, доступны по 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');

 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Yurii
Новичок
Сообщений: 34
Регистрация: 05-08-2019


11-08-2020 16:39
Все работает, спасибо большое
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос