diff --git a/core/core.php b/core/core.php index 3681f61d..e11bc067 100644 --- a/core/core.php +++ b/core/core.php @@ -32,8 +32,11 @@ class common { const FILE_DIR = 'site/file/'; const TEMP_DIR = 'site/tmp/'; + // Miniatures de la gallery + const THUMBS_SEPARATOR = 'mini_'; + // Numéro de version - const ZWII_VERSION = '10.0.052'; + const ZWII_VERSION = '10.0.053'; const ZWII_UPDATE_CHANNEL = "v10"; public static $actions = []; @@ -781,9 +784,51 @@ class common { } + /* + * Création d'une miniature + * Fonction utilisée lors de la mise à jour d'une version 9 à une version 10 + * @param string $src image source + * @param string $dets image destination + * @param integer $desired_width largeur demandée + */ + + function makeThumb($src, $dest, $desired_width) { + + $png = $jpg = false; + if (strpos($src,'jpg') > 0 || + strpos($src,'jpeg') > 0 ) { + $jpg = true; + } + if (strpos($src,'png') > 0 ) { + $png = true; + } + if ($png || $jpg ) { + /* read the source image */ + $source_image = $jpg ? imagecreatefromjpeg($src) : imagecreatefrompng($src); + $width = imagesx($source_image); + $height = imagesy($source_image); + + /* find the "desired height" of this thumbnail, relative to the desired width */ + $desired_height = floor($height * ($desired_width / $width)); + + /* create a new, "virtual" image */ + $virtual_image = imagecreatetruecolor($desired_width, $desired_height); + + /* copy source image at a resized size */ + imagecopyresampled($virtual_image, $source_image, 0, 0, 0, 0, $desired_width, $desired_height, $width, $height); + + /* create the physical thumbnail image to its destination */ + if ($png) { + imagepng($virtual_image, $dest); + } + if ($jpg) { + imagejpeg($virtual_image, $dest); + } + } + } - /** + /** * Envoi un mail * @param string|array $to Destinataire * @param string $subject Sujet @@ -1116,7 +1161,9 @@ class common { // Version 10.0.00 if($this->getData(['core', 'dataVersion']) < 10000) { $this->setData(['config', 'faviconDark','faviconDark.ico']); - // Numérotation des galeries + + //---------------------------------------- + // Mettre à jour les données des galeries $pageList = array(); foreach ($this->getHierarchy(null,null,null) as $parentKey=>$parentValue) { $pageList [] = $parentKey; @@ -1142,18 +1189,32 @@ class common { if ( $this->getdata(['module',$parent,$galleryKey,'config','homePicture']) === NULL) { $iterator = new DirectoryIterator($this->getdata(['module',$parent,$galleryKey,'config','directory'])); foreach($iterator as $fileInfos) { - if($fileInfos->isDot() === false AND $fileInfos->isFile() AND @getimagesize($fileInfos->getPathname())) { + if($fileInfos->isDot() === false AND $fileInfos->isFile() AND @getimagesize($fileInfos->getPathname())) { $this->setdata(['module',$parent,$galleryKey,'config','homePicture',$fileInfos->getFilename()]); break; + } } } + // Mise à jour de la taille des miniatures + $iterator = new DirectoryIterator($this->getdata(['module',$parent,$galleryKey,'config','directory'])); + foreach($iterator as $fileInfos) { + if($fileInfos->isDot() === false AND $fileInfos->isFile() AND @getimagesize($fileInfos->getPathname())) { + if (!file_exists( str_replace('source','thumb',$fileInfos->getPathname()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()))) { + $this->makeThumb($fileInfos->getPathname(), + str_replace('source','thumb',$fileInfos->getPath()) . '/' . self::THUMBS_SEPARATOR . strtolower($fileInfos->getFilename()), + 640); + } + } + } } } } - $this->setData(['core', 'dataVersion', 10000]); - } + // Mettre à jour les données des galeries + //---------------------------------------- + $this->setData(['core', 'dataVersion', 10000]); + } } } diff --git a/module/gallery/gallery.php b/module/gallery/gallery.php index a1d65380..3583e1c9 100644 --- a/module/gallery/gallery.php +++ b/module/gallery/gallery.php @@ -41,8 +41,6 @@ class gallery extends common { public static $thumbs = []; - const THUMBS_SEPARATOR = 'mini_'; - const GALLERY_VERSION = '2.0';