2017-01-10 6 views
0

Prestashopストアに商品カタログをインポートしていますが、商品に質問標識付きのデフォルト画像が表示されているため、画像URLに問題があります。壊れた画像をスキップする方法PrestashopのインポートからのURL?

私の考えはです。これらのURLはスキップし、デフォルトの不明な画像は使用しないでください。これについての任意のアイデア?

これはデフォルトの画像は、画像のURLが

enter image description here

が壊れているときに

enter image description here

+0

こんにちは、コミュニティがより良いあなたを助けることができるようにあなたがこれまでに(サンプルコード)を行っているものを提供してください。 – Yaje

+0

アイデアは、Prestashop 1.6.1.10 Coreのようないくつかのバリデーションを使用して、それらのURLをスキップすることです。 ** Advanced XML&CSV Importer ** –

+1

[XPATH](http://)でイメージのSRC属性を探してみることをお勧めします。 en.wikipedia.org/wiki/XPath)。デフォルトのイメージのURLと一致しない場合は、コードをインポートしてインポートします。しかし、あなたはコードを提供していないので、私はあなたがそれをどうやってやるべきか正確に言うことはできません。 –

答えて

0

ご協力いただきありがとうございます。私はそのスクリプトを実行することができましたが、そのソリューションは毎時カタログをインポートするため便利ではありません。

インポートモジュールにいくつかの変更が加えられましたので、インポートする前にモジュールで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イメージオプションメニューでイメージのサイズを変更できますが、このクリーンなデータベースがあるかどうかはわかりません。

幸運。

関連する問題