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>

Daten einer anderen Seite (''%%@seite%%'')

Hinter @ steht die Seite, deren Daten die Box zeigen soll – geschrieben wie ein Wiki-Link:

SchreibweiseDaten kommen von
{{structbox>factions}}der Seite selbst (wie bisher)
{{structbox>factions@start}}start im selben Namensraum
{{structbox>factions@codex:federal:start}}genau dieser Seite
{{structbox>factions@..:start}}start im übergeordneten Namensraum

Beispiel: Die Daten der Föderation liegen nur auf codex:federal:start; die Kapitelseiten codex:federal:1_history usw. zeigen mit {{structbox>factions@start}} dieselbe Box. Gepflegt wird nur einmal, das Schema bleibt nur start zugewiesen.

Platzhalter

SchreibweiseBedeutung
$$feld$$Feld aus einem der Schemas, die der Seite zugewiesen sind
$$schema.feld$$Feld aus genau diesem Schema (falls eine Seite mehrere Schemas hat)

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>

Verhalten

Bilder in Übersichten (nspages & Co.)

Bilder aus struct-Medienfeldern (z. B. $$bild$$) werden in die Seiten-Metadaten eingetragen – genauso, als stünde {{bild.png}} im Seitentext:

Regeln:

Mehrsprachigkeit (Translation-Plugin)

Mit dem translation-Plugin liegt die Hauptsprache ohne Präfix, Übersetzungen in Sprach-Namensräumen:

SpracheSeitestruct-Daten
Hauptsprachehangar:ships:adderja – hier wird gepflegt
Englischen:hangar:ships:adderkeine nötig
Französischfr:hangar:ships:adderkeine nötig

Daten – eine Sprachseite zeigt die Daten der ersten passenden Seite in dieser Reihenfolge:

  1. die Seite in der Hauptsprache (hangar:ships:adder)
  2. die Seite in den Ersatzsprachen (Einstellung fallback, Standard en)
  3. ihre eigenen Daten

„Passend“ heißt: Die Seite existiert, hat mindestens einen ausgefüllten Wert und der Leser darf sie lesen. So pflegst du alles nur einmal. Artikel, die es nur auf Englisch gibt, tragen ihre Daten auf der en:-Seite; alle anderen Sprachen zeigen dann diese. Bekommt so ein Artikel später eine Seite in der Hauptsprache, übernimmt sie erst, sobald dort etwas eingetragen ist.

Vorlagen – {{structbox>schiffe}} sucht in dieser Reihenfolge:

  1. Vorlage in der Sprache der Seite (fr:vorlagen:schiffe)
  2. Vorlage in den Ersatzsprachen (en:vorlagen:schiffe)
  3. die Vorlage selbst (vorlagen:schiffe)

Es genügt also eine englische Vorlage, damit alle Sprachen englische Beschriftungen haben.

Hinweise:

Konfiguration

OptionStandardBedeutung
namespacevorlagenNamensraum der Vorlagenseiten
hide_emptyanZeilen mit nur leeren Platzhaltern ausblenden
hide_struct_outputanstruct's eigene Tabelle auf Seiten mit Box ausblenden
translationanMehrsprachigkeit mit dem Translation-Plugin (siehe oben)
fallbackenErsatzsprachen für Daten und Vorlagen, durch Leerzeichen getrennt

Hinweise

Installation

Ordner structbox nach lib/plugins/structbox/ hochladen. Voraussetzung: struct + sqlite; für das Layout das wrap-Plugin; für Mehrsprachigkeit (optional) das translation-Plugin.

Versionen

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. 0.3.0 zusätzlich mit nspages (-pictures): Box-Bild als Kachel, leeres Bildfeld (Standardbild), Bild im Seitentext vor der Box, Platzhalter im Seitentext, Vorlagenseite selbst, Vorlage ändern, Update von 0.2.0 ohne Neuspeichern. 0.4.0 zusätzlich mit translation (Stand 2025-05-20), Sprachen en en-us es fr pt-br ru: Daten von der Hauptsprache auf en/fr/en-us, nur-englischer Artikel (fr folgt en), leere Hauptsprachen-Seite (übernimmt erst mit Daten), gesperrte Hauptsprachen-Seite (anonym/Leser/Admin, kein Cache), Daten ändern, Gegenstück neu anlegen, FR-Vorlage neu anlegen, EN-Vorlage als Rückfall, alte Revision, Platzhalter im Seitentext, nspages-Kacheln in en:, Metadaten auf der Kommandozeile wie bei bin/indexer.php (ohne ACL-System), Ausgabe ohne Mehrsprachigkeit identisch mit 0.3.0. 0.5.0 zusätzlich (DokuWiki 2026-07-14c, struct und translation aktueller Stand, nspages): @start, absolute Angabe, @ auf Sprachseite (Daten der Hauptsprache), gesperrte Quellseite (anonym/Leser leer, Admin sieht Daten, kein Cache), nicht vorhandene Quellseite (leer, erscheint nach Anlegen), Quellseite ohne Daten, leeres @, Daten der Quellseite ändern (Box und Kachelbild ziehen nach), struct-Liste mit $ID$ in der Vorlage, Platzhalter im Seitentext neben einer @-Box, Kachelbild bei eigenem Bild im Text (Quellbild gewinnt) und bei Quelle ohne Bild (kein Bild), nspages-Übersicht, alte Revision; Seiten ohne @ liefern HTML und Metadaten identisch zu 0.4.0; keine PHP-Warnungen.

Lizenz: GPL 2