Zum Inhalt springen

Zeitabhängiger Begrüßungstext

Erstellt am 17. Juni 2005 · 18 Antworten · letzte Antwort am 20. März 2006

Tags: Frage

NecroKnight ·

Hallo!

Ich arbeite gerade das Praxiswissen Typo3 Buch durch. Ich hänge gerade an der Stelle mit dem "Zeitabhängigen Begrüßungstext" fest.
Mit dem Standardcode aus dem Buch wird bei mir immer die letzte Condition sprich "Guten Abend" ausgegeben.
Klammern sind ok.

Meine Serverzeit ist in Ordnung. Woran kann das liegen?

robert.​meyer ·

Mit dem Standardcode aus dem Buch wird bei mir immer die letzte Condition sprich "Guten Abend" ausgegeben

Hallo,
der TS-Code währe interessant zu sehen - vielleicht einfach mal posten. Irgendwo muss ja der Fehler liegen...

NecroKnight ·

Hallo,

ich hatte den Code bewußt nicht kopiert weil er ja aus dem Buch raus ist -> Copyright...

Aber hier jetzt der Code:

Beispiel 9-1: Zeitabhängiger Begrüßungstext mit Conditions

page = PAGE
page {
   [...]
   10.marks {
      # Den Platzhalter DATUM ansprechen
      DATUM = COA_INT
      DATUM {
         # Den Begrüßungstext realisieren
         10 = TEXT
         10 {
            value = Guten Morgen
            wrap = |, heute ist der 
         }
         # Das aktuelle Datum ausgeben
         20 = TEXT
         20 {
            data = date:d.m.Y
         }
      }
   
      # Das Logo einlesen
      [...]
   }
}
[...]
# Das Suchergebnis anpassen
tt_content.search.20 {
   [...]
}

#### BEDINGUNGEN ###

# Zeitabhängiger Begrüßungstext
[hour = >= 11]
   page.10.marks.DATUM.10.value = Guten Tag
[hour = >= 19]
   page.10.marks.DATUM.10.value = Guten Abend
[global]
cinos22 ·

Hi,

ich denke mal deine "Gleichzeichen" sind zuviel.

Probier mal dies:

# Zeitabhängiger Begrüßungstext
[hour => 11]
   page.10.marks.DATUM.10.value = Guten Tag
[hour => 19]
   page.10.marks.DATUM.10.value = Guten Abend
[global]
NecroKnight ·

Das funktioniert leider nicht.

Ich weiß nicht ob es [​code]= >= in der Kombination gibt?
Also = ist eine Wertzuweisung > löscht den vorherigen Inhalt und dann kommt wieder eine Wertzuweisung. So liest sich das jetzt für mich.

Laut der Anleitung von hier wird immer mit dem = Zeichen gearbeitet.
http://typo3.jweiland.net/en/typo3cms/howto/typoscript-bedingung/
Beispiel daraus:

Wochentage
Donnerstags soll ein anderes Template verwendet werden als an den anderen Wochentagen:

config.cache_clearAtMidnight = 1
page.10.template.file = fileadmin/normal_template.html 
[dayofweek = 4]  # 0 = Sunday, 1 = Monday, ...
page.10.template.file = fileadmin/thursday_template.html
[global]
[hour = 19]
                    page.10.marks.DATUM.10.value = Guten Tag

[hour = 21]
                   page.10.marks.DATUM.10.value = Guten Abend
[global]

Das mag aber nicht.

8.0.4 COBJ_ARRAY (COA, COA_INT) von typo3.org hilft mir auch nicht, vermutlich bin ich da auch auf dem falschen dampfer...

Die folgenden Varianten habe ich bereits ausprobiert.
Aktuell ist 20.x Uhr. Der letzte Kommentar ist immer das Ergebnis.

[hour = 19]
                    page.10.marks.DATUM.10.value =< Guten Tag

[hour = 21]
                   page.10.marks.DATUM.10.value =< Guten Abend
### Guten Morgen
[hour = 19]
                    page.10.marks.DATUM.10.value = Guten Tag

[hour = 21]
                   page.10.marks.DATUM.10.value = Guten Abend
### Guten Abend
# Zeitabhängiger Begrüßungstext
[hour = 19]
                    page.10.marks.DATUM.10.value >
                    page.10.marks.DATUM.10.value = Guten Tag

[hour = 21]
                   page.10.marks.DATUM.10.value >
                   page.10.marks.DATUM.10.value = Guten Abend
### Guten Morgen
#
[hour = >= 11]
#
   page.10.marks.DATUM.10.value = Guten Tag
#
[hour = >= 19]
#
   page.10.marks.DATUM.10.value = Guten Abend
###Guten Abend
[hour >= 19]
                    page.10.marks.DATUM.10.value = Guten Tag

[hour >= 21]
                   page.10.marks.DATUM.10.value = Guten Abend
