2017-01-10 1 views
0

Prestashop 스토어에 제품 카탈로그를 가져 오는 중입니다. 제품이 심문 기호가있는 기본 이미지와 함께 표시되기 때문에 이미지 URL에 문제가 있습니다.Prestashop Import에서 깨진 이미지 URL을 건너 뛰는 방법?

내 아이디어는 입니다.이 URL을 건너 뛰고 기본 알 수없는 이미지을 사용하지 마십시오. 이것에 대한 어떤 생각 ??

이미지 URL이이

enter image description here

+0

안녕, 지역 사회가 더 나은 당신을 도울 수 있도록 지금까지 (샘플 코드) 한 일을 제공하십시오

여기가

는 코드입니다. – Yaje

+0

아이디어는 Prestashop 1.6.1.10 Core에서 몇 가지 유효성 검사를 사용하여 해당 URL을 건너 뛰는 것입니다. 하지만 표시 할 코드가 없습니다. XML을 가져 오는 데 모듈을 사용하고 있습니다. ** 고급 XML 및 CSV 가져 오기 ** –

+1

[XPATH] (http : //)를 통해 이미지의 SRC 특성을 찾는 것이 좋습니다. en.wikipedia.org/wiki/XPath). 그런 다음 기본 이미지의 URL과 일치하지 않으면 가져 오기 코드 만 실행하십시오. 그러나 코드를 제공하지 않았으므로 어떻게해야하는지 정확히 말할 수는 없습니다. –

답변

0

도움을 주셔서 감사합니다. 그 스크립트를 할 수는 있지만 매 시간마다 카탈로그를 가져 오기 때문에이 솔루션은 유용하지 않습니다. 가져 오기 - URL이이 file_exists() 대신 그 충분하다 너무 그 이미지의 URL에 대한 새로운 예외 것이다 do unset()을 던져의 검사 전에

, 이제 모듈을 나는 해결책을 생각하며 가져 오기 모듈에 약간의 변화를 추가했다 내 해결책. 모두에게 감사드립니다.

// 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

제품의 이미지가 나열되어 있기 때문에 손실 된 이미지를 기본적으로 일부 이미지와 제품

enter image description here

을 파괴 할 때 사용되는 기본 이미지입니다 ps_image 테이블에. /img/p/ 폴더에없는 모든 이미지를 삭제하는 스크립트를 수행해야합니다.

backffoffice 이미지 옵션 메뉴에서 이미지 크기를 조정할 수 있지만이 깨끗한 데이터베이스가 맞는지 확실하지 않습니다.

행운을 빈다.