diff --git a/CHANGES.md b/CHANGES.md index 3ba6600b..505de8e4 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,7 +6,8 @@ - Améliore la gestion de la base de données et la génération du fichier de journalisation, stockage des données JSON, forçage au format objet. - Erreurs fictives pendant la mise à jour en ligne, améliorations du dialogue AJAX entre PHP et JQUERY avec un affichage précis des erreurs. - L'ajout d'une langue de contenu initialise les données de la langue. -- Format d'image avif si supporté par la version installée de php;. +- Format d'image avif si supporté par la version installée de php. +- Remplacement du service ScreenShot API par un sélecteur manuel ; affiche les paramètres d'images recommandées et ceux de l'image sélectionnée. # Corrections - Correction de bugs mineurs dans la sauvegarde et la suppression des modules installés. - Problèmes de mise à jour depuis les versions 11. diff --git a/core/class/layout.class.php b/core/class/layout.class.php index 1611e6ef..7df8a56f 100644 --- a/core/class/layout.class.php +++ b/core/class/layout.class.php @@ -824,11 +824,33 @@ class layout extends common */ public function showMetaImage() { - $items = ''; - $items .= ''; - $items .= ''; - $items .= ''; - echo $items; + $imagePath = self::FILE_DIR . 'source/' . $this->getData(['config', 'seo', 'openGraphImage']); + if ( + $this->getData(['config', 'seo', 'openGraphImage']) + && file_exists($imagePath) + ) { + $typeMime = exif_imagetype($imagePath); + switch ($typeMime) { + case IMAGETYPE_JPEG: + $typeMime = 'image/jpeg'; + break; + case IMAGETYPE_PNG: + $typeMime = 'image/png'; + break; + default: + // Type incorrect + return; + } + $imageSize = getimagesize($imagePath); + $wide = $imageSize[0]; + $height = $imageSize[1]; + //Sortie + $items = ''; + $items .= ''; + $items .= ''; + $items .= ''; + echo $items; + } } /** diff --git a/core/include/update.inc.php b/core/include/update.inc.php index ba972c9f..31608b9f 100644 --- a/core/include/update.inc.php +++ b/core/include/update.inc.php @@ -1061,6 +1061,9 @@ if ($this->getData(['core', 'dataVersion']) < 13000) { } $_SESSION['ZWII_CONTENT'] = $currentlanguage; + // Supprime la clé OpenOgraph + $this->deleteData(['config', 'seo', 'keyApi']); + // Mise à jour $this->setData(['core', 'dataVersion', 13000]); } \ No newline at end of file diff --git a/core/module/config/config.php b/core/module/config/config.php index 87f86110..dffc4c1d 100644 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -204,6 +204,8 @@ class config extends common public static $onlineVersion = ''; public static $updateButtonText = 'Réinstaller'; + public static $imageOpenGraph = []; + /** * Génére les fichiers pour les crawlers * Sitemap compressé et non compressé @@ -299,8 +301,6 @@ class config extends common } } - - // Traitement des données reçues valides. if (!empty($token) && $data !== false) { $data = json_decode($data, true); @@ -365,12 +365,7 @@ class config extends common 'state' => false ]); } - // Lire le contenu de l'archive dans le tableau files - /* - for ($i = 0; $i < $zip->numFiles; $i++) { - $stat = $zip->statIndex($i); - $files[] = (basename($stat['name'])); - }*/ + // Extraction de l'archive dans un dossier temporaire $tmpDir = uniqid(8); $success = $zip->extractTo(self::TEMP_DIR . $tmpDir); @@ -488,7 +483,7 @@ class config extends common ], 'seo' => [ 'robots' => $this->getInput('seoRobots', helper::FILTER_BOOLEAN), - 'keyApi' => $this->getInput('seoKeyApi', helper::FILTER_STRING_SHORT), + 'openGraphImage' => $this->getInput('seoOpenGraphImage', helper::FILTER_STRING_SHORT), ], 'connect' => [ 'attempt' => $this->getInput('connectAttempt', helper::FILTER_INT), @@ -598,6 +593,47 @@ class config extends common self::$updateDelay[$key] = $key === 86400 ? $value . ' ' . helper::translate('jour') : $value . ' ' . helper::translate('jours'); } + // Paramètres de l'image OpenGraph + $imagePath = self::FILE_DIR . 'source/' . $this->getData(['config', 'seo', 'openGraphImage']); + + // Par défaut + self::$imageOpenGraph['type'] = ''; + self::$imageOpenGraph['size'] = ''; + self::$imageOpenGraph['wide'] = ''; + self::$imageOpenGraph['height'] = ''; + self::$imageOpenGraph['ratio'] = 0; + if ( + $this->getData(['config', 'seo', 'openGraphImage']) + && file_exists($imagePath) + ) { + // Infos sur l'image Open Graph + $typeMime = exif_imagetype($imagePath); + switch ($typeMime) { + case IMAGETYPE_JPEG: + $typeMime = 'jpeg'; + break; + case IMAGETYPE_PNG: + $typeMime = 'png'; + break; + } + self::$imageOpenGraph['type'] = $typeMime; + $imageSize = getimagesize($imagePath); + self::$imageOpenGraph['wide'] = $imageSize[0]; + self::$imageOpenGraph['height'] = $imageSize[1]; + self::$imageOpenGraph['ratio'] = self::$imageOpenGraph['wide'] / self::$imageOpenGraph['height']; + + self::$imageOpenGraph['size'] = filesize($imagePath); + $tailleEnOctets = filesize($imagePath); + + if ($tailleEnOctets >= 1024 * 1024) { + // Si la taille est supérieure ou égale à 1 Mo, afficher en mégaoctets + self::$imageOpenGraph['size'] = round($tailleEnOctets / (1024 * 1024), 2) . ' Mo'; + } else { + // Sinon, afficher en kilooctets + self::$imageOpenGraph['size'] = round($tailleEnOctets / 1024, 2) . ' Ko'; + } + } + // Valeurs en sortie $this->addOutput([ 'title' => helper::translate('Configuration'), diff --git a/core/module/config/view/social/social.php b/core/module/config/view/social/social.php index e67063fd..28595a55 100644 --- a/core/module/config/view/social/social.php +++ b/core/module/config/view/social/social.php @@ -11,33 +11,47 @@ -->
+ +
++ +
++ +
++ +
+