Zum Inhalt springen
Das offene Wiki zur kritischen Einordnung von Pseudowissenschaft, Verschwörungserzählungen und Desinformation im deutschsprachigen Raum — 401 Artikel mit transparenten Quellen und dokumentiertem Korrekturrecht.

MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus Faktenradar
Faktenradar Redakteur (Diskussion | Beiträge)
Zweites Banner unter dem Artikel-Footer — Verlauf wie Header, führt auf Über das Projekt
Faktenradar Redakteur (Diskussion | Beiträge)
Kategorieseiten: Banner an #mw-content-text statt .mw-parser-output → liegen unter der Artikelliste
Zeile 13: Zeile 13:
     if (document.getElementById('faktenradar-article-footer')) return;
     if (document.getElementById('faktenradar-article-footer')) return;


     var host = document.querySelector('.mw-parser-output')
    /* Auf Kategorieseiten enthält .mw-parser-output nur die Kurzbeschreibung
        || document.getElementById('mw-content-text');
      OBEN — die Listen #mw-subcategories und #mw-pages liegen daneben, in
      #mw-content-text. Damit die Banner dort unter der Artikelliste sitzen,
      hängen wir bei ns=14 direkt an den Content-Wrapper. */
     var host;
    if (ns === 14) {
        host = document.getElementById('mw-content-text');
    } else {
        host = document.querySelector('.mw-parser-output')
            || document.getElementById('mw-content-text');
    }
     if (!host) return;
     if (!host) return;



Version vom 11. Mai 2026, 00:49 Uhr

/* Article-footer banner — Hauptraum-Artikel, Kategorie- und Spezialseiten.
   Nicht in Diskussion-/User-/MediaWiki-/Help-Namespaces oder im Edit-Modus.
   Anhängen an .mw-parser-output (Artikel/Kat.) bzw. an #mw-content-text
   (Spezialseiten), damit die Breite immer dem Inhaltsbereich entspricht. */
$(function () {
    if (mw.config.get('wgAction') !== 'view') return;
    if (mw.config.get('wgPageName') === 'Hauptseite') return;

    var ns = mw.config.get('wgNamespaceNumber');
    // 0 = Artikel, 14 = Kategorie, -1 = Spezialseite
    if (ns !== 0 && ns !== 14 && ns !== -1) return;

    if (document.getElementById('faktenradar-article-footer')) return;

    /* Auf Kategorieseiten enthält .mw-parser-output nur die Kurzbeschreibung
       OBEN — die Listen #mw-subcategories und #mw-pages liegen daneben, in
       #mw-content-text. Damit die Banner dort unter der Artikelliste sitzen,
       hängen wir bei ns=14 direkt an den Content-Wrapper. */
    var host;
    if (ns === 14) {
        host = document.getElementById('mw-content-text');
    } else {
        host = document.querySelector('.mw-parser-output')
            || document.getElementById('mw-content-text');
    }
    if (!host) return;

    var banner = document.createElement('div');
    banner.id = 'faktenradar-article-footer';
    banner.style.cssText = [
        'margin-top:32px',
        'padding:22px 24px',
        'background:#fafafa',
        'border:1px solid #e5e5e5',
        'border-radius:6px',
        'color:#333',
        'line-height:1.55'
    ].join(';') + ';';

    banner.innerHTML =
        '<div style="font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:#c0392b;font-weight:700;margin-bottom:6px;">Faktenradar</div>' +
        '<div style="font-size:22px;font-weight:700;color:#111;letter-spacing:-0.3px;line-height:1.25;margin-bottom:10px;">Wer behauptet was &mdash; und was halten die Belege aus?</div>' +
        '<div style="font-size:14px;color:#444;max-width:680px;">' +
            'Wir dokumentieren Personen, Organisationen und Begriffe aus dem Umfeld von ' +
            '<b>Pseudowissenschaft</b>, <b>Verschw&ouml;rungserz&auml;hlungen</b> und <b>Desinformation</b>. ' +
            'Jeder Eintrag basiert auf &ouml;ffentlich nachpr&uuml;fbaren Quellen, jede Person hat ein dokumentiertes Korrekturrecht.' +
        '</div>' +

        '<div style="display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;">' +
            '<div style="flex:0 1 auto;background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:10px 16px;min-width:88px;">' +
                '<div style="font-size:22px;font-weight:700;color:#111;line-height:1;">401</div>' +
                '<div style="font-size:11px;color:#777;text-transform:uppercase;letter-spacing:1px;margin-top:4px;">Eintr&auml;ge</div>' +
            '</div>' +
            '<div style="flex:0 1 auto;background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:10px 16px;min-width:88px;">' +
                '<div style="font-size:22px;font-weight:700;color:#111;line-height:1;">25</div>' +
                '<div style="font-size:11px;color:#777;text-transform:uppercase;letter-spacing:1px;margin-top:4px;">Themenfelder</div>' +
            '</div>' +
            '<div style="flex:0 1 auto;background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:10px 16px;min-width:88px;">' +
                '<div style="font-size:22px;font-weight:700;color:#111;line-height:1;">1.140</div>' +
                '<div style="font-size:11px;color:#777;text-transform:uppercase;letter-spacing:1px;margin-top:4px;">Bilder</div>' +
            '</div>' +
            '<div style="flex:0 1 auto;background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:10px 16px;min-width:88px;">' +
                '<div style="font-size:22px;font-weight:700;color:#111;line-height:1;">100&nbsp;%</div>' +
                '<div style="font-size:11px;color:#777;text-transform:uppercase;letter-spacing:1px;margin-top:4px;">mit Quellen</div>' +
            '</div>' +
        '</div>' +

        '<div style="display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;font-size:13px;">' +
            '<a href="/index.php?title=Spezial:Zuf%C3%A4llige_Seite" style="background:#111;color:#fff;text-decoration:none;padding:7px 14px;border-radius:3px;display:inline-block;font-weight:600;">Zufallsfund &rarr;</a>' +
            '<a href="/index.php?title=Spezial:Kategorien" style="background:#fff;color:#222;border:1px solid #ccc;text-decoration:none;padding:7px 14px;border-radius:3px;display:inline-block;font-weight:500;">Themenfelder durchst&ouml;bern</a>' +
            '<a href="mailto:admin@faktenradar.9xsrv.com" style="background:#fff;color:#222;border:1px solid #ccc;text-decoration:none;padding:7px 14px;border-radius:3px;display:inline-block;font-weight:500;">Fehler melden</a>' +
            '<a href="/index.php?title=%C3%9Cber_das_Projekt" style="color:#666;text-decoration:none;padding:7px 8px;display:inline-block;font-size:12px;">&Uuml;ber das Projekt &rarr;</a>' +
        '</div>';

    host.appendChild(banner);

    /* Zweites Banner direkt darunter, im Farbstil des Header-Banners
       (dunkler Verlauf), führt auf "Über das Projekt". Bewusst kompakter
       als das erste Banner, damit es nicht erschlägt. */
    var projectBanner = document.createElement('a');
    projectBanner.id = 'faktenradar-project-banner';
    projectBanner.href = '/index.php?title=%C3%9Cber_das_Projekt';
    projectBanner.style.cssText = [
        'display:flex',
        'flex-wrap:wrap',
        'align-items:center',
        'gap:14px 22px',
        'margin-top:14px',
        'padding:22px 24px',
        'background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%)',
        'color:#fff',
        'border-radius:6px',
        'text-decoration:none',
        'line-height:1.5',
        'box-shadow:0 1px 3px rgba(0,0,0,0.08)'
    ].join(';') + ';';

    projectBanner.innerHTML =
        '<div style="flex:1 1 320px;min-width:0;">' +
            '<div style="font-size:11px;letter-spacing:1.8px;text-transform:uppercase;opacity:0.7;font-weight:700;margin-bottom:6px;">Hinter dem Faktenradar</div>' +
            '<div style="font-size:20px;font-weight:700;line-height:1.3;letter-spacing:-0.3px;">Wie wir arbeiten &mdash; und woran wir jeden Eintrag messen.</div>' +
            '<div style="font-size:14px;opacity:0.88;margin-top:8px;max-width:560px;">Mission, sechs Pr&uuml;ffragen und der Workflow, mit dem aus einem Hinweis ein belegter Artikel wird.</div>' +
        '</div>' +
        '<div style="flex:0 0 auto;font-size:13px;font-weight:600;color:#fff;border:1px solid rgba(255,255,255,0.45);padding:9px 16px;border-radius:3px;white-space:nowrap;">&Uuml;ber das Projekt &rarr;</div>';

    host.appendChild(projectBanner);
});