Navigation

    aide prestashop

    PrestaHelp

    • S'inscrire
    • Se connecter
    • Recherche
    • Catégories
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Recherche
    1. Accueil
    2. eolia
    • Profil
    • Abonnements
    • Abonnés
    • Sujets
    • Messages
    • Meilleur sujets
    • Groupes

    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

    12
    Réputation
    433
    Messages
    2098
    Vues
    3
    Abonnés
    0
    Abonnements
    Inscrit Dernière connexion
    Site web eoliashop.com Situation géographique france

    eolia S'abonner
    legacy administrators

    Messages postés par eolia

    • RE: Images produit qui disparaissent

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

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

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

      posté dans Bugs & Améliorations
      eolia