Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:18PlusDisclaimer: Difference between revisions

Template page
No edit summary
No edit summary
Line 2: Line 2:


{{#tag:html|
{{#tag:html|
<div id="ageDisclaimerOverlay" class="age-overlay">
<div id="ageDisclaimerOverlay" class="age-overlay" style="display:none">
   <div class="age-blur"></div>
   <div class="age-blur"></div>
   <div class="age-popup slide-down">
   <div class="age-popup slide-down">
Line 15: Line 15:


<script>
<script>
  function setCookie(name, value, days) {
// Load the MediaWiki user module so we can tell if someone is logged in
    const expires = new Date(Date.now() + days * 864e5).toUTCString();
mw.loader.using(['mediawiki.user', 'mediawiki.util']).then(function () {
     document.cookie = name + '=' + encodeURIComponent(value) + '; expires=' + expires + '; path=/';
  const overlay = document.getElementById("ageDisclaimerOverlay");
  const body    = document.body;
  const isLoggedIn = !mw.user.isAnon();
  const cookieConfirmed = document.cookie
    .split('; ')
    .some(part => part.trim() === 'ageConfirmed=true');
 
  function showOverlay() {
     overlay.style.display = 'flex';
    body.style.overflow = 'hidden';
    requestAnimationFrame(()=>{
      overlay.querySelector(".age-popup").classList.add("slide-active");
    });
  }
  function hideOverlay() {
    overlay.style.display = 'none';
    body.style.overflow = '';
   }
   }


   function getCookie(name) {
   // Show to everyone on first visit (no cookie),
    return document.cookie.split('; ').reduce((r, v) => {
  // and even if they have a cookie, force-show again for logged-in users
      const parts = v.split('=');
  if (!cookieConfirmed || isLoggedIn) {
      return parts[0] === name ? decodeURIComponent(parts[1]) : r
    showOverlay();
    }, '');
   }
   }


   document.addEventListener("DOMContentLoaded", function () {
   document.getElementById("acceptDisclaimer").addEventListener("click", function () {
     const overlay = document.getElementById("ageDisclaimerOverlay");
     // set 30‑day cookie
     const body = document.body;
     document.cookie = "ageConfirmed=true;max-age=" + (30*24*60*60) + ";path=/";
 
     hideOverlay();
    if (getCookie("ageConfirmed") !== "true") {
  });
      overlay.style.display = "flex";
      body.style.overflow = "hidden";
      requestAnimationFrame(() => {
        document.querySelector(".age-popup").classList.add("slide-active");
      });
     }
 
    document.getElementById("acceptDisclaimer").addEventListener("click", function () {
      setCookie("ageConfirmed", "true", 30);
      overlay.style.display = "none";
      body.style.overflow = "";
    });


    document.getElementById("declineDisclaimer").addEventListener("click", function () {
  document.getElementById("declineDisclaimer").addEventListener("click", function () {
      window.location.href = "/wiki/Main_Page"; // Customize if needed
    // send them back to Main Page; you can change this target
    });
    window.location.href = mw.util.getUrl('Main_Page');
   });
   });
});
</script>
</script>
}}
}}

Revision as of 10:50, 19 April 2025

Advertising: