magnify

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.

  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.

  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

  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
magnify

Kommentare

Ins Gästebuch eintragen
Kein Kommentar vorhanden

MERKLISTE

Login

Anmelden

Sponsored by:

ideenwerft webhosting

Wunschzettel