###Guten Morgen
# Zeitabhängiger Begrüßungstext
[hour = 19]
                    page.10.marks.DATUM.10.value >= Guten Tag

[hour = 21]
                   page.10.marks.DATUM.10.value >= Guten Abend
### Guten Morgen
[hour =< 19]
                    page.10.marks.DATUM.10.value = Guten Tag

[hour =< 21]
                   page.10.marks.DATUM.10.value = Guten Abend
NecroKnight ·

Ich habe es jetzt selbst herausgefunden.
So funktionierts. Der Code im Buch ist falsch!

#### BEDINGUNGEN ###

# Zeitabhängiger Begrüßungstext
[hour => 11]
   page.10.marks.DATUM.10.value = Guten Tag
[hour => 19]
   page.10.marks.DATUM.10.value = Guten Abend
[global]
robert.​meyer ·

Hallo,
ich kann nicht bestätigen, dass der Code im Buch falsch ist. die Variante [hour = > 11] gibt an, dass die Stunde größer ist als 11, also z.B. 12, jedoch nicht gleich ist (11:40 würde somit nicht greifen). [hour = >= 11] gibt an, dass die Stunde größer oder gleich 11 Uhr ist.

Warum dieses bei Ihnen nicht funktioniert hat, kann ich mir leider nicht erklären. Setzen Sie die TYPO3-Version 3.6.0RC1 ein?

hbaes ·

Hallo zusammen,

setze Typo 3.8.0 (final) ein und habe an der Stelle mit den Conditions haargenau das gleiche Problem ..

setzte ich im Object Browser die Condition dann funktioniert es, lasse ich jedoch die Bedingung wirklich an [hour] festmachen, kommt immer der letzte Wert ("Guten Abend"), unabhängig der tatsächlichen Tageszeit ...

hat irgendjemand einen Hinweis woran das liegen könnte ?

mfG
Harald

Proximo ·

?!

#
[hour = >= 11]
#
   page.10.marks.DATUM.10.value = Guten Tag
#
[hour = >= 19]
#
   page.10.marks.DATUM.10.value = Guten Abend
#
[global]

Ist einfach definitif falsch...

"=" bedeutet "ist gleich"
">=" bedeutet "ist gleich oder größer als"

Fehler 1:
Beides zusammen ist eine Total sinnfreie Anweisung... was auch immer er macht, es ist falsch...

#
[hour >= 11]
#
   page.10.marks.DATUM.10.value = Guten Tag
#
[hour >= 19]
#
   page.10.marks.DATUM.10.value = Guten Abend
#
[global]

Ist von der Syntax schon fast richtig aber immernoch fast sinnfrei:

Fehler 2:
">=" bedeutet "ist gleich oder größer als"...

Die gesuchte Zahl ist also "gleich oder größer" wie die gegebene Zahl
Bei 11 Uhr also: 11,12,13,14,15,16,17,18,19,20,21,22,23,24
Bei 19 Uhr also: 19,20,21,22,23,24

#
[hour >= 11]
#
   page.10.marks.DATUM.10.value = Guten Tag
#
[hour >= 19]
#
   page.10.marks.DATUM.10.value = Guten Abend
#
[global]
Pseudocode:
Wenn es eine dieser Urzeiten eintritt: 11,12,13,14,15,16,17,18,19,20,21,22,23,24
Sag "Guten Tag"
---->UND<----
Wenn es gleichzeitig noch eine dieser vollen Stunden eintritt:
19,20,21,22,23,24
Lösche alle vorherigen Texteingaben (muß man nicht hinschreiben geschiet automatisch bei neuer Texteingabe)
Sag "Guten Abend"

Wie man sicher schon erkannt hat funktioniert diese Ausgabe zwischen 11 und 24 tadellos (zumindest mit diesem Code... rein theoretisch), zwischen 1 und 10 Uhr funktioniert dies allerdings garnicht... (falls ich mich hier täusche, was ich vermute, wäre es nett mir zu erklären wie Typo da zurückrechnet... nach 0 uhr...)

FAKT: Theoretisch hätte das funktionieren müssen... allerdings hast du diese Aktion im Haupttemplate gemacht (ja da warne ich immerwieder davor) demnach hast du warscheinlich das simple Problem mit der Zeilenweise-Verarbeitung dieses Abschnittes und Typo zieht dir das Ergebnis falsch nach..

MFG Proximo

hbaes ·

stimmt, sobald ich das ganze in ein extension Template eine Ebene tiefer eintrage, funktioniert es !!

dann jedoch auch mit der ursprünglich im Buch beschriebenen Art
[hour = >= 11]

Proximo ·

Generell interressant aber nicht unmöglich... trotzdem wäre es wichtig zu wissen wie diese Funktion wirklich funktioniert. Rein von der Syntax... bzw der Convention die Typo selber aufgestellt hat... ist dies total falsch^^

MFG Proximo

robert.​meyer ·

Rein von der Syntax... bzw der Convention die Typo selber aufgestellt hat... ist dies total falsch

