Die "dreckige" empty

Armin Bartsch, Samstag, 06. Februar 2010

Constants ohne "if" oder Condition im setup abfragen

Constants bieten eine gute Möglichkeit um sein TypoScript gut strukturiert und übersichtlich in den Templates zu gestalten. Teile der Konfiguration können mit Constants separat angelegt und verwaltet werden und Änderungen an Werten/Konstanten müssen nicht in dem meist umfangreicheren Setups des Templates erfolgen. Die Constants können im Setup abgefragt werden und je nach Zustand zu einer unterschiedlichen Ausgabe führen. Eine Abfrage kann mit Condition, per if und der "dreckigen" "empty" Abfrage erfolgen.

Constants Abfrage

Ausführliche Info und Möglichkeiten zu den Conditions findest du unter typo3.org/documentation/document-library/core-documentation/doc_core_tsref/4.3.0/view/1/4/  deswegen wird hier nicht weiter darauf eingegangen.

Um eine Constants abzufragen ist Condition globalVar mit LIT von Bedeutung.

# Unsere Constants plugin.test = 1 # Im Setup dann die Conditions mit [globalVar = LIT:1 = {$plugin.test}] page.10.value = Testeintrag [end]
  1. # Unsere Constants
  2. plugin.test = 1
  3.  
  4.  
  5. # Im Setup dann die Conditions mit
  6. [globalVar = LIT:1 = {$plugin.test}]
  7. page.10.value = Testeintrag
  8. [end]

if Abfrage

Eine weitere Möglichkeit ist eine Abfrage mit den if-Bedingungen. Möglichkeiten der unterschiedlichen if findest du unter typo3.org/documentation/document-library/core-documentation/doc_core_tsref/4.3.0/view/1/5/ wobei zusätzlich override und require mit zu berücksichtigen sind.

# Die Constants plugin.test = 1 # Im Setup page.10 = TEXT page.10.value = Testeintrag page.10.if.isTrue = {$plugin.test}
  1. # Die Constants
  2. plugin.test = 1
  3.  
  4.  
  5. # Im Setup
  6. page.10 = TEXT
  7. page.10.value = Testeintrag
  8. page.10.if.isTrue = {$plugin.test}

Ich habe hier als Beispiel eine einfache if.isTrue verwendet, es kann natürlich je nach Anforderung auf andere Bedinungen zurückgegriffen werden!

Die "dreckige" empty

Eine weitere Möglichkeit ist die "dreckige" empty.

Zu beachten bei dem "dreckigen" empty ist,

  • dass "true" ist, wenn kein value vorhanden ist
  • dass die Konstante wirklich leer sein muss wenn man "true" haben möchte, es darf keine 0 oder NULL und auch kein String zugewiesen werden

Und warum nun das dreckige empty? Da es genau genommen keine Bedingung/Abfrage ist, es ist vielmehr eine "Fehlfüllung" des Konfigurations-Array. Dieser "fehlerhafte" Konfigurations-Array wird beim rendering nicht komplett abgearbeitet bzw. nicht berücksichtigt.

Leicht lässt sich, bedingt durch die "Fehlfüllung", eine einfache Artvon if.isTrue erzeugen

# In den Constants plugin.test = 1 # Ins Setup page.10 = TEXT page.10.value = Testeintrag {$plugin.test} page.10.value = Testeintrag 2
  1. # In den Constants
  2. plugin.test = 1
  3.  
  4. # Ins Setup
  5. page.10 = TEXT
  6. page.10.value = Testeintrag
  7. {$plugin.test} page.10.value = Testeintrag 2

Entwicklungsumgebung

TYPO Version:
4.3.1

Sponsored by:

ideenwerft webhosting
ideenwerft caretaker