Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Zurück: edwiki
structbox – DokuWiki-Plugin
Füllt eine Vorlagenseite mit den Struct-Daten der angezeigten Seite – z. B. als Infobox in der rechten Spalte. Die Gestaltung ist normale Wiki-Syntax in der Vorlage; das Plugin bringt kein eigenes Layout mit.
Benutzung
1. Vorlage anlegen – Seite im Vorlagen-Namensraum (Standard vorlagen), z. B. vorlagen:schiffe:
^ $$name$$ ^^ | Hersteller | $$manufacturer$$ | | Höchstgeschwindigkeit | $$top_speed$$ | | Landeplatz | $$landing_pad$$ | | Quelle | Frontier |
2. In die Seite einbinden – z. B. in der 1/3-Spalte deines WRAP-Layouts:
<WRAP group>
<WRAP twothirds column>
Artikeltext …
</WRAP>
<WRAP third column>
{{schiffe:python.png?200}}
{{structbox>schiffe}}
</WRAP>
</WRAP>
Platzhalter
| Schreibweise | Bedeutung |
|---|---|
$$feld$$ | Feld aus einem der Schemas, die der Seite zugewiesen sind |
$$schema.feld$$ | Feld aus genau diesem Schema (falls eine Seite mehrere Schemas hat) |
- Werte werden von struct selbst dargestellt: Seiten-Felder als Link, Bilder als Bild, Prefix/Postfix (z. B. „m/s“) inklusive, alles sicher escaped.
- Feldnamen müssen mit einem Buchstaben beginnen –
$$100$$bleibt normaler Text. - Platzhalter funktionieren auch direkt im Seitentext (ohne Vorlage).
Abschnitte, die sich selbst ausblenden
Teile der Vorlage, die nur manchmal Inhalt haben (z. B. Produktlisten), kommen in einen Abschnitt:
<structbox-section> **Schiffe** ---- struct list ---- schema: ships cols: %title% filter: manufacturer = $ID$ ---- </structbox-section>
- Der Abschnitt verschwindet samt Überschrift, wenn alle Platzhalter und struct-Listen/-Tabellen darin leer sind.
- Ein Abschnitt ohne Platzhalter und ohne Liste wird immer angezeigt.
- Abschnitte dürfen verschachtelt werden; jeder Abschnitt wird als
<div class="structbox__section">ausgegeben. - So kann eine Vorlage pro Seitentyp alle möglichen Verknüpfungen enthalten (Schiffe, Waffen, Galnet …) – jede Seite zeigt nur, was es für sie gibt.
Verhalten
- Leere Felder: Tabellenzeilen, deren Platzhalter alle leer sind, werden ausgeblendet. Zeilen ohne Platzhalter (z. B. „Quelle“) bleiben.
- Zwischenüberschriften (Zeilen nur aus
^-Zellen ohne Platzhalter, z. B.^ Verteidigung ^^) verschwinden, wenn alle Zeilen darunter bis zur nächsten Zwischenüberschrift ausgeblendet wurden. Bleibt von einer Tabelle nichts übrig, verschwindet sie ganz. - Vorlage ändern: Seiten, die die Vorlage nutzen, werden automatisch neu gerendert.
- Daten anderer Seiten: Struct-Abfragen in der Vorlage (z. B. „alle Schiffe dieses Herstellers“) und verlinkte Titel aktualisieren sich, sobald sich irgendwo struct-Daten ändern.
- Struct-eigene Tabelle: Auf Seiten mit Struct-Box wird struct's automatische Datentabelle ausgeblendet; auf allen anderen Seiten bleibt sie.
- Vorlagenseite selbst zeigt die Feldnamen statt Werten.
- Alte Revisionen zeigen die Daten von damals.
- Fehler (Vorlage fehlt, liegt außerhalb des Namensraums, verschachtelt) erscheinen als Hinweis statt der Box.
- Sicherheit: Nur Seiten im Vorlagen-Namensraum können eingebunden werden – so lassen sich keine geschützten Seiten über die Box auslesen.
Konfiguration
| Option | Standard | Bedeutung |
|---|---|---|
namespace | vorlagen | Namensraum der Vorlagenseiten |
hide_empty | an | Zeilen mit nur leeren Platzhaltern ausblenden |
hide_struct_output | an | struct's eigene Tabelle auf Seiten mit Box ausblenden |
Hinweise
- Seiten-Felder zeigen den Seitennamen (z. B.
hersteller:faulcon_delacy). Mit der DokuWiki-Optionuseheading(Erste Überschrift als Seitenname) wird daraus „Faulcon DeLacy“. - Struct-Listen in Vorlagen mit benutzer- oder datumsabhängigen Filtern (
$USER$,$TODAY$) werden nicht pro Benutzer/Tag neu berechnet. - Tipp: Den Vorlagen-Namensraum per ACL für normale Leser ausblenden ist möglich – die Box wird trotzdem angezeigt.
Installation
Ordner structbox nach lib/plugins/structbox/ hochladen. Voraussetzung: struct + sqlite; für das Layout das wrap-Plugin.
Versionen
- 0.2.0 – selbst ausblendende Abschnitte (
<structbox-section>), leere Zwischenüberschriften und leere Tabellen werden ausgeblendet - 0.1.1 – Seiten mit Box hängen an der struct-Datenbank (Abfragen in Vorlagen bleiben aktuell)
- 0.1.0 – erste Version
Getestet
DokuWiki 2026-07-14c „Mort“, PHP 8.3, struct (Stand 2026-09-22), wrap: Box in 1/3-Spalte, leere Zeilen, Abschnitte (Firma mit Schiffen / nur Waffen / ohne Produkte), Zwischenüberschriften, Escaping, Seiten-Link, Postfix, Vorlage ändern, alte Revision, Fehlermeldungen, Namensraum-Schutz.
Lizenz: GPL 2
