MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Wikikama
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Keine Bearbeitungszusammenfassung
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
$(function () {
$(function () {
   if (mw.config.get('wgNamespaceNumber') >= 0) {
   if (mw.config.get('wgNamespaceNumber') >= 0) {
     $('body').append(
     if (!sessionStorage.getItem('supportBannerClosed')) {
       '<div id="support-banner">❤️ <b>WIKIKAMA und Mimikama sind unabhängig und werbefrei – hilf mit, das möglich zu machen!</b> <a href="https://www.wikikama.org/index.php/Unterstützen">Jetzt unterstützen!</a></div>'
 
    );
       const bannerHTML = `
        <div id="support-banner" style="display: none;">
          <button id="support-banner-close" aria-label="Banner schließen" title="Schließen">✖</button>
          <div class="sb-text">❤️ WIKIKAMA und Mimikama sind unabhängig und werbefrei – hilf mit, das möglich zu machen!</div>
          <a class="sb-link" href="/index.php/Unterstützen" target="_blank" rel="noopener">Jetzt unterstützen!</a>
        </div>
      `;
 
      $('body').append(bannerHTML);
      $('#support-banner').fadeIn(400);
      $('body').css('padding-bottom', '120px');
 
      $('#support-banner-close').on('click', function () {
        $('#support-banner').fadeOut(300, function () {
          $(this).remove();
        });
        sessionStorage.setItem('supportBannerClosed', 'true');
        $('body').css('padding-bottom', '0');
      });
    }
   }
   }
});
});
// === Meta-Tags in den <head> einfügen ===
// === Meta-Tags in den <head> einfügen ===
$(function() {
$(function() {
Zeile 15: Zeile 38:
   $('head').append( og );
   $('head').append( og );
});
});
// === ShareButtons ===
$(document).ready(function() {
  var shareBox = `
    <div class="a2a_kit a2a_kit_size_32 a2a_default_style wikikama-sharebox" style="margin-top: 40px; font-family: Arial, sans-serif;">
      <strong style="display:block; margin-bottom: 10px;">🔗 Teile diesen Artikel:</strong>
      <a class="a2a_button_facebook" title="Teilen auf Facebook"></a>
      <a class="a2a_button_mastodon" title="Teilen auf Threads" href="#"></a>
      <a class="a2a_button_x" title="Teilen auf X (Twitter)"></a>
      <a class="a2a_button_telegram" title="Teilen auf Telegram"></a>
      <a class="a2a_button_whatsapp" title="Teilen auf WhatsApp"></a>
      <a class="a2a_button_linkedin" title="Teilen auf LinkedIn"></a>
      <a class="a2a_button_reddit" title="Teilen auf Reddit"></a>
      <a class="a2a_button_email" title="Teilen per E-Mail"></a>
    </div>
    <script async src="https://static.addtoany.com/menu/page.js"></script>
  `;


mw.loader.using('mediawiki.util', function () {
  if (mw.config.get("wgNamespaceNumber") === 0) {
  document.addEventListener('DOMContentLoaded', function () {
    $(".mw-parser-output").append(shareBox);
    var btn = document.getElementById('linkScannerBtn');
    $(".a2a_button_mastodon").attr("href", "https://threads.net/share?text=" + encodeURIComponent(document.title) + "&url=" + encodeURIComponent(window.location.href));
    if (!btn) return;
   }
    btn.addEventListener('click', function () {
      var url = document.getElementById('linkScannerInput').value.trim();
      var result = document.getElementById('linkScannerResult');
      if (!url) {
        result.innerHTML = '<span style="color:#c53030;">Bitte gib eine URL ein.</span>';
        return;
      }
      result.innerHTML = '🔄 Scanne ' + mw.html.escape(url) + ' …';
 
      // CORS-Proxy holen
      fetch('https://api.allorigins.win/raw?url=' + encodeURIComponent(url))
        .then(function(res){
          if (!res.ok) throw new Error(res.statusText);
          return res.text();
        })
        .then(function(html){
          // Parsen
          var doc = new DOMParser().parseFromString(html, 'text/html');
          var title = doc.querySelector('title') ? doc.querySelector('title').textContent : '';
          var descMeta = doc.querySelector('meta[name="description"]');
          var desc = descMeta ? descMeta.content : '';
          var og = doc.querySelector('meta[property="og:image"]');
          var img = og ? og.content : '';
 
          // Ausgabe bauen
          var out = '';
          if (title) out += '<b>Titel:</b> ' + mw.html.escape(title) + '<br>';
          if (desc) out += '<b>Beschreibung:</b> ' + mw.html.escape(desc) + '<br>';
          if (img) {
            out += '<b>Vorschaubild:</b><br>'
              + '<img src="' + mw.html.escape(img) + '" style="max-width:100%; margin-top:8px; border:1px solid #ddd; border-radius:4px;" />';
          }
          if (!title && !desc && !img) {
            out = '<span style="color:#c53030;">Keine Metadaten gefunden.</span>';
          }
          result.innerHTML = out;
        })
        .catch(function(err){
          result.innerHTML = '<span style="color:#c53030;">Fehler: '
            + mw.html.escape(err.message) + '</span>';
        });
    });
   });
});
});

