Informations du groupe Privé

administrators

Liste des membres

  • RE: Images produit qui disparaissent

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

    posté dans Bugs & Améliorations
  • RE: devcustom ?

    @camille Je viens de controller il n'existe pas de acinclude.m4 sur les serveurs. Ce fichier fait normalement partie du code source de curl et sert à la compilation de ce dernier.
    https://github.com/curl/curl/blob/1611e87d66df8bb8d2c28bf0815ec006230ae648/acinclude.m4

    posté dans PhenixSuite
  • RE: Images produit qui disparaissent

    @camille Bravo pour nous avoir donné les pistes d'un problème dont nous n'arrivions pas à reproduire le scénario. @Eolia vous a donné un correctif et nous allons rendre celui-ci encore plus robuste sur la version à venir. Si je puis me permettre, évitez de penser qu'un outils comme ChatGPT peut vous sauver si vous n'avez pas suffisamment de connaissance sur un sujet. Les IA sont impressionnante mais quasiment exclusivement sur des sujets des milliers/millions de fois vu et revu dans leurs apprentissages. En dehors de ces cas, les IA font 60% bien 30% bof et 10% BS.
    Encore un fois ce n'est pas une critique, juste qu'il faut être conscient du problème. Des outils très puissant mais qui requièrent une connaissance amont pour remettre en cause leurs "output"

    Encore merci d'avoir ciblé le problème avec vos tests clairement documentés.

    posté dans Bugs & Améliorations
  • 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;
        }
    
    posté dans Bugs & Améliorations
  • 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.

    posté dans Bugs & Améliorations
  • 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.

    posté dans Bugs & Améliorations
  • 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.

    posté dans Bugs & Améliorations
  • 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
    posté dans Bugs & Améliorations
  • 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.

    posté dans PhenixSuite
  • 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 ?

    posté dans PhenixSuite