C'est ok avec la mise à jour de la fonction delete() ?

eolia
@eolia
On peut s'inquiéter de la place toujours croissante que prend l'intelligence artificielle dans notre vie quotidienne. Mais rassurons-nous, la connerie, elle, sera toujours authentique.
Citation de Grégoire Lacroix
Messages postés par eolia
-
RE: Images produit qui disparaissent
-
RE: Images produit qui disparaissent
Function à remplacer dans Image.php:
public function deleteImage($force_delete = false) { if(!$this->id) { return false; } $parent_dir = $this->image_dir.$this->getImgFolder(); if(Configuration::get('PS_LEGACY_IMAGES')) { $files_to_delete = array(); // Delete base image if(file_exists($this->image_dir.$this->getExistingImgPath().'.'.$this->image_format)) { @unlink($this->image_dir.$this->getExistingImgPath().'.'.$this->image_format); } // Delete auto-generated images $image_types = ImageType::getImagesTypes(); foreach($image_types as $image_type) { $files_to_delete[] = $this->image_dir.$this->getExistingImgPath().'-'.$image_type['name'].'.'.$this->image_format; $files_to_delete[] = $this->image_dir.$this->getExistingImgPath().'-'.$image_type['name'].'.webp'; if(Configuration::get('WATERMARK_HASH')) { $files_to_delete[] = $this->image_dir.$this->getExistingImgPath().'-'.$image_type['name'].'-'.Configuration::get('WATERMARK_HASH').'.'.$this->image_format; $files_to_delete[] = $this->image_dir.$this->getExistingImgPath().'-'.$image_type['name'].'-'.Configuration::get('WATERMARK_HASH').'.webp'; } } // Delete watermark image $files_to_delete[] = $this->image_dir.$this->getExistingImgPath().'-watermark.'.$this->image_format; $files_to_delete[] = $this->image_dir.$this->getExistingImgPath().'-watermark.webp'; // Delete index.php $files_to_delete[] = $parent_dir.'index.php'; foreach ($files_to_delete as $file) { if (file_exists($file) && !@unlink($file)) { return false; } } } else { if(is_dir($parent_dir)) { $files = glob($parent_dir.'*'); foreach($files as $file) { if(is_file($file)) { unlink($file); } } } } self::deleteTempImages($this->id_product); // Delete the image folder if empty if(is_dir($parent_dir)) { $delete_folder = true; foreach(scandir($parent_dir) as $file) { if($file != '.' && $file != '..') { $delete_folder = false; file_put_contents($parent_dir.'index.php', Tools::getDefaultIndexContent($path)); break; } } } if(isset($delete_folder) && $delete_folder) { @rmdir($this->image_dir.$this->getImgFolder()); } return true; }
-
RE: Images produit qui disparaissent
Je me répète mais Phenix ne regénère jamais toutes les miniatures (ce qui provoquait souvent des erreurs 500).
Si vous cliquez sur regénérer en ayant coché "supprimer les images" seules les miniatures sont supprimées. L'image de base jpg reste seule.Lorsque vous naviguerez sur le FO les images manquantes seront regénérées à la volée pour le ou les produits en cours de visualisation.
-
RE: Images produit qui disparaissent
commentez la ligne 665 de Image.php ( //Tools::cleanDirectory($this->image_dir.$this->getImgFolder()); ) en attendant le patch. Les répertoires vides ne seront pas nettoyés mais ce n'est pas grave pour l'instant.
-
RE: Images produit qui disparaissent
Le problème est sur la fonction Tools::cleanDirectory($this->image_dir.$this->getImgFolder()); rien d'autre et c'est en cours de résolution.
Pour le bouton "Effacer les images" (actif par défaut) si celui-ci n'est pas actif il ne se passera rien pour les produits lorsque vous cliquerez sur "Regénérer", seules les miniatures manquantes seront générées lorsqu'elles seront appelées. -
RE: Images produit qui disparaissent
Je vais regarder vos pistes.
Concernant la regénération:- Plus d'erreur 500 car on ne les regénère plus, c'est en direct au 1er appel en FO ou BO.
- Si vous cochez "Effacer les images précédentes" cela supprime uniquement les miniatures mais jamais l'image d'origine
-
RE: devcustom ?
A priori ce fichier sert à effectuer des connections Curl indépendamment de Prestashop. Si ce n'est pas vous qui l'avez installé je vous conseillerai de le supprimer.
-
RE: devcustom ?
devcustom.net est un des serveurs statiques de Phenix et Cleaner.
curl.log enregistre les dernier appels effectués en curl à de fins de debug au cas où.
Le fichier acinclude.m4 n'est pas un fichier natif, que contient-il ? -
RE: Images produit qui disparaissent
Je viens de re-scanner le code et les seuls endroits où les images sont supprimées (unlink()) sont dans la classe Image.php mais il faut appeler la fonction deleteImage(), il n'y a rien d'automatique.
Pas d'imports, de module de nettoyage ou autre parce que là je ne vois vraiment pas :( -
RE: Images produit qui disparaissent
Bonjour,
Non la fonctionnalité de nettoyage des orphelines ne s'exécute que si on la met sur OUI et uniquement une fois (ensuite le paramètre repasse à non).
Ne sont supprimées que les images qui ne sont liées à aucun produit dans la table ps_image.
Le produit de la page concernée a été modifié récemment ? (on peut le voir dans les logs Presta)