Version vom 1. Juni 2025, 16:40 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
$(function () {
  if (mw.config.get('wgNamespaceNumber') >= 0) {
    if (!sessionStorage.getItem('supportBannerClosed')) {

      const bannerHTML = `
        <div id="support-banner" style="display: none;">
          <button id="support-banner-close" aria-label="Banner schließen" title="Schließen">✖</button>
          <div class="sb-text">❤️ WIKIKAMA und Mimikama sind unabhängig und werbefrei – hilf mit, das möglich zu machen!</div>
          <a class="sb-link" href="/index.php/Unterstützen" target="_blank" rel="noopener">Jetzt unterstützen!</a>
        </div>
      `;

      $('body').append(bannerHTML);
      $('#support-banner').fadeIn(400);
      $('body').css('padding-bottom', '120px');

      $('#support-banner-close').on('click', function () {
        $('#support-banner').fadeOut(300, function () {
          $(this).remove();
        });
        sessionStorage.setItem('supportBannerClosed', 'true');
        $('body').css('padding-bottom', '0');
      });
    }
  }
});




// === Meta-Tags in den <head> einfügen ===
$(function() {
  var og = '';
  og += '<meta property="og:title" content="' + mw.config.get('wgTitle') + ' – Wikikama" />';
  og += '<meta property="og:description" content="' + $('p').first().text().substr(0, 150) + '…" />';
  og += '<meta property="og:image" content="https://www.wikikama.org/images/default-og-image.png" />';
  $('head').append( og );
});
// === ShareButtons ===
$(document).ready(function() {
  var shareBox = `
    <div class="a2a_kit a2a_kit_size_32 a2a_default_style wikikama-sharebox" style="margin-top: 40px; font-family: Arial, sans-serif;">
      <strong style="display:block; margin-bottom: 10px;">🔗 Teile diesen Artikel:</strong>
      <a class="a2a_button_facebook" title="Teilen auf Facebook"></a>
      <a class="a2a_button_mastodon" title="Teilen auf Threads" href="#"></a>
      <a class="a2a_button_x" title="Teilen auf X (Twitter)"></a>
      <a class="a2a_button_telegram" title="Teilen auf Telegram"></a>
      <a class="a2a_button_whatsapp" title="Teilen auf WhatsApp"></a>
      <a class="a2a_button_linkedin" title="Teilen auf LinkedIn"></a>
      <a class="a2a_button_reddit" title="Teilen auf Reddit"></a>
      <a class="a2a_button_email" title="Teilen per E-Mail"></a>
    </div>
    <script async src="https://static.addtoany.com/menu/page.js"></script>
  `;

  if (mw.config.get("wgNamespaceNumber") === 0) {
    $(".mw-parser-output").append(shareBox);
    $(".a2a_button_mastodon").attr("href", "https://threads.net/share?text=" + encodeURIComponent(document.title) + "&url=" + encodeURIComponent(window.location.href));
  }
});