Benutzer-Werkzeuge

Webseiten-Werkzeuge


ki:edwiki:plugin:structbox

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
ki:edwiki:plugin:structbox [2026/10/25 07:48] – nemwarki:edwiki:plugin:structbox [2026/10/27 19:59] (aktuell) – nemwar
Zeile 3: Zeile 3:
 ====== structbox – DokuWiki-Plugin ====== ====== 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.+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 ===== ===== Benutzung =====
Zeile 31: Zeile 32:
 </WRAP> </WRAP>
 </code> </code>
 +
 +===== Daten einer anderen Seite (''%%@seite%%'') =====
 +
 +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.
 +
 +  * **Alles in der Box** bezieht sich auf die angegebene Seite: Platzhalter, ausgeblendete Zeilen/Abschnitte und struct-Abfragen in der Vorlage (''%%$ID$%%'', ''%%$NS$%%'', ''%%$PAGE$%%'', ''%%$STRUCT.feld$%%'' = die angegebene Seite). Ein Abschnitt „Konzerne dieser Fraktion“ erscheint also auch auf den Kapitelseiten.
 +  * **Platzhalter im Seitentext** (außerhalb der Box) zeigen weiterhin die Daten der Seite selbst.
 +  * **Leserechte:** Darf der Leser die angegebene Seite nicht lesen, bleibt die Box leer. Ist sie nicht für alle lesbar, wird die Seite nicht gecacht.
 +  * **Aktualisierung:** Ändern sich Daten oder Text der angegebenen Seite, oder wird sie neu angelegt, zeigt die Box das sofort.
 +  * **Sprachseiten:** ''%%en:codex:federal:1_history%%'' mit ''%%@start%%'' zeigt ''%%en:codex:federal:start%%'' – und damit (wie immer bei Sprachseiten) die Daten von ''%%codex:federal:start%%''.
 +  * **Kachelbild (nspages):** Eine Box mit ''%%@%%'' 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.
 +  * Gibt es die angegebene Seite nicht oder hat sie keine Daten, bleibt die Box leer (wie eine Seite ohne Daten).
 +  * Ohne ''%%@%%'' (oder mit leerem ''%%@%%'') verhält sich structbox genau wie 0.4.0.
  
 ===== Platzhalter ===== ===== Platzhalter =====
  
-^Schreibweise           ^Bedeutung                                                          ^ +^Schreibweise^Bedeutung^ 
-|''%%$$feld$$%%''       |Feld aus einem der Schemas, die der Seite zugewiesen sind          |+|''%%$$feld$$%%''|Feld aus einem der Schemas, die der Seite zugewiesen sind|
 |''%%$$schema.feld$$%%''|Feld aus genau diesem Schema (falls eine Seite mehrere Schemas hat)| |''%%$$schema.feld$$%%''|Feld aus genau diesem Schema (falls eine Seite mehrere Schemas hat)|
  
Zeile 76: Zeile 98:
 ===== Bilder in Übersichten (nspages & Co.) ===== ===== Bilder in Übersichten (nspages & Co.) =====
  
-Bilder aus struct-**Medienfeldern** (z. B. ''%%$$picture$$%%'') werden in die Seiten-Metadaten eingetragen – genauso, als stünde ''%%{{bild.png}}%%'' im Seitentext:+Bilder aus struct-**Medienfeldern** (z. B. ''%%$$bild$$%%'') werden in die Seiten-Metadaten eingetragen – genauso, als stünde ''%%{{bild.png}}%%'' im Seitentext:
  
-  * **Erstes Bild der Seite** (''%%relation firstimage%%''): Übersichten wie nspages mit ''%%-usePictures%%'' zeigen das Box-Bild als Kachel.+  * **Erstes Bild der Seite** (''%%relation firstimage%%''): Übersichten wie ''%%<nspages schiffe -pictures>%%'' zeigen das Box-Bild als Kachel.
   * **Medienverwendung:** Der Medienmanager führt die Seite unter „Verwendung“ des Bildes.   * **Medienverwendung:** Der Medienmanager führt die Seite unter „Verwendung“ des Bildes.
  
Zeile 86: Zeile 108:
   * Feste Bilder in der Vorlage selbst (z. B. ein Logo) zählen nicht – nur Bilder aus struct-Daten.   * Feste Bilder in der Vorlage selbst (z. B. ein Logo) zählen nicht – nur Bilder aus struct-Daten.
   * Gilt für Boxen und für Platzhalter direkt im Seitentext.   * Gilt für Boxen und für Platzhalter direkt im Seitentext.
