1 Überblick

Häufig kommt es vor, dass ein Content-Elemente oder ganze Seiten ab oder bis zu einem bestimmten Zeitpunkt angezeigt werden soll. So z.B. bei einem Gewinnspiel, das am Samstag um 17:00 Uhr auslaufen soll. Oder eine wichtige Information, die erst am Montag um 14:00 Uhr für die Besucher des Internetauftritts sichtbar sein, aber schon vorher von Editoren vorbereitet werden soll. Für diesen Fall gibt es mehrere Möglichkeiten diesen Inhalt anzuzeigen oder zu verstecken.

2 Tab "Zugriff" in den Einstellungen

Tab Zugriff in den Einstellungen

Bearbeitet man ein Inhalts-Element oder eine Seite im TYPO3-Backend, so findet man mindestens zwei Tabs vor, "Allgemein" und "Zugriff". Im letztgenannten wiederum findet man zwei Eingabefelder mit den Titeln "Start" und "Stop". Diese beiden Eingabefelder haben den Zweck, dem aktuellen Inhalts-Element eine Zeit festzulegen, ab oder bis wann es im Frontend angezeigt werden soll. Natürlich kann man durch Angabe von Start und Stop auch einen Zeitraum festlegen.

Falls noch nicht installiert, empfiehlt es sich, die Extension Date2Calendar (date2cal) zu installieren. Dadurch wird neben den Eingabefeldern ein Symbol angezeigt, wohinter sich ein Datepicker versteckt. Das vereinfacht die Eingabe erheblich.

3 TypoScript-Bedingung per stdWrap

TypoScript Objekte (TEXT, COA, ect...) können relativ einfach mit den stdWrap-Methoden von TYPO3 zeit-gesteuert angezeigt oder versteckt werden. Dafür mal zwei Beispiele:

## Start
page.10.myTest = TEXT
page.10.myTest {
  value = Ich bin bis zum angegebenen Zeitpunkt nicht sichtbar
  stdWrap.if {
    value.data = date:U
    isLessThan = 1274268845
  }
}

## Stop
page.10.myTest = TEXT
page.10.myTest {
  value = Ich werde bis zum angegebenen Zeitpunkt angezeigt
  stdWrap.if {
    value.data = date:U
    isGreaterThan = 1274268845
  }
}

Hierbei ist zu beachten, dass sich die beiden Bedingungen lediglich durch die Angabe von "isLessThan" bzw. "isGreaterThan" unterscheiden. Desweiteren muss beachtet werden, dass der Vergleichswert immer ein Timestamp sein muss und nicht durch ein Datum ausgetauscht werden kann. Der Vergleich wird nämlich auf Integer-Basis vollzogen und das Datum nicht vorher in einen Timestamp umgewandelt.

4 TypoScript Condition

Wenn Einstellungen für Extensions nicht als TypoScript-Objekte interpretiert werden können, oder mehrere Objekte gleichzeitig zu einem bestimmten Zeitpunkt angezeigt oder versteckt werden sollen, bietet es sich an eine TypoScript-Condition (Bedinung) einzusetzen. Dafür braucht man lediglich die globale Variable "SIM_EXEC_TIME" mit einem gewünschten Timestamp zu vergleichen. Das sieht dann wie folgt aus:

## Start
[globalVar = SIM_EXEC_TIME > 1274268845]
  plugin.tx_myextension_pi1.templateFile = fileadmin/templates/other_template.html
[global]

## Stop
[globalVar = SIM_EXEC_TIME < 1274268845]
  plugin.tx_myextension_pi1.templateFile = fileadmin/templates/other_template.html
[global]

## Zeitraum
[globalVar = SIM_EXEC_TIME > 1274268845] && [globalVar = SIM_EXEC_TIME < 1274268900]
  plugin.tx_myextension_pi1.templateFile = fileadmin/templates/other_template.html
[global]

Die Variable "SIM_EXEC_TIME" oder auch $GLOBALS['SIM_EXEC_TIME'] wird immer mit dem aktuellen Timestamp belegt, es sei denn, über das Admin-Panel wird eine andere Zeit emuliert, dann enthält die Variable diesen neuen Timestamp.

Über "[globalVar = ...]" kann man eine Condition mit einem Wert des globalen Arrays "$GLOBALS" erstellen. Es stehen noch weitere Bedingungen zu Verfügung, dazu empfiehlt sich die TYPO3-Dokumentation zu studieren.


Copyright © 2005 - 2012 | Speedprogs.de
RSS | Sitemap | Datenschutz | Seite als PDF herunterladen