MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus ISMS-Ratgeber WiKi
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 10: Zeile 10:
     list: 'recentchanges',
     list: 'recentchanges',
     rcprop: 'title|comment|timestamp|ids',
     rcprop: 'title|comment|timestamp|ids',
     rctype: 'new',       // Nur Seitenerstellungen
     rctype: 'new',
     rclimit: 50,         // Ausreichend Puffer für Duplikate
     rclimit: 50,
     rcnamespace: 0,       // Nur Hauptnamensraum
     rcnamespace: 0,
     format: 'json'
     format: 'json'
   })
   })
   .done(function(data) {
   .done(function(data) {
     var table = '<table class="wikitable"><tr><th>Titel</th><th>Erstellt am</th><th>Zusammenfassung</th></tr>';
     var table = '<table class="wikitable"><tr><th>Seite</th><th>Erstellt am</th><th>Titel</th></tr>';
     var uniquePages = {};
     var uniquePages = {};
     var count = 0;
     var count = 0;


     if (data.query && data.query.recentchanges && data.query.recentchanges.length > 0) {
     if (data.query?.recentchanges) {
       data.query.recentchanges.forEach(function(rc) {
       data.query.recentchanges.forEach(function(rc) {
        // Doppelte Titel oder Systemseiten mit Doppelpunkt ausschließen
         if (uniquePages[rc.title] || rc.title.includes(':')) return;
         if (uniquePages[rc.title] || rc.title.indexOf(':') !== -1) return;
         uniquePages[rc.title] = true;
         uniquePages[rc.title] = true;
        if (count >= 10) return;


         if (count >= 10) return;
         // Link zur Seite generieren
        var pageUrl = mw.util.getUrl(rc.title);
        var pageLink = '<a href="' + pageUrl + '">' + mw.html.escape(rc.title) + '</a>';
 
        // SEO-Daten (angenommen: Seitentitel als SEO-Titel)
        var seoTitle = rc.title; // Hier müsste ggf. eine API-Abfrage für SEO-Metadaten erfolgen
 
        // Datum formatieren
         var date = new Date(rc.timestamp).toLocaleDateString('de-DE');
         var date = new Date(rc.timestamp).toLocaleDateString('de-DE');
        // Fallback für mw.html.escape (ältere MediaWiki-Versionen)
 
        var escape = (window.mw && mw.html && mw.html.escape) ? mw.html.escape : function(s) {
         table += '<tr><td>' + pageLink + '</td><td>' + date + '</td><td>' + mw.html.escape(seoTitle) + '</td></tr>';
          return $('<div>').text(s).html();
        };
         table += '<tr><td>' + escape(rc.title) + '</td><td>' + date + '</td><td>' + escape(rc.comment || '') + '</td></tr>';
         count++;
         count++;
       });
       });

Version vom 12. Mai 2025, 18:32 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */

// Top 10 zuletzt geänderte Seiten:
$(function() {
  var $target = $('#recentpages-unique-table');
  if (!$target.length) return;

  $.getJSON(mw.util.wikiScript('api'), {
    action: 'query',
    list: 'recentchanges',
    rcprop: 'title|comment|timestamp|ids',
    rctype: 'new',
    rclimit: 50,
    rcnamespace: 0,
    format: 'json'
  })
  .done(function(data) {
    var table = '<table class="wikitable"><tr><th>Seite</th><th>Erstellt am</th><th>Titel</th></tr>';
    var uniquePages = {};
    var count = 0;

    if (data.query?.recentchanges) {
      data.query.recentchanges.forEach(function(rc) {
        if (uniquePages[rc.title] || rc.title.includes(':')) return;
        uniquePages[rc.title] = true;
        if (count >= 10) return;

        // Link zur Seite generieren
        var pageUrl = mw.util.getUrl(rc.title);
        var pageLink = '<a href="' + pageUrl + '">' + mw.html.escape(rc.title) + '</a>';

        // SEO-Daten (angenommen: Seitentitel als SEO-Titel)
        var seoTitle = rc.title; // Hier müsste ggf. eine API-Abfrage für SEO-Metadaten erfolgen

        // Datum formatieren
        var date = new Date(rc.timestamp).toLocaleDateString('de-DE');

        table += '<tr><td>' + pageLink + '</td><td>' + date + '</td><td>' + mw.html.escape(seoTitle) + '</td></tr>';
        count++;
      });
    }

    if (count === 0) {
      table += '<tr><td colspan="3">Keine neuen Seiten gefunden.</td></tr>';
    }
    table += '</table>';
    $target.html(table);
  })
  .fail(function() {
    $target.html('Fehler beim Laden der Daten.');
  });
});