MediaWiki:Common.js: differenze tra le versioni

Da GazziNet.
Vai alla navigazione Vai alla ricerca
(Add global wiki home link at end of every page)
(Add Gazzi.net link next to wiki home link)
 
Riga 82: Riga 82:
}());
}());
(function () {
(function () {
function makeLink(href, text) {
var link = document.createElement('a');
link.href = href;
link.textContent = text;
link.style.color = '#1f4818';
link.style.textDecoration = 'none';
return link;
}
function addWikiHomeLink() {
function addWikiHomeLink() {
if (document.getElementById('gazzinet-wiki-home-link')) {
if (document.getElementById('gazzinet-wiki-home-link')) {
Riga 101: Riga 110:
link.style.color = '#1f4818';
link.style.color = '#1f4818';
link.style.textDecoration = 'none';
link.style.textDecoration = 'none';
wrap.appendChild(link);
wrap.appendChild(makeLink('https://wiki.gazzi.net/index.php', 'Home page del wiki'));
var sep = document.createElement('span');
sep.textContent = ' | ';
sep.style.color = '#5f725a';
wrap.appendChild(sep);
wrap.appendChild(makeLink('https://www.gazzi.net', 'www.gazzi.net'));
content.appendChild(wrap);
content.appendChild(wrap);
}
}

Versione attuale delle 11:32, 14 mar 2026

(function () {
	var measurementId = 'G-DFC284KHY7';
	var consentKey = 'gazzi_consent_analytics';

	function getCookie(name) {
		var match = document.cookie.match(new RegExp('(?:^|; )' + name.replace(/[.$?*|{}()\[\]\\/+^]/g, '\\$&') + '=([^;]*)'));
		return match ? decodeURIComponent(match[1]) : '';
	}

	function setCookie(value) {
		var secure = location.protocol === 'https:' ? '; Secure' : '';
		document.cookie = consentKey + '=' + value + '; path=/; domain=.gazzi.net; max-age=' + (60 * 60 * 24 * 365) + '; SameSite=Lax' + secure;
	}

	function loadGa() {
		if (window.gazzinetGa4Loaded) {
			return;
		}
		window.gazzinetGa4Loaded = true;
		window.dataLayer = window.dataLayer || [];
		window.gtag = window.gtag || function () {
			dataLayer.push(arguments);
		};
		var script = document.createElement('script');
		script.async = true;
		script.src = 'https://www.googletagmanager.com/gtag/js?id=' + measurementId;
		document.head.appendChild(script);
		window.gtag('js', new Date());
		window.gtag('config', measurementId);
	}

	function closeBanner() {
		var banner = document.getElementById('gazzinet-consent-banner');
		if (banner) {
			banner.hidden = true;
		}
	}

	function ensureStyle() {
		if (document.getElementById('gazzinet-consent-style')) {
			return;
		}
		var style = document.createElement('style');
		style.id = 'gazzinet-consent-style';
		style.textContent = '#gazzinet-consent-banner{position:fixed;right:18px;bottom:18px;z-index:99999;max-width:360px;background:#f6f6f3;color:#1e3f16;border:1px solid #b7c4b0;border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.14);padding:16px 16px 14px;font:400 .92rem/1.4 "Trebuchet MS","Segoe UI",Arial,sans-serif}#gazzinet-consent-banner[hidden]{display:none!important}#gazzinet-consent-banner strong{display:block;margin:0 0 6px;color:#1f4818;font-size:.96rem}#gazzinet-consent-banner p{margin:0 0 12px;color:#2f5d26}#gazzinet-consent-banner a{color:#1f4818;text-decoration:underline;text-underline-offset:2px}#gazzinet-consent-banner a:hover{color:#2f6f24}#gazzinet-consent-actions{display:flex;gap:10px;flex-wrap:wrap}#gazzinet-consent-actions button{appearance:none;border-radius:999px;padding:8px 14px;font:700 .84rem/1 "Trebuchet MS","Segoe UI",Arial,sans-serif;cursor:pointer}#gazzinet-consent-accept{background:#2f6f24;color:#fff;border:1px solid #2f6f24}#gazzinet-consent-deny{background:transparent;color:#2f6f24;border:1px solid #7c9774}@media (max-width:680px){#gazzinet-consent-banner{left:12px;right:12px;bottom:12px;max-width:none}}';
		document.head.appendChild(style);
	}

	function openBanner() {
		if (document.getElementById('gazzinet-consent-banner')) {
			return;
		}
		ensureStyle();
		var banner = document.createElement('div');
		banner.id = 'gazzinet-consent-banner';
		banner.innerHTML = '<strong>Analytics</strong><p>Usiamo Google Analytics per misurare l\'uso del sito. <a href="https://www.gazzi.net/privacy-cookie/">Privacy / Cookie</a></p><div id="gazzinet-consent-actions"><button id="gazzinet-consent-accept" type="button">Accetta</button><button id="gazzinet-consent-deny" type="button">Rifiuta</button></div>';
		document.body.appendChild(banner);
		document.getElementById('gazzinet-consent-accept').addEventListener('click', function () {
			setCookie('granted');
			loadGa();
			closeBanner();
		});
		document.getElementById('gazzinet-consent-deny').addEventListener('click', function () {
			setCookie('denied');
			closeBanner();
		});
	}

	var consent = getCookie(consentKey);
	if (consent === 'granted') {
		loadGa();
		return;
	}
	if (consent === 'denied') {
		return;
	}
	if (document.readyState === 'loading') {
		document.addEventListener('DOMContentLoaded', openBanner);
	} else {
		openBanner();
	}
}());
(function () {
	function makeLink(href, text) {
		var link = document.createElement('a');
		link.href = href;
		link.textContent = text;
		link.style.color = '#1f4818';
		link.style.textDecoration = 'none';
		return link;
	}

	function addWikiHomeLink() {
		if (document.getElementById('gazzinet-wiki-home-link')) {
			return;
		}
		var content = document.getElementById('content');
		if (!content) {
			return;
		}
		var wrap = document.createElement('div');
		wrap.id = 'gazzinet-wiki-home-link';
		wrap.style.margin = '28px 0 0';
		wrap.style.paddingTop = '14px';
		wrap.style.borderTop = '1px solid #b7c4b0';
		wrap.style.font = '700 .88rem/1.4 "Trebuchet MS","Segoe UI",Arial,sans-serif';
		var link = document.createElement('a');
		link.href = 'https://wiki.gazzi.net/index.php';
		link.textContent = 'Home page del wiki';
		link.style.color = '#1f4818';
		link.style.textDecoration = 'none';
		wrap.appendChild(makeLink('https://wiki.gazzi.net/index.php', 'Home page del wiki'));
		var sep = document.createElement('span');
		sep.textContent = ' | ';
		sep.style.color = '#5f725a';
		wrap.appendChild(sep);
		wrap.appendChild(makeLink('https://www.gazzi.net', 'www.gazzi.net'));
		content.appendChild(wrap);
	}
	if (document.readyState === 'loading') {
		document.addEventListener('DOMContentLoaded', addWikiHomeLink);
	} else {
		addWikiHomeLink();
	}
}());