Update favicon switcher
This commit is contained in:
parent
d402ad9516
commit
3ac6bb75ea
@ -7,7 +7,10 @@
|
|||||||
- Menu : déplacement de la classe "active".
|
- Menu : déplacement de la classe "active".
|
||||||
- Le titre dans la configuration du module non affiché si le titre de la page est masqué.
|
- 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.
|
- 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 :
|
- Modifications :
|
||||||
|
- Noyau :
|
||||||
|
- Mise en cache des données des modules.
|
||||||
- Module recherche :
|
- Module recherche :
|
||||||
- La recherche dans le site devient un module externe plutôt qu'un module interne ;
|
- 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.
|
- 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
|
- 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.
|
- 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).
|
- 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
|
## version 10.2.09
|
||||||
- Correction :
|
- Correction :
|
||||||
|
@ -2301,7 +2301,8 @@ class layout extends common {
|
|||||||
file_exists(self::FILE_DIR.'source/' . $faviconDark)
|
file_exists(self::FILE_DIR.'source/' . $faviconDark)
|
||||||
) {
|
) {
|
||||||
echo '<link rel="shortcut icon" media="(prefers-color-scheme:dark)" href="' . helper::baseUrl(false) . self::FILE_DIR.'source/' . $faviconDark . '">';
|
echo '<link rel="shortcut icon" media="(prefers-color-scheme:dark)" href="' . helper::baseUrl(false) . self::FILE_DIR.'source/' . $faviconDark . '">';
|
||||||
echo '<script src="https://unpkg.com/favicon-switcher@1.2.0/dist/index.js" crossorigin="anonymous" type="application/javascript"></script>';
|
//echo '<script src="https://unpkg.com/favicon-switcher@1.2.2/dist/index.js" crossorigin="anonymous" type="application/javascript"></script>';
|
||||||
|
echo '<script src="' . helper::baseUrl(false) . 'core/vendor/favicon-switcher/favicon-switcher.js" crossorigin="anonymous" type="application/javascript"></script>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
56
core/vendor/favicon-switcher/favicon-switcher.js
vendored
Normal file
56
core/vendor/favicon-switcher/favicon-switcher.js
vendored
Normal file
@ -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()
|
||||||
|
})()
|
Loading…
Reference in New Issue
Block a user