Sie befinden sich hier: start » de » Interne Dokumentation » DokuWiki-Erweiterungen (WvdS) » Blog » Blog — technische Referenz

Blog — technische Referenz

Diese Seite beschreibt Auszeichnung, Datenhaltung, Verwaltungsflächen und Schnittstellen des Pakets. Für den Einstieg siehe Überblick, für den ersten Beitrag den Schnelleinstieg.

Der Metadatenblock einer Seite

Eine Seite wird zum Beitrag, indem sie einen <wk:blog>-Block trägt. Der Block rendert nichts; er beschreibt die Seite, auf der er steht, und wandert mit ihr, wenn sie kopiert wird.

Angabe Bedeutung Werte
type Art des Eintrags post, page
format Textformat des Seiteninhalts dokuwiki, markdown
blog Name des Blogs, zu dem der Beitrag gehört frei
status Veröffentlichungszustand draft, pending, scheduled, published
publish Zeitpunkt der geplanten Veröffentlichung ISO 8601
created Erstellungszeitpunkt ISO 8601
author Angezeigter Name der Verfasserin oder des Verfassers frei
slug Kurzname für Verweise frei
comments Kommentarzustand enabled, closed, disabled
image Beitragsbild Medien-ID
tags Schlagwörter, durch Komma getrennt frei

Zwei Angaben stehen als Unterelement statt als Attribut, weil sie regelmäßig über mehrere Zeilen laufen: <excerpt> für den Anriss und die beiden Beschreibungen für Suchmaschinen und soziale Netzwerke.

Eine fehlende oder leere Angabe bedeutet „nicht gesetzt“, niemals „ausdrücklich leer“. Der Block kann einen Wert überschreiben oder schweigen; löschen kann er ihn nicht.

Auflistungen

Die Auszeichnung verlangt ein schließendes Tag; die Angaben stehen je Zeile darin. Eine einzeilige Fassung greift nicht und bleibt Text auf der Seite.

<blog list>
blog wk
limit 10
tpl wk
</blog>
<blog> und <wk:blog> sehen ähnlich aus und tun Gegensätzliches: <blog> listet Beiträge auf, <wk:blog> beschreibt die Seite, auf der es steht. In der Hausform heißt die Auflistung deshalb bloglist.
Art Wirkung
list Beiträge des Blogs, angerissen
pagination Blätterung zur Auflistung derselben Seite
related Beiträge mit den meisten gemeinsamen Schlagwörtern
recentcomments jüngste Kommentare
newform Formular „neuen Beitrag anlegen“
tagcloud Schlagwortwolke
tagsearch Trefferliste zu einem Schlagwort
Ein Monatsarchiv gibt es nicht. <blog archive> steht in keiner Auswahlliste des Codes und fällt in den Vorgabezweig: es erzeugt eine gewöhnliche Auflistung und meldet das nicht. Im Seitenbestand dieser Installation wird die Auszeichnung nirgends verwendet.

Vorlagen-Sets

Ein Vorlagen-Set bestimmt das Aussehen einer Auflistung. Mitgeliefert sind default, wk, wkbizway und wkbizwayteaser. Die Angabe tpl in der Auflistung wählt das Set; ohne Angabe gilt default.

Zeitplanung

Ein Beitrag mit status=„scheduled“ und einem publish-Zeitpunkt in der Zukunft bleibt unsichtbar, bis der Zeitpunkt erreicht ist. Die Umschaltung erledigt die Aufräumaufgabe des Wikis: sie schreibt den Zustand in den Block der Seite und erzeugt dabei eine gewöhnliche Revision. Es gibt keinen eigenen Zeitplandienst und keinen Prozess, der dauerhaft läuft — ohne Wiki-Zugriffe rückt auch der Zeitplan nicht vor.

Mehrere Blogs

Blogs unterscheiden sich allein durch den Namen in der Angabe blog. Ein zweiter Blog entsteht dadurch, dass Beiträge einen anderen Namen tragen und eine Auflistung nach diesem Namen fragt. Es gibt keine Blogverwaltung, keine Anlage und keine Löschung; ein Blog existiert genau so lange, wie eine Seite ihn nennt.

