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;
}
});