Zurück: edwiki
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.
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>
Hinter @ steht die Seite, deren Daten die Box zeigen soll – geschrieben wie ein Wiki-Link:
| Schreibweise | Daten 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.
$ID$, $NS$, $PAGE$, $STRUCT.feld$ = die angegebene Seite). Ein Abschnitt „Konzerne dieser Fraktion“ erscheint also auch auf den Kapitelseiten.en:codex:federal:1_history mit @start zeigt en:codex:federal:start – und damit (wie immer bei Sprachseiten) die Daten von codex:federal:start.@ bestimmt das erste Bild der Seite immer: das Bild der angegebenen Seite, auch wenn im Seitentext andere Bilder stehen. Hat die angegebene Seite kein Bild, hat auch die Seite keins (nspages zeigt sein Standardbild). Bei mehreren @-Boxen zählt die erste.@ (oder mit leerem @) verhält sich structbox genau wie 0.4.0.| 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) |
$$100$$ bleibt normaler Text.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>
<div class="structbox__section"> ausgegeben.^-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.
Bilder aus struct-Medienfeldern (z. B. $$bild$$) werden in die Seiten-Metadaten eingetragen – genauso, als stünde {{bild.png}} im Seitentext:
relation firstimage): Übersichten wie <nspages schiffe -pictures> zeigen das Box-Bild als Kachel.Regeln:
Mit dem translation-Plugin liegt die Hauptsprache ohne Präfix, Übersetzungen in Sprach-Namensräumen:
| Sprache | Seite | struct-Daten |
|---|---|---|
| Hauptsprache | hangar:ships:adder | ja – hier wird gepflegt |
| Englisch | en:hangar:ships:adder | keine nötig |
| Französisch | fr:hangar:ships:adder | keine nötig |
Daten – eine Sprachseite zeigt die Daten der ersten passenden Seite in dieser Reihenfolge:
hangar:ships:adder)fallback, Standard en)
„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:
fr:vorlagen:schiffe)en:vorlagen:schiffe)vorlagen:schiffe)Es genügt also eine englische Vorlage, damit alle Sprachen englische Beschriftungen haben.
Hinweise:
hangar:**) – und en:…, wenn es Artikel nur auf Englisch gibt (z. B. en:galnet:**). Den übrigen Sprachen kein Schema zuweisen.$ID$ beziehen sich auf die angezeigte Seite, nicht auf die Datenseite.translation = aus verhält sich structbox wie 0.3.0.| 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 |
translation | an | Mehrsprachigkeit mit dem Translation-Plugin (siehe oben) |
fallback | en | Ersatzsprachen für Daten und Vorlagen, durch Leerzeichen getrennt |
hersteller:faulcon_delacy). Mit der DokuWiki-Option useheading (Erste Überschrift als Seitenname) wird daraus „Faulcon DeLacy“.$USER$, $TODAY$) werden nicht pro Benutzer/Tag neu berechnet.
Ordner structbox nach lib/plugins/structbox/ hochladen. Voraussetzung: struct + sqlite; für das Layout das wrap-Plugin; für Mehrsprachigkeit (optional) das translation-Plugin.
{{structbox>vorlage@seite}} (relativ wie ein Wiki-Link oder absolut); Leserechte der Seite werden geprüft; struct-Abfragen in der Vorlage beziehen sich auf diese Seite; Kachelbild immer von dieser Seite; Seiten werden neu gerendert, wenn die angegebene Seite entsteht oder sich ändert-pictures, Medienverwendung); Metadaten hängen an Vorlage, struct-Daten und Plugin-Version<structbox-section>), leere Zwischenüberschriften und leere Tabellen werden ausgeblendet
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