Datenhaltung

Die Seite ist die Wahrheit, die Datenbank ist ein daraus ableitbarer Index. Sie liegt in der Datei data/meta/wkblog.sqlite3 und führt die Tabellen entries, comments, tags, subscriptions, optin und opts.

Was ein Reindex wiederherstellt und was er stehen lässt

Ein Reindex baut die Projektion aus den Seiten neu auf. Wiederhergestellt wird alles, was im Block steht: Titel, Zustand, Zeitplan, Blog, Schlagwörter, Anriss. Nicht angetastet wird, was keine Entsprechung auf einer Seite hat: Kommentare, Abonnements, Opt-in-Sätze und der Verteilungsstand. Diese Daten sind Tatsachen über Ereignisse außerhalb des Wikis; ein Reindex kann sie weder herleiten noch zerstören.

Die Seitenkopie in ein anderes Wiki ist ein anderer Fall: dorthin wandert nur die Seite, also nur der Block. Kommentare, Abonnements und Verteilungsstand bleiben zurück.

Verteilungsstand

Sechs nullbare Spalten auf entries halten fest, dass und wann ein Beitrag in einem sozialen Netzwerk geteilt wurde. Eine Redaktion trägt das von Hand ein; es gibt keine automatische Veröffentlichung an ein Netzwerk. Bewusst kein Teil des Blocks: der Verteilungsstand ist keine Autorenangabe der Seite, sondern eine Feststellung über etwas, das außerhalb des Wikis geschehen ist.

Ein Ausfall der Zugriffsfilterung sieht nicht wie ein Fehler aus

Acht Routinen filtern die öffentlichen Listen über die Zugriffsstufe der Seite. Fällt diese Filterung aus — etwa weil die Datenbankfunktionen nach einem Umzug nicht mehr angemeldet werden —, gibt es keine Fehlermeldung. Es erscheinen zu viele Beiträge.

Das ist die unangenehmste Form eines Ausfalls: im Betrieb nicht von Richtigkeit zu unterscheiden. Eine Abnahme, die auf eine Ausnahme wartet, wartet vergeblich.

Eine Zählung allein prüft nichts. Sind alle Beiträge einer Installation ohnehin öffentlich lesbar, zählt ein anonymer Test in jedem Fall die volle Zahl — er wäre auch dann grün, wenn die Filterung vollständig ausgefallen ist.

Eine Installation sollte deshalb dauerhaft vorhalten:

  • mindestens einen veröffentlichten Beitrag, der anonym nicht lesbar ist,
  • die Sollzahl der anonym sichtbaren Beiträge, vorher festgelegt.

Geprüft wird die öffentliche Liste, nicht die Verwaltungsliste: letztere liegt ohnehin hinter einer Rechteprüfung, und der Ausfall zeigt sich nur dort, wo ein anonymer Besucher zählt. Die Sperre selbst gehört in die Zugriffssteuerung des Wikis und wird nie mit dem Paket ausgeliefert.

Es gibt kein eingebettetes SQL

Der gesamte Datenbankzugriff läuft über benannte Routinen mit gebundenen Parametern. Jede Routine ist ein Dateipaar aus .sql und einem Manifest; der Tabellenname steht dort im Klartext, nicht im PHP-Code. Wer eine Abfrage ändern will, ändert die Routinendatei. Siehe SQLite Data Studio.

Kommentare

Die drei Zustände

  • enabled — Kommentare sind möglich
  • closed — vorhandene Kommentare bleiben sichtbar, neue nicht möglich
  • disabled — es gibt keine Kommentare auf dieser Seite

Ist die Prüfung eingeschaltet, erscheint ein neuer Kommentar zunächst verborgen und wird erst nach Freigabe sichtbar. Der Verwaltungsbildschirm führt die wartenden Kommentare und zeigt ihre Anzahl als Abzeichen in der Werkbank.

Avatare, und was dabei den Server verlässt