Nein, ist es nicht. Das erste Gleichheitszeichen ist die Wertzuweisung. Alles, was nach dem Gleichheitszeichen kommt, wird verarbeitet. Für "hour" soll somit der Wert >= 11 genommen werden - quasi ein weiterer Parameter ">=". Konventionstechnisch ist hier alles in Ordnung.

feirio ·

Hallo,

zunächst einmal Glückwunsch an Herrn Meyer für das gelungene Buch "Praxiswissen Typo3".
Allerdings hatte ich bei der Erstellung des zeitabhängigen Begrüßungstexts das gleiche Problem, wie NecroKnight.

Der im Buch angegeben Code funktionierte nicht:

[hour = >= 11]
   page.10.marks.DATUM.10.value = Guten Tag
[hour = >= 19]
   page.10.marks.DATUM.10.value = Guten Abend
[global]

Ich erhielt immer die Ausgabe "Guten Abend".
Nachdem ich schon am Verzweifeln war, probierte ich, ob es mit ">" statt ">=" funktioniert. Und siehe da, es klappte:

[hour = > 10]
   page.10.marks.DATUM.10.value = Guten Tag
[hour = > 18]
   page.10.marks.DATUM.10.value = Guten Abend
[global]

Es würde mich mal interessieren, ob es überhaupt bei jemandem mit ">=" funktioniert. Ich verwende übrigens Typo3 Version 3.8.0.

Gruß
Carsten

KLASSE G - Agentur für klasse Gestaltung

NecroKnight ·

Ja bei mir ist es auch typo3.8

Der Bedingungen müssen auf jedenfall in einem Template sein das auf der Seite liegt wo die Begrüßung angezeigt wird!

Mein Haupt Template liegt im SysOrdner "Template" meine Website hat ein eigenes Extension Template mit den Bedingungen:

#### BEDINGUNGEN ###

# Zeitabhängiger Begrüßungstext
[hour => 11]
                   page.10.marks.BEGRUESSUNG.10.value = Guten Tag
[hour => 19]
                   page.10.marks.BEGRUESSUNG.10.value = Guten Abend
[global]

Um verwirrung vorzubeugen, ich habe das Haupt Template in einem extra SysOrdner da ich verschiedene Domains mit einem Template ansteuere.

Zolu ·

Bei mir ist es ebenfalls so.

Ich bin auch nach dem Buch 'Praxiswissen TYPO3' des Betreibers dieser Seite vorgegangen und habe mit TYPO vers. 3.8.0 dieselben Probleme.

Vielleicht scheint ja doch etwas dran zu sein, dass ein = zu wenig ist, auch wenn es eine Wertzuweisung sein soll.

Vllt. ergibt sich ja doch noch eine Lösung.

Jonas

Harakiri ·

Ich hab das gleiche Problem gehabt, hab auch ganz schön gegrübelt, solche Probleme kenn ich als (eigentlicher) C#-Programmierer nicht.

Habe streng nach Vorschrift (Buch) gearbeitet auf einer Typo3 (3.8.1) Installation auf debian.

Leider scheint es mit "größer-gleich" nicht zu klappen. Hab es jetzt durch einen "größer" Vergleich gelöst:

#### BEDINGUNGEN ###       
# Zeitabhängiger Begrüßungstext
[hour = > 10]
   page.10.marks.DATUM.10.value = Guten Tag
[hour = > 17]
   page.10.marks.DATUM.10.value = Guten Abend
[global]
d.​walter ·

Die meisten haben hier immer

> x

> y geschrieben.

Jetzt mal eine doofe Frage:

Wenn wir von dem deutschen 24 Stunden anzeige ausgehen und nicht der am/pm geschichte der amis und engländer was ist dann in der zeit von 0 bis x-1 wird da dann gar kein text ausgegeben??

Ich verstehs echt nicht. #angry#

Wäre es nicht vielleicht besser einfach zuschreiben

> 17 und < 24 dann Guten abend else Guten Tag

hedgehog61 ·

Hallo zusammen,

nur zur Vollständigkeit und falls noch so ein Anfänger wie ich das suchen sollte:
Auf einem Strato V-Server mit SUSE 9.3 und einer TYPO3.8.1-Installation musste das Ganze so aussehen um zu funktionieren:

2744: # Zeitabhängiger Änderungen
2745: [hour = >11]
2746: page.10.marks.DATUM.10.value = Guten Tag
2747: page.10.marks.LOGO.file.10.file = palatina_noon.tif
2748: [hour = >19]
2749: page.10.marks.DATUM.10.value = Guten Abend
2750: page.10.marks.LOGO.file.10.file = palatina_evening.tif
2751: [global]

Hierbei sei bemerkt, dass zwischen der Bedingung und dem Wert KEIN Leerzeichen stehen durfte.

Bleibt wohl meistens nichts anderes übrig, als hartnäckig zu probieren 🙂

Gruß
Ralf