-  * Die Metadaten werden automatisch erneuert, wenn sich Seite, Vorlage, struct-Daten oder das Plugin selbst ändern. Nach einem Update von 0.2.0 müssen Seiten mit Box nicht neu gespeichert werden; DokuWiki erneuert aber nur 5 Seiten pro Aufruf.+  * Die Metadaten werden automatisch erneuert, wenn sich Seite, Vorlage, struct-Daten oder das Plugin selbst ändern. 
 + 
 +===== Mehrsprachigkeit (Translation-Plugin) ===== 
 + 
 +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: 
 + 
 +  - die Seite in der Hauptsprache (''%%hangar:ships:adder%%'') 
 +  - die Seite in den Ersatzsprachen (Einstellung ''%%fallback%%'', Standard ''%%en%%'') 
 +  - 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: 
 + 
 +  - Vorlage in der Sprache der Seite (''%%fr:vorlagen:schiffe%%'') 
 +  - Vorlage in den Ersatzsprachen (''%%en:vorlagen:schiffe%%'') 
 +  - die Vorlage selbst (''%%vorlagen:schiffe%%'') 
 + 
 +Es genügt also eine englische Vorlage, damit alle Sprachen englische Beschriftungen haben. 
 + 
 +Hinweise: 
 + 
 +  * Das struct-Schema nur den Bereichen der Hauptsprache zuweisen (z. B. ''%%hangar:**%%'') – und ''%%en:…%%'', wenn es Artikel nur auf Englisch gibt (z. B. ''%%en:galnet:**%%''). Den übrigen Sprachen kein Schema zuweisen. 
 +  * Werte selbst werden nicht übersetzt: Auswahllisten-Werte und Seitenlinks (z. B. Hersteller) bleiben wie in der Hauptsprache. 
 +  * struct-Abfragen //in der Vorlage// mit ''%%$ID$%%'' beziehen sich auf die angezeigte Seite, nicht auf die Datenseite. 
 +  * Ist die Seite der Hauptsprache nicht für alle lesbar (ACL), wird die Sprachseite nicht gecacht, damit jeder Leser nur sieht, was er sehen darf. Ins Seiten-Bild (Metadaten) gehen nur öffentlich lesbare Daten ein. 
 +  * Ohne Translation-Plugin oder mit ''%%translation%%'' = aus verhält sich structbox wie 0.3.0.
  
 ===== Konfiguration ===== ===== Konfiguration =====
  
-^Option                    ^Standard        ^Bedeutung                                            ^ +^Option^Standard^Bedeutung^ 
-|''%%namespace%%''         |''%%vorlagen%%''|Namensraum der Vorlagenseiten                        | +|''%%namespace%%''|''%%vorlagen%%''|Namensraum der Vorlagenseiten| 
-|''%%hide_empty%%''        |an              |Zeilen mit nur leeren Platzhaltern ausblenden        | +|''%%hide_empty%%''|an|Zeilen mit nur leeren Platzhaltern ausblenden| 
-|''%%hide_struct_output%%''|an              |struct's eigene Tabelle auf Seiten mit Box 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|
  
 ===== Hinweise ===== ===== Hinweise =====
Zeile 103: Zeile 162:
 ===== Installation ===== ===== Installation =====
  
-Ordner ''%%structbox%%'' nach ''%%lib/plugins/structbox/%%'' hochladen. Voraussetzung: **struct** + **sqlite**; für das Layout das **wrap**-Plugin.+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 ===== ===== Versionen =====
  
-  * 0.3.0 (2026-10-25) – Bilder aus struct-Medienfeldern landen in den Seiten-Metadaten (erstes Bild für nspages ''%%-usePictures%%'', Medienverwendung); Metadaten hängen an Vorlage, struct-Daten und Plugin-Version+  * 0.5.0 – Daten einer anderen Seite: ''%%{{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 
 +  * 0.4.0 – Mehrsprachigkeit mit dem Translation-Plugin: Sprachseiten zeigen die Daten der Seite in der Hauptsprache (sonst Ersatzsprache, sonst eigene), Vorlagen pro Sprache mit Rückfall auf Englisch und Hauptsprache; Bilder der Sprachseiten in den Metadaten; Seiten werden neu gerendert, wenn Gegenstück oder Sprachvorlage entstehen 
 +  * 0.3.0 – Bilder aus struct-Medienfeldern landen in den Seiten-Metadaten (erstes Bild für nspages ''%%-pictures%%'', Medienverwendung); Metadaten hängen an Vorlage, struct-Daten und Plugin-Version
   * 0.2.0 – selbst ausblendende Abschnitte (''%%<structbox-section>%%''), leere Zwischenüberschriften und leere Tabellen werden ausgeblendet   * 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.1 – Seiten mit Box hängen an der struct-Datenbank (Abfragen in Vorlagen bleiben aktuell)
Zeile 115: Zeile 176:
  
 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. 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.3.0 zusätzlich mit nspages (''%%-usePictures%%''): 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. Getestet in einem Testwiki, im dev-wiki noch nicht bestätigt.+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 Lizenz: GPL 2
ki/edwiki/plugin/structbox.1792910891.txt.gz · Zuletzt geändert: von nemwar