Benutzer-Werkzeuge

Webseiten-Werkzeuge


ki:edwiki:plugin:structbox

Dies ist eine alte Version des Dokuments!


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 vorlagenNamensraum der Vorlagenseiten
hide_empty an Zeilen mit nur leeren Platzhaltern ausblenden
hide_struct_outputan struct's eigene Tabelle auf Seiten mit Box ausblenden

Hinweise

  • Seiten-Felder zeigen den Seitennamen (z. B. hersteller:faulcon_delacy). Mit der DokuWiki-Option useheading (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

ki/edwiki/plugin/structbox.1791702259.txt.gz · Zuletzt geändert: von nemwar