MediaWiki:Common.js: відмінності між версіями

Аналітика: Matomo-трекер замість простого beacon (cookieless, DNT)
(Лічильник переглядів: beacon → hit.php (cookieless, krai_hits))
(Аналітика: Matomo-трекер замість простого beacon (cookieless, DNT))
 
Рядок 530: Рядок 530:
/* === /krai-feedback === */
/* === /krai-feedback === */


/* === Країнопедія: лічильник переглядів (krai-hits, cookieless, без IP) === */
/* === Країнопедія: Matomo (self-host /matomo/, cookieless, поважає DNT) === */
mw.loader.using(["mediawiki.util"], function () {
var _paq = window._paq = window._paq || [];
  try {
_paq.push(["disableCookies"]);
    var q = new URLSearchParams(location.search);
_paq.push(["setDoNotTrack", true]);
    var d = {
_paq.push(["trackPageView"]);
      p: mw.config.get("wgPageName") || location.pathname,
_paq.push(["enableLinkTracking"]);
      r: document.referrer || "",
(function () {
      s: q.get("utm_source") || "",
  var u = "//nomadica.uno/matomo/";
      m: q.get("utm_medium") || "",
  _paq.push(["setTrackerUrl", u + "matomo.php"]);
      c: q.get("utm_campaign") || "",
  _paq.push(["setSiteId", "1"]);
      n: q.get("utm_content") || ""
  var d = document, g = d.createElement("script"), s = d.getElementsByTagName("script")[0];
    };
  g.async = true; g.src = u + "matomo.js"; s.parentNode.insertBefore(g, s);
    var body = new URLSearchParams(d).toString();
})();
    if (navigator.sendBeacon) {
/* === /Matomo === */
      navigator.sendBeacon("/hit.php", new Blob([body], { type: "application/x-www-form-urlencoded" }));
    } else {
      fetch("/hit.php", { method: "POST", body: body, keepalive: true,
        headers: { "Content-Type": "application/x-www-form-urlencoded" } });
    }
  } catch (e) {}
});
/* === /krai-hits === */