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() { const $target = $('#seo-pages-table'); if (!$target.length) return; // 1. Neue Seiten über API abrufen $.getJSON(mw.util.wikiScript('api'), { action: 'query', list: 'recentchanges', rcprop: 'title|timestamp|ids', rctype: 'new', rcnamespace: 0, rclimit: 10, format: 'json' }).done(async function(data) { const pages = data.query.recentchanges; let tableHTML = ` <table class="wikitable"> <tr> <th>Seitenname</th> <th>Erstellungsdatum</th> <th>SEO-Titel</th> </tr> `; // 2. Für jede Seite SEO-Metadaten abrufen for (const page of pages) { try { const seoData = await fetchSEOMetadata(page.title); const date = new Date(page.timestamp).toLocaleDateString('de-DE'); tableHTML += ` <tr> <td>${createPageLink(page.title)}</td> <td>${date}</td> <td>${seoData || '–'}</td> </tr> `; } catch (e) { console.error(`Fehler bei ${page.title}:`, e); } } tableHTML += '</table>'; $target.html(tableHTML); }).fail(function(err) { $target.html(`<div class="error">Fehler: ${err.statusText}</div>`); }); // Hilfsfunktionen function createPageLink(title) { return `<a href="${mw.util.getUrl(title)}">${mw.html.escape(title)}</a>`; } async function fetchSEOMetadata(title) { const response = await $.getJSON(mw.util.wikiScript('api'), { action: 'query', prop: 'pageprops', titles: title, format: 'json' }); const page = response.query.pages[Object.keys(response.query.pages)[0]]; return page.pageprops?.wikiseo_title || page.pageprops?.seo_title; } });