Template-Variablen

  • Man kann einige Variablen in den Fluid-Templates benutzten. Die werden nun hier erklärt. Zuerst findet man die Variablen, die man in normalen Templates benutzen kann, dann diejenigen, die man zusätzlich in den erweiterten Templates benutzen kann.
Variable Beschreibung (Beispiele findet man in List.html und Show.html)
fal Immer 1. Früher: Bilder aus dem FAL (1) oder aus dem Ordner uploads/camaliga (0) benutzen?
lang UID der Sprache.
uid UID des Plugin (Content-Element ID).
pid PID des Plugin (Seiten-ID).
storagePIDsArray Array mit den PIDs der Datensatzsammlung.
storagePIDsComma Komma-separierte Liste der PIDs der Datensatzsammlung.
contents

Array mit den Camaliga-Elementen. Das Array enthält diese Variablen mit Tabellen-Inhalten:

title, shortdesc, longdesc, link, image, image2, caption2, image3, caption3, image4, caption4, image5, caption5, street, zip, city, country, latitude, longitude, person, phone, mobile, email, custom1, custom2, custom3, categories.

Weiterhin ganz wichtig für JavaScript: titleNl2br, shortdescNl2br, longdescNl2br und streetNl2br.

Die Links werden im TypoLink-Format abgespeichert, weshalb noch weitere Variablen zur Verfügung stehen. linkResolved enthält nun den Pfad zu einer Datei, anstatt file:123 (wie link). Natürlich sollte das auch für andere Link-Arten normal sein, ist es im Moment aber nicht. Dafür gibt es noch die Variable links, die ein Array zurückgibt. Das ist hilfreich, wenn man mehrere Links speichern will oder wenn man den Typ des Links wissen will. Die Array-Keys lauten: link und type. type gleich 0: kein Link; 1: interner Link; 2: externer Link; 3: Datei; 4: Email-Adresse. Ein Beispiel sieht man weiter unten. In den Templates wird nun f:link.typolink benutzt, sodass man besser alles gleich bei der Linksetzung angibt.

Und wenn man die Camaliga-Tabelle erweitert: extended. Das ist ein Array mit den erweiterten Feldern.

settings Siehe TypoScript-Einstellungen.
onlySearchForm Wert, ob nur ein Suchformular angezeigt werden soll.
paddingItemWidth Element-Breite + 2*padding.
totalItemWidth Element-Breite + 2*padding + 2*margin.
itemWidth Hängt von “addPadding” ab: Element-Breite ODER paddingItemWidth.
totalWidth n * totalItemWidth.
paddingItemHeight Element-Höhe + 2*padding.
totalItemHeight Element-Höhe + 2*padding + 2*margin.
itemHeight Hängt von “addPadding” ab: Element-Höhe ODER paddingItemHight.
debug Debug-Ausgabe, wenn settings.debug=1.
  • Benutze ein erweitertes Template nur dann, wenn du diese zusätzlichen Variablen brauchst:
Variable Beschreibung (Beispiele findet man in ListExtended.html)
sortBy_selected Übergabevariable sortBy.
sortOrder_selected Übergabevariable sortOrder.
start Übergabevariable start.
defaultCatIDs Settings.defaulCatIDs.
storagePIDsData Array mit den Datensatzsammlungs-PIDs und der Info, welche davon ausgewählt sind.
all_categories Array mit allen Kategorien.
categories Array mit Kategorien und den übergeordneten Kategorien.
contents.categoriesAndParents Array mit allen benutzten Kategorien und den übergeordneten Kategorien.
sword Volltext-Such-Wort.
place Ort, der gesucht wird.
radius Ausgewählter Radius in km.
radiusArray Auswählbare Radius-Werte.
rsearch Wert, der sagt, ob die Umkreissuche aktiv ist.
  • Wenn settings.more.setModulo = 1 gesetzt wird, gibt es noch diese Variablen (abhängig von settings.item.items):
Variable Beschreibung (Beispiel findet man in Ekko.html)
contents.moduloBegin >0 nach jedem settings.item.items Element. 0 sonst. Beginnt beim 1. Element.
contents.moduloEnd >0 nach jedem settings.item.items Element. 0 sonst. Beginnt beim [items]-Element.

Hier noch ein Beispiel, wenn man nicht f:link.typolink benutzen will:

<f:if condition="{content.link} != ''">
      <f:if condition="{content.linkResolved} != ''">
              <f:then><a href="{content.linkResolved}" class="download">{f:translate(key: 'more')}</a></f:then>
              <f:else>
                      <f:if condition="{content.link} > 0">
                              <f:then><f:link.page pageUid="{content.link}" class="internal-link">{f:translate(key: 'more')}</f:link.page></f:then>
                              <f:else><f:link.external uri="{content.link}" class="external-link-new-window">{f:translate(key: 'more')}</f:link.external></f:else>
                      </f:if>
              </f:else>
      </f:if>
</f:if>