From 3ac6bb75ea8da8e0c96dbd61233056268a6e8339 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Sat, 19 Sep 2020 17:35:02 +0200 Subject: [PATCH] Update favicon switcher --- CHANGES.md | 5 ++ core/core.php | 3 +- .../favicon-switcher/favicon-switcher.js | 56 +++++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 core/vendor/favicon-switcher/favicon-switcher.js diff --git a/CHANGES.md b/CHANGES.md index 107a8f50..1dd367ed 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,7 +7,10 @@ - Menu : déplacement de la classe "active". - Le titre dans la configuration du module non affiché si le titre de la page est masqué. - Installation : bug si le masque de saisie est validé vide. + - Classe jsonDb, suppression de la réinitialisation de la structure de données en cas d'absence. - Modifications : + - Noyau : + - Mise en cache des données des modules. - Module recherche : - La recherche dans le site devient un module externe plutôt qu'un module interne ; - Diverses corrections optimisations permettant une recherche à l'aide de plusieurs mot-clés. @@ -17,6 +20,8 @@ - Pages 403 (accès interdit) et 404 (page introuvable) personnalisables - Sauvegarde du site dans une archive : animation d'attente avec message de confirmation ou d'erreur. ; le nom de l'archive prend le nom du sous-domaine s'il existe. - Captcha : addition présentée en lettres sous la forme d'images, réponse en chiffres ; correction du nom de la fonction (capcha en captcha). +- Mise à jour : + - Script favicon-switcher 1.2.2 ## version 10.2.09 - Correction : diff --git a/core/core.php b/core/core.php index e9a0d6d7..08fe661e 100644 --- a/core/core.php +++ b/core/core.php @@ -2301,7 +2301,8 @@ class layout extends common { file_exists(self::FILE_DIR.'source/' . $faviconDark) ) { echo ''; - echo ''; + //echo ''; + echo ''; } } diff --git a/core/vendor/favicon-switcher/favicon-switcher.js b/core/vendor/favicon-switcher/favicon-switcher.js new file mode 100644 index 00000000..6a72a463 --- /dev/null +++ b/core/vendor/favicon-switcher/favicon-switcher.js @@ -0,0 +1,56 @@ +;(function(mod){ + function collectLinks() { + return Array.prototype.slice.apply( + document.head.querySelectorAll('link[rel*="icon"]') + ) + } + + function applyLink(source, target) { + target.setAttribute('type', source.getAttribute('type')) + target.setAttribute('href', source.getAttribute('href')) + } + + // eslint-disable-next-line no-unused-vars + function initSwitcher(delay) { + // Exit if media queries aren't supported + if (typeof window.matchMedia !== 'function') { + return function noop() {} + } + + var links = collectLinks() + var current = document.createElement('link') + var prevMatch + + current.setAttribute('rel', 'shortcut icon') + document.head.appendChild(current) + + function faviconApplyLoop() { + links.forEach(function(link) { + if (window.matchMedia(link.media).matches) { + if (link.media !== prevMatch) { + prevMatch = link.media + applyLink(link, current) + } + } + }) + } + + var intervalId = setInterval(faviconApplyLoop, delay || 300) + + function unsubscribe() { + clearInterval(intervalId) + links.forEach(function(link) { + document.head.appendChild(link) + }) + } + + faviconApplyLoop() + links.forEach(function(link) { + document.head.removeChild(link) + }) + + return unsubscribe + } + + initSwitcher() + })()