Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: maj ImageManager.php

...

  1. Vous devez :
    1. Passer le mode config/defines.inc.php :  _PS_MODE_DEV_ à false :

      Code Block
      define('_PS_MODE_DEV_', false)
    2. ET / OU, corriger ce problème du core Prestashop sur la classe ImageManager.php (à partir de Prestashop 1.5.3.1)
      https://github.com/Shagshag/PrestaShop/commit/d79c2c5a313d0c3096345f17c3b2b7c1a672ba19

      Fichier : https://github.com/Shagshag/PrestaShop/blob/d79c2c5a313d0c3096345f17c3b2b7c1a672ba19/classes/ImageManager.php

      Code Block
      collapsetrue
      public static function resize($src_file, $dst_file, $dst_width = null, $dst_height = null, $file_type = 'jpg', $force_type = false)
      
         {
      
         
       // Avoid Warning in PHP 5.2 : "Wrong parameter count for clearstatcache()"
      
           if (version_compare(PHP_VERSION, '5.3.0', '<')) {
       clearstatcache();
       } else {
       clearstatcache(true, if (version_compare(PHP_VERSION, '5.3.0', '<')) {
      
             clearstatcache();
      
           } else {
      
             clearstatcache(true, $src_file);$src_file);
       }
      
      
       if (!file_exists($src_file) || !filesize($src_file))
       return false;
       list($src_width, $src_height, $type) = getimagesize($src_file);
      
      
       // If PS_IMAGE_QUALITY is activated, the generated image will be a PNG with .jpg as a file extension.
       // This allow for higher quality and for transparency. JPG source files will also benefit from a higher quality
       // because JPG reencoding by GD, even with max quality setting, degrades the image.
       if (Configuration::get('PS_IMAGE_QUALITY') == 'png_all'
       || (Configuration::get('PS_IMAGE_QUALITY') == 'png' && $type == IMAGETYPE_PNG) && !$force_type)
       $file_type = 'png';
      
      
       if (!$src_width)
       return false;
       if (!$dst_width)
       $dst_width = $src_width;
       if (!$dst_height)
       $dst_height = $src_height;
      
      
       $src_image = ImageManager::create($type, $src_file);
      
      
       $width_diff = $dst_width / $src_width;
       $height_diff = $dst_height / $src_height;
      
      
       if ($width_diff > 1 && $height_diff > 1)
       {
       $next_width = $src_width;
       $next_height = $src_height;
       }
       else
       {
       if (Configuration::get('PS_IMAGE_GENERATION_METHOD') == 2 || (!Configuration::get('PS_IMAGE_GENERATION_METHOD') && $width_diff > $height_diff))
       {
       $next_height = $dst_height;
       $next_width = round(($src_width * $next_height) / $src_height);
       $dst_width = (int)(!Configuration::get('PS_IMAGE_GENERATION_METHOD') ? $dst_width : $next_width);
       }
       else
       {
       $next_width = $dst_width;
       $next_height = round($src_height * $dst_width / $src_width);
       $dst_height = (int)(!Configuration::get('PS_IMAGE_GENERATION_METHOD') ? $dst_height : $next_height);
       }
       }
      
      
       $dest_image = imagecreatetruecolor($dst_width, $dst_height);
      
      
       // If image is a PNG and the output is PNG, fill with transparency. Else fill with white background.
       if ($file_type == 'png' && $type == IMAGETYPE_PNG)
       {
       imagealphablending($dest_image, false);
       imagesavealpha($dest_image, true);
       $transparent = imagecolorallocatealpha($dest_image, 255, 255, 255, 127);
       imagefilledrectangle($dest_image, 0, 0, $dst_width, $dst_height, $transparent);
       }
       else
       {
       $white = imagecolorallocate($dest_image, 255, 255, 255);
       imagefilledrectangle ($dest_image, 0, 0, $dst_width, $dst_height, $white);
       }
      
      
       imagecopyresampled($dest_image, $src_image, (int)(($dst_width - $next_width) / 2), (int)(($dst_height - $next_height) / 2), 0, 0, $next_width, $next_height, $src_width, $src_height);
       return (ImageManager::write($file_type, $dest_image, $dst_file));
       }
      
      
  2. Essayer d'installer le module à nouveau

...