Zum Inhalt springen

MediaWIki - Top-20 meistbesuchte Seiten auf der Startseite

Aus LHlab

Mit dieser Anleitung zeigst du eine Top‑20‑Liste der meistbesuchten Seiten direkt auf der Startseite an – mobil einspaltig, am Desktop zweispaltig, und ohne Aufrufzahlen.

Voraussetzungen

  • MediaWiki >= 1.44
  • Extension HitCounters (liefert die PopularPages-Daten)
  • Extension TopTenPages (macht die Liste transkludierbar)
  • Administratorrechte für das Bearbeiten von MediaWiki:Common.js und MediaWiki:Common.css

Installation der Extensions

In der LocalSettings.php

wfLoadExtension( 'HitCounters' );
wfLoadExtension( 'TopTenPages' );
# TopTenPages Configuration
$wgTopTenPagesStartAtOne = true;

Danach (einmalig) auf der Shell, MediaWiki updaten um die Datenbanktabellen anzulegen:

php maintenance/update.php

Schritt 1 – Einbindung auf der Startseite

Füge auf der Startseite (oder in einer eingebundenen Vorlage, oder sonstigen Seite) den folgenden Container ein:

<div id="tt-top20">
  <TopTenPages offset="0">20</TopTenPages>
</div>

Hinweise:

  • Die Zahl im Tag ist die gewünschte Anzahl (z. B. 20).
  • Optional kannst du offset="1" setzen, um den ersten Treffer (oft die Startseite) zu überspringen.

Schritt 2 – Aufrufzahlen ausblenden (JS)

Öffne MediaWiki:Common.js und füge am Ende hinzu:

$(function () {

  var $ol = $('#tt-top20 ol').first();

  if (!$ol.length) return;

  // Nur den Link behalten – „(x Aufrufe)“-Text entfernen

  $ol.find('li').each(function () {

    var a = this.querySelector('a');

    if (!a) return;

    this.textContent = '';

    this.appendChild(a);

  });

});

Schritt 3 – Darstellung (mobil 1 Spalte, Desktop 2 Spalten) mit perfekter Nummernausrichtung

Öffne MediaWiki:Common.css und füge hinzu:

/* Top-20 Liste (#tt-top20) – saubere Nummerierung & Umbrüche */

#tt-top20 ol{

  list-style: none;

  padding: 0;

  margin: 0;

  counter-reset: topv;

}

/* Platz für die Nummer links; Text bricht sauber untereinander */

#tt-top20 li{

  position: relative;

  counter-increment: topv;

  padding-left: 3.2ch;     /* Breite des Nummernbereichs */

  margin: .18rem 0;

  break-inside: avoid;     /* Li nicht zwischen Spalten umbrechen */

}

/* Nummer links absolut positionieren */

#tt-top20 li::before{

  content: counter(topv) ".";

  position: absolute;

  left: 0;

  width: 2.6ch;            /* Platz für 1–20; bei 100+ erhöhen (z.B. 3.2ch) */

  text-align: right;

  font-variant-numeric: tabular-nums;

  opacity: .6;             /* optional dezenter */

}

/* Layout: Desktop = 2 Spalten, Mobile = 1 Spalte */

@media (min-width: 900px){

  #tt-top20 ol{ columns: 2; column-gap: 2rem; }

}

@media (max-width: 899.98px){

  #tt-top20 ol{ columns: 1; }

}

Fehlerbehebung

  • Es erscheint keine Liste: Prüfe, ob Special:PopularPages Inhalte anzeigt. Falls nicht, ist HitCounters nicht korrekt installiert oder die Zähler sind noch leer.
  • Die Aufrufzahlen werden weiterhin angezeigt: Prüfe, ob MediaWiki:Common.js geladen wird (Konsole öffnen) und ob die Container-ID tt-top20 exakt verwendet wird.
  • Nummern oder Spalten wirken verrückt: Leere Browser-/Server-Caches (?action=purge oder harter Reload) und stelle sicher, dass ältere CSS-Regeln für #tt-top20 entfernt/überschrieben wurden.

Siehe auch

* Special:PopularPages – Beliebteste Seiten (Spezialseite)

* Special:Version – zum Prüfen, ob HitCounters und TopTenPages geladen sind