Informations du groupe Privé

administrators

Liste des membres

  • RE: Suppression du . dans les déclinaisons

    Bonjour,
    là vous me posez une colle... ce code a été ajouté dans la 1.6.1.30, il y a 2 ans et demi et je ne me rappelle plus la raison. Ce n'est certainement pas sécuritaire mais c'est en lien avec la recherche BO. Vous pouvez le supprimer, je vais écrire ça autrement dans la v40

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