2017-01-10 13 views
0

Я импортирую каталог продуктов в магазин Prestashop, но проблема с словом url сломана, потому что продукт отображается с изображением по умолчанию с знаком опроса.Как пропустить сломанные URL-адреса изображений от импорта Prestashop?

Моя идея - пропустить этот URL-адрес и не использовать по умолчанию неизвестное изображение. Любая идея для этого ??

Это изображение используется по умолчанию, если URL изображения сломана

enter image description here

Это продукт с некоторыми изображениями по умолчанию из-за потерянных изображений изображения

enter image description here

+0

Привет, пожалуйста, укажите, что вы делали до сих пор (образец кода), так что сообщество может помочь вам лучше. – Yaje

+0

Идея состоит в том, чтобы пропустить этот URL-адрес, используя некоторую проверку, возможно, в Prestashop 1.6.1.10 Core. Но у меня нет кода для показа, я использую модуль для импорта XML с именем: ** Advanced XML & CSV Importer ** –

+1

Я бы порекомендовал искать атрибут SRC на изображении через [XPATH] (http: // en.wikipedia.org/wiki/XPath). Затем запустите только код для его импорта, если он не соответствует URL-адресу изображения по умолчанию. Однако, поскольку вы не предоставили никакого кода, я не могу точно сказать, как вы должны это делать. –

ответ

0

Спасибо за содействие с вашей помощью. Я мог бы сделать этот скрипт, но это решение не будет полезно, потому что я каждый год импортирую каталог.

я понял, решение, и это было добавить некоторые изменения в модуль импорта, так что теперь модуль перед Импортируйте URL проверяет file_exists() и вместо того, чтобы бросить новое исключение будет do unset() для этого URL изображения, так с этого достаточно мое решение. Спасибо всем.

это код:

// Get images real path, and check exists 
    foreach ($images as $key => $img) { 
     /*if (preg_match('/:\/\//', $images[$key]->value)) { 
      continue; 
     }*/ 

     $url = $images[$key]->value; 

     $filename = explode('=',$url)[1]; 

     $images[$key]->value = _PS_ROOT_DIR_.'/testimg/'.$filename.'.jpg'; 

     if (!file_exists($images[$key]->value)) 
     { 
      unset($images[$key]); 
      //throw new Exception("File {$images[$key]->value} not found."); 
     } 
    } 
0

продукта перечислены in ps_image стол. Вы должны сделать сценарий, который удаляет все изображения, которые нет в папке /img/p/.

Вы можете изменить размер изображения в меню параметров изображений backffoffice, но я не уверен, что эта чистая база данных.

Удачи.