Word-Vorlagen

Vorlagen-Variablen

Jeder Befehl sieht diese Variablen.

Übersicht

VariableInhalt
$oDas aktuelle Objekt. Bei Vorlagen mit einem Dokument je Objekt das Objekt, für das gerade gerendert wird; bei Vorlagen mit einem Dokument für alle das erste
objectsArray aller geladenen Objekte, in der Filter- und Sortierreihenfolge der Ansicht
fFelddefinitionen, nach Feldname: f[`Gewicht`] liefert die Definition samt Konfiguration
pProjektdaten
$fDateien des aktuellen Objekts
filesAlle Dateien, nach Objektkennung gruppiert
$mFeld-Anmerkungen des aktuellen Objekts (Farbe, Kommentar, Quelle)
$eDie Ereignisse des aktuellen Objekts
$fmtDie formatierten Feldwerte des aktuellen Objekts (Ausgabe-Formatter)
uiAnsichtseinstellungen des exportierenden Benutzers (nur lesen)

objects, f, files und p sind für alle Objekte eines Exportlaufs dieselben. Auch in einer Vorlage mit einem Dokument je Objekt ist objects vollständig: {#objects.length#} gibt dort die Zahl aller exportierten Objekte aus.

$o: das aktuelle Objekt

{#$o[`RegNr`] ?? ``#}
{#$o[`Originaltitel`] ?? ``#}
{#$o.objektID#}

Felder werden über ihren Feldnamen angesprochen, in Backticks. Der Rückfall mit ?? und leerer Zeichenkette ist Standardstil. Der Wert ist immer der Rohwert, wie er gespeichert ist: Zahlen als Zeichenkette, Daten als JJJJ-MM-TT. Lesbare Formen liefern imask, fdate, fcheck und ffmt.

Unterfelder: beide Schreibweisen

Adress-, Objekt- und Geopositionsfelder liefern Unterfelder. Moliri stellt sie verschachtelt bereit und behält den Originalschlüssel. Beide Formen funktionieren:

{#$o[`Leihgeber`]?.address_designation ?? ``#}    verschachtelt
{#$o[`Leihgeber~address_designation`] ?? ``#}     wörtlich

Beim verschachtelten Zugriff immer ?. statt .: fehlt das Feld im Projekt oder ist es leer, ist $o[`Leihgeber`] undefiniert. Mit . bricht der Ausdruck ab, mit ?. greift der Rückfall.

Schalterfelder

Schalterfelder liefern den gespeicherten Wert, meist 1 für Ja. Die Zeichenkette '0' gilt in JavaScript als wahr. Eine reine Wahrheitsprüfung wie $o[`Kurierbegleitung`] ? … ist deshalb falsch. Entweder ausdrücklich vergleichen oder fcheck nehmen, das auch eigene Speicherwerte richtig liest:

Kurierbegleitung: {#($o[`Kurierbegleitung`] == 1) ? `Ja` : `Nein`#}
Kurierbegleitung: {#fcheck($o[`Kurierbegleitung`], `Ja`, `Nein`)#}

objects: alle Objekte

{# FOR obj IN objects #}
{# INS $obj[`RegNr`] ?? `` #}
{# END-FOR obj #}

Sobald eine FOR-Schleife über objects läuft, entsteht ein Dokument für alle Objekte. Siehe Vorlagen-Syntax .

f: Felddefinitionen

Enthält die Definition jedes Feldes samt Konfiguration. Vor allem für imask():

{# INS imask($o[`Breite`], f[`Breite`]) #}

Damit übernimmt die Ausgabe die Zahlenmaske aus der Feldkonfiguration .

p: Projektdaten

EigenschaftInhalt
p.projektIDKennung
p.projektnameName
p.projektname_engEnglischer Name
p.projektbeginnBeginn
p.projektendeEnde
p.projektortOrt
p.projektstatusStatus
Projekt: {# INS p.projektname ?? `` #}
Ort: {# INS p.projektort ?? `` #}
Zeitraum: {# INS fdate(p.projektbeginn) #} bis {# INS fdate(p.projektende) #}

$f: Dateien des aktuellen Objekts

Entspricht files[String($o.objektID)] ?? [].

{# FOR file IN $f #}
{# IF [`image`, `image_other`, `svg`].includes($file.dateiArt) #}
{# IMAGE img($file, { width: 6 }) #}
{# END-IF #}
{# END-FOR file #}

Eigenschaften eines Dateieintrags

EigenschaftInhalt
dateiIDKennung
dateiNameGespeicherter Dateiname
dateiTextFrei wählbarer Text, meist als sprechender Name genutzt
dateiEndungEndung
dateiArtimage · image_other · svg · pdf · audio · video · 3D · file
dateiSchlagworteSchlagworte, kommagetrennt
dateiDescriptionBeschreibung
dateiWidth, dateiHeightMaße in Pixel
dateiModifier1 bis 3Markierungen, Zuschnitt, Texterkennung

Zusätzlich stehen Kurznamen für die Bildverarbeitung bereit: id, extension, width, height, modifier1 bis 3. Deshalb können Dateiobjekte aus $f direkt an img() gehen.

Dateien werden nur bei Bedarf geladen

Nur wenn die Vorlage $f oder files erwähnt, ruft Moliri Dateien überhaupt ab. Und: $f folgt nicht der Laufvariablen einer Objektschleife. Innerhalb von FOR obj IN objects heißt es files[$obj.objektID].

files: alle Dateien nach Objekt

JS
files = {
  "10349": [ /* Dateien von Objekt 10349 */ ],
  "10350": [ /* Dateien von Objekt 10350 */ ]
}
{# FOR obj IN objects #}
{# INS $obj[`RegNr`] ?? `` #}
{# FOR file IN files[$obj.objektID] #}
{# IMAGE img($file, { width: 6 }) #}
{# END-FOR file #}
{# END-FOR obj #}

$m: Feld-Anmerkungen

JS
$m = { "RegNr": { color: "red", comment: "…", source: "…" } }

Je Feld Farbmarkierung, Kommentar und Quelle. In Schleifen über objects trägt jedes Objekt seine eigenen Anmerkungen als $obj.__m. Ausgewertet wird $m von deco() ; lesen lässt es sich auch direkt:

{#$m[`Datierung`]?.comment ?? ``#}

$e: Ereignisse des aktuellen Objekts

Ein Array der Ereignisse , in der am Objekt festgelegten Reihenfolge. In einer Schleife über objects hat jedes Objekt seine Ereignisse als $obj.__ereignisse.

EigenschaftInhalt
art, artLabelSchlüssel und Bezeichnung der Ereignisart, etwa ausstellung
titelTitel des Ereignisses
geteiltOb es ein geteiltes Ereignis ist
werText, werLabel, werPersonLabelErster Akteur: Freitext, aus den Normdaten, aus dem Adressbuch
werGndID, werWikidataIDKennungen des ersten Akteurs
werRolleRolle des ersten Akteurs
actorsAlle Akteure, je mit werText, werLabel, werPersonLabel, werGndID, werWikidataID, werRolle, werZuschreibung
ortTextOrt als Freitext
ortLabel, ortGndID, ortWikidataIDOrt aus den Normdaten
von, bisZeitraum des Ereignisses
datumTextAnzeigedatierung
beschreibungBeschreibung
culture, periodName, method, materialsTech, attributionQualifierWeitere Angaben des Ereignisses, etwa bei Herstellung und Zuschreibung
rolleRolle bzw. Katalognummer dieses Objekts in diesem Ereignis
vonOverride, bisOverrideZeitraum nur für dieses Objekt
notiz, quelle, kommentar, farbe, hesitantAngaben der Verknüpfung
{# FOR ev IN $e #}
{# IF $ev.art === `ausstellung` #}
{# INS $ev.titel #}{# INS combine($ev.rolle, { pre: ` (Kat. `, post: `)` }) #}
{# END-IF #}
{# END-FOR ev #}

von und bis sind der Zeitraum des Ereignisses. vonOverride und bisOverride gelten nur für dieses Objekt, etwa ein abweichender Leihzeitraum.

$fmt: formatierte Feldwerte

Für Felder mit einem Ausgabe-Formatter:

{#$o[`Maße`]#}           roh
{#$fmt[`Maße`]#}         formatiert, etwa 118,5 × 64 × 21 cm
{#$fmt[`Maße.Objekt`]#}  ein einzelner Eintrag

$fmt gehört zum aktuellen Objekt und ist in Schleifen über objects falsch. Dort ffmt($obj, `Maße`) verwenden. Einzelheiten unter Ausgabe-Formatter in Vorlagen .

Nicht mit $f verwechseln, das sind die Dateien.

ui: Ansichtseinstellungen des Exportierenden

SchlüsselBedeutungVorgabe
ui.checkboxYes, ui.checkboxNoDarstellung von Schalterfeldern✅ / ❌
ui.dateFormatDatumsformat als Muster (DD.MM.YYYY, D. MMMM YYYY …) oder false für unformatiertDD.MM.YYYY
ui.floatFormatZahlenformat: de-DE, en-US, de-CH, fr-FR, en-ISOde-DE
ui.nullreplacementErsatztext für leere Werten/a

Die Vorgaben sind die der Ansichtseinstellungen . Liegt beim Export keine Einstellung vor, setzt Moliri Ja und Nein für Schalter ein.

Wann ui nicht zu verwenden ist

Jeder ui-Zugriff macht die Vorlage benutzerabhängig: dasselbe Dokument sieht bei zwei Personen anders aus. Für Verträge, Leihscheine und alles Archivierte gehören feste Werte in den Befehl.

Weiterlesen

\ en\ de