MediaWiki:Common.js
Aus ISMS-Ratgeber WiKi
Zur Navigation springenZur Suche springen
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Strg+F5
/* Das folgende JavaScript wird für alle Benutzer geladen. */ // Top 10 zuletzt geänderte Seiten: $(function() { var $target = $('#seo-pages-table'); if (!$target.length) return; // 1. Neue Seiten holen und Dubletten filtern new mw.Api().get({ action: 'query', list: 'recentchanges', rcprop: 'title|timestamp', rcshow: 'new', rcnamespace: 0, rclimit: 50, // Höheres Limit für Dublettenfilterung format: 'json' }).done(function(data) { var pages = data.query?.recentchanges || []; var uniquePages = {}; // Dublettenfilter var filteredPages = []; // 2. Einzigartige Seiten filtern pages.forEach(function(p) { if (!uniquePages[p.title] && !p.title.includes(':')) { uniquePages[p.title] = true; filteredPages.push(p); if (filteredPages.length >= 10) return; // Auf 10 begrenzen } }); if (!filteredPages.length) { $target.html('Keine neuen Seiten gefunden.'); return; } // 3. SEO-Daten für gefilterte Seiten holen var titles = filteredPages.map(p => p.title).join('|'); new mw.Api().get({ action: 'query', prop: 'pageprops', titles: titles, format: 'json' }).done(function(seoData) { var seoProps = {}; Object.values(seoData.query?.pages || {}).forEach(function(page) { seoProps[page.title] = page.pageprops?.wikiseo_title || page.pageprops?.seo_title; }); // 4. Tabelle generieren var table = '<table class="wikitable"><tr><th>Seitenname</th><th>Erstellt am</th><th>SEO-Titel</th></tr>'; filteredPages.forEach(function(p) { var link = '<a href="' + mw.util.getUrl(p.title) + '">' + mw.html.escape(p.title) + '</a>'; var date = new Date(p.timestamp).toLocaleDateString('de-DE', {day: '2-digit', month: '2-digit', year: 'numeric'}); var seo = seoProps[p.title] ? mw.html.escape(seoProps[p.title]) : '–'; table += `<tr><td>${link}</td><td>${date}</td><td>${seo}</td></tr>`; }); $target.html(table + '</table>'); }).fail(() => $target.html('Fehler bei SEO-Daten')); }).fail(() => $target.html('Fehler beim Laden')); });