Die Vorgabe holt keine Avatare von fremden Servern. Wird ein externer Dienst eingeschaltet, verlässt für jeden angezeigten Kommentar eine Anfrage mit der Prüfsumme der Adresse das Haus. Das ist eine bewusste Entscheidung und keine Voreinstellung.

Verwaltungsbildschirm

Der Bildschirm liegt unter ?do=admin&page=wkblog.

Die Übersicht beantwortet redaktionelle Fragen

Sechs Kennzahlen: Veröffentlicht, Entwürfe, Wartet auf Prüfung, Geplant, Kommentare zur Prüfung und der Stand der SEO-Pflege. Jede Zahl führt in die passend gefilterte Liste.

Die Beitragsliste filtert nach Zustand

Neben Titel und Blog filtert die Liste nach dem Veröffentlichungszustand. Der Filter bleibt beim Blättern erhalten.

Sammelaktionen ändern die Seite, nicht den Index

Status, Blog und Kommentarzustand stehen im Block der Seite. Eine Sammelaktion darauf schreibt deshalb die Seite über den gewöhnlichen Speicherweg: sie prüft die Berechtigung, beachtet die Bearbeitungssperre und erzeugt eine echte Revision. Erst danach wird der Index aufgefrischt. Wird ein Beitrag übersprungen, nennt die Meldung den Grund getrennt — wird gerade bearbeitet, keine Berechtigung, Seite existiert nicht mehr —, weil erst der Grund sagt, was zu tun ist.

Die Markierung „Hervorgehoben“ ist davon ausgenommen: sie ist ein Betriebszustand der Datenbank und erzeugt folgerichtig keine Revision.

Einbindung in die Werkbank

Das Paket zeichnet keine eigene Werkbank. Es liefert seine Teile an die eine vorhandene: die Navigation als Ansicht in der primären Seitenleiste, den Moderationsrückstand und den Aufenthaltsort als Angaben der Statuszeile, ein Abzeichen mit der Anzahl wartender Kommentare und zwei Befehle. Siehe wkfluentui.

Zweiter Faktor für die schwersten Eingriffe. Bei installiertem, optionalem wkidentity verlangen Reindex, das Nachrüsten der portablen Blöcke und die Kommentar-Massenlöschung einen für die Sitzung nachgewiesenen zweiten Faktor. Ohne wkidentity verhält sich das Paket unverändert.

Konfiguration

Die Einstellungen liegen im Konfigurationsmanager des Wikis unter dem Paketnamen. Sie regeln den Vorgabezustand neuer Kommentare, den Vorgabeblog, Vorgabeschlagwörter, die Prüfpflicht für Kommentare, das Setzen des Datums im Bearbeitungsformular und die Annahme von Linkbacks. Ein ungültiger Wert wird nicht übernommen; es gilt dann die Vorgabe.

Schnittstelle für Programme

Das Paket bietet eine Fläche für den Fernaufruf des Wikis an. Sie legt Beiträge an, liest sie, ändert den Zustand und pflegt Schlagwörter. Jeder Aufruf durchläuft dieselbe Berechtigungsprüfung wie die Bedienoberfläche und erzeugt beim Schreiben dieselbe Revision; es gibt keinen Weg, der die Seite umgeht.

Verhalten in Sonderfällen

  • Eine Seite ohne Block ist kein Beitrag, auch wenn eine Zeile in der Datenbank steht.
  • Eine gelöschte Seite verliert ihre Zeile beim nächsten Zugriff auf den Eintrag.
  • Ein unbekannter Wert in der Auflistung fällt auf list zurück und meldet das.
  • Fehlt die Datenbank, schalten sich die Flächen ab, statt die Seite abzubrechen.

Verhältnis zum Vorgängerpaket

Das Paket ist ein Fork von BlogTNG. Der Fork war mechanisch, die Weiterentwicklung ist es nicht: der portable Metadatenblock, das zweite Textformat, der Verwaltungsbildschirm, die Zeitplanung und die Fernaufruf-Fläche sind Hauszutaten. Die alte Feed-Adresse bleibt aus Verträglichkeitsgründen erreichbar.

de/wiki/dwe/wkblog/reference.txt · Zuletzt geändert: von rollout