Modul:NewsFeed/Doku
Dies ist die Dokumentationsseite für Modul:NewsFeed
Zweck[Quelltext bearbeiten]
Das Modul NewsFeed generiert einen dynamischen, JSON-basierten Nachrichtenblock für Wikonia. Es dient zur Anzeige von Artikel-News, internen Mitteilungen und Funfacts – vollständig ohne manuelle Pflege auf der Hauptseite.
Funktionsweise[Quelltext bearbeiten]
Das Modul liest drei JSON-Dateien aus:
Jede Datei enthält eine Liste von Einträgen mit Metadaten (Datum, Priorität, Turnus etc.). Aus diesen Daten erzeugt das Modul eine sortierte, ratio-basierte Auswahl für die Anzeige.
Datenfelder[Quelltext bearbeiten]
| Feld | Typ | Beschreibung |
|---|---|---|
title |
Text / Wikitext | Titel oder Haupttext (Wikitext erlaubt, z. B. Artikel)
|
text |
Text (optional) | Kurzbeschreibung oder Unterzeile |
from |
Datum (YYYY-MM-DD) | Startdatum des Zeitraums |
to |
Datum (YYYY-MM-DD) | Enddatum des Zeitraums |
priority |
Zahl | Gewichtung (höhere Werte werden bevorzugt) |
persistent |
Bool | Bleibt sichtbar, auch wenn abgelaufen |
turnus |
Text/Zahl | Wiederkehrintervall („day“, „week“, „month“, „year“ oder Zahl in Tagen) |
highlight |
Bool | Markiert wichtige Einträge (CSS-Klasse .highlight)
|
Anzeigeverhalten[Quelltext bearbeiten]
- Artikel- und Intern-News benötigen ein gültiges Datum oder Turnus/Persistent.
- Funfacts ohne Datum gelten automatisch als aktiv und werden zufällig gemischt.
- Alte oder abgelaufene News werden ausgeblendet, sofern nicht persistent.
- Verhältnis der angezeigten Mengen wird über den Parameter
ratiogesteuert.
Zufallssteuerung und Cache[Quelltext bearbeiten]
Sofern mehr als die in der Ratio vorgesehene Anzahl an Fun-Facts vorhanden sind werden aktive Fakten, ohne Datumsangabe zufällig auslost. Dabei wird, um das generelle Caching der Startseite nicht zu gefährden ein Seed erstellt, der alle 24 Stunden erneuert wird. sobald der Seed gesetzt wurde, bleiben die Fakten für alle Aufrufe (für jeden Benutzer) für diesen Zeitraum gleich.
Ausnahmen:
- Es werden andere Inhalte hinzugefügt, oder die JSON-Daten aktualisiert, dies löst Rekursiv eine neu Hauptseitenversion aus.
- Der Cache der Startseite wird manuell geleert über die Weboberfläche, oder durch einen Server-Admin.
Aufruf[Quelltext bearbeiten]
{{#invoke:NewsFeed|render|total=11|ratio=5:3:3}}
Parameter[Quelltext bearbeiten]
| Parameter | Beschreibung | Standard |
|---|---|---|
total |
Gesamtzahl der Einträge | 10 |
ratio |
Verhältnis Artikel:Intern:Funfacts | 5:3:3 |
Beispiel-JSON[Quelltext bearbeiten]
[
{
"title": "Heute erscheint das neue [[Pixel 10]]",
"text": "KI-Chip, neue Kamera, stärkerer Fokus auf Nachhaltigkeit.",
"from": "2025-11-01",
"to": "2025-11-15",
"priority": 2,
"persistent": false,
"turnus": "year",
"highlight": true
}
]
Ausgabe[Quelltext bearbeiten]
Erzeugt eine HTML-Liste:
<ul class="newslist">
<li><b>1.–15. November 2025:</b> Heute erscheint das neue <a href="/wiki/Pixel_10">Pixel 10</a> – KI-Chip, neue Kamera …</li>
</ul>
Hinweise[Quelltext bearbeiten]
- Das Modul nutzt serverseitige Zeitzone aus
$wgLocaltimezone. - Alle JSON-Dateien liegen im
Modul:-Namensraum, um sie vor normaler Bearbeitung zu schützen. - Fehlerhafte JSON-Syntax führt zu einem klaren Lua-Fehler, der in der Ausgabe angezeigt wird.