2017-01-10 85 views
0

我正在将产品目录导入到Prestashop商店,但由于产品显示的是带有审讯标志的默认图像,因此图像网址被破坏时出现问题。如何从Prestashop导入跳过损坏的图片网址?

我的想法是跳过那些url并且不要使用默认未知图片。任何想法呢?

这是当图像的URL被打破

enter image description here

这是因为图像消失的一些图像默认

enter image description here

+0

你好,请您提供迄今(示例代码)做了什么让社区可以帮助你更好的。 – Yaje

+0

这个想法只是使用一些验证,可能在Prestashop 1.6.1.10核心跳过这些网址。但我没有代码显示,我正在使用一个模块导入名为的XML:**高级XML和CSV导入器** –

+1

我建议通过[XPATH](http:// http://)查找映像上的SRC属性。 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

产品的图像中列出的产品中使用的默认图像在ps_image表中。您应该执行一个脚本,删除/img/p/文件夹中不存在的所有图像。

您可以在backffoffice图像选项菜单中进行图像大小调整,但我不确定这是干净的数据库。

祝你好运。