Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 19. Mai 2011 08:14

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

[GELÖST] Problem mit smarty.now

Ich möchte zu verschiedenen Uhrzeiten das Gallery Modul verwenden. Funzt soweit hervorragend:

{assign var=thehour value=$smarty.now|date_format:'%H'|replace:'0':''}

{if $thehour >= 5 AND $thehour < 11}
{Gallery dir='vormittags' template='slideshow'}
{/if}
{if $thehour > 10 AND $thehour < 14}
{Gallery dir='mittags' template='slideshow'}
{/if}
{if $thehour > 13 AND $thehour < 19}
{Gallery dir='nachmittags' template='slideshow'}
{/if}
{if $thehour > 18 AND $thehour < 5 AND $thehour == 0 AND $thehour == 23}
{Gallery dir='abends' template='slideshow'}
{/if}

Das Problem liegt aber bei der letzten Galerie (abends). Hier sieht es auch schon reichlich chaotisch aus. Kurzum: Gegen 23.30 wird keine Galerie ausgegeben. Obwohl ich nun schon alles versucht habe um die 23 abzufangen. Ich checks net! Will einfach nur von 19.00 bis morgens um 4.59 die "abends" Galerie ausgeben.

Offline

#2 19. Mai 2011 08:41

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] Problem mit smarty.now

nicmare schrieb:

Gegen 23.30 wird keine Galerie ausgegeben.

Na du hast ja christliche Arbeitszeiten  cool .

Hast du schon etwas in der Art probiert?

{assign var=thehour value=$smarty.now|date_format:'%H'|replace:'0':''}

{if $thehour >= 0 AND $thehour < 5}
  {Gallery dir='abends' template='slideshow'}
{elseif $thehour >= 5 AND $thehour < 11}
  {Gallery dir='vormittags' template='slideshow'}
{elseif $thehour >= 11 AND $thehour < 14}
  {Gallery dir='mittags' template='slideshow'}
{elseif $thehour >= 14 AND $thehour < 19}
  {Gallery dir='nachmittags' template='slideshow'}
{elseif $thehour >= 19 AND $thehour <= 24}
  {Gallery dir='abends' template='slideshow'}
{/if}

Offline

#3 19. Mai 2011 08:46

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] Problem mit smarty.now

Noch kürzer wäre es so

{assign var=thehour value=$smarty.now|date_format:'%H'|replace:'0':''}

{if $thehour >= 5 AND $thehour < 11}
  {Gallery dir='vormittags' template='slideshow'}
{elseif $thehour >= 11 AND $thehour < 14}
  {Gallery dir='mittags' template='slideshow'}
{elseif $thehour >= 14 AND $thehour < 19}
  {Gallery dir='nachmittags' template='slideshow'}
{else}
  {Gallery dir='abends' template='slideshow'}
{/if}

Offline

#4 19. Mai 2011 08:47

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [GELÖST] Problem mit smarty.now

stimmt, durch das else geht mir auch keine uhrzeit flöten  monkey
werds mal testen. danke

Offline

#5 19. Mai 2011 10:46

owr_web
Server-Pate
Registriert: 16. Dezember 2010
Beiträge: 543

Re: [GELÖST] Problem mit smarty.now

Ich geh jetzt mal davon aus, dass cybermans Tipp die Lösung ist. Also der Beitrag nur mehr zu (meinem) besseren Verständnisses des ganzen:

wird da nicht aus 10 Uhr 1 Uhr? Oder habe ich einen Denkfehler?
Außerdem fällt ja dann 0 Uhr raus.
Müsste das nicht auch gehen wenn (z.B. die Uhrzeit 06 Uhr ist, dass er dann erkennt, 06 > 5 ist richtig?

Gibts eine Variante, dass nur das erste Zeichen ersetzt werden darf? Ansonsten eventuell in dieser Form lösbar?:

{assign var=thehour value=$smarty.now|date_format:'%H'}
{if thehour <10}{assign var=thehour value=$thehour|replace:'0':''}{/if}

boah da merk ich wieder, dass ich eigentlich nur Anfänger bin im smarty. Ist es überhaupt möglich die gleiche Variable zu vergeben im assign und die bis jetzt bestehende als neue zu definieren? Ansonsten müsste das eventuell so geregelt werden:

{assign var=thehour1 value=$smarty.now|date_format:'%H'}
{if thehour <10}{assign var=thehour value=$thehour1|replace:'0':''}
{else}{assign var=thehour value=$thehour1}{/if}
{if $thehour > 18 AND $thehour < 5 AND $thehour == 0 AND $thehour == 23}

Hier hattest du glaub ich den großen Denkfehler - konnte ja nicht funktionieren, denn die Uhrzeit müsste ja größer 18 und kleiner 5 und 0 und 23 Uhr sein.
Aber (durch Cybermans Beispiel ja nicht notwendig) so müsste es ja eigentlich funktionieren:

{if $thehour > 18 OR $thehour < 5}

bzw. weil ja die 0 rausfällt könnte man das noch ergänzen:

{if $thehour > 18 OR $thehour < 5 OR $thehour == ''}

Offline

#6 19. Mai 2011 10:53

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [GELÖST] Problem mit smarty.now

nein, du hast völlig recht. das ist mir dann auch aufgefallen dass ja aus 10 ne 1 wird. das ist dumm.
aber ich bin mir eben auch nicht sicher ob das mit 06 etc korrekt funktioniert. werde mal den replace modifier einfach rausnehmen

Offline

#7 19. Mai 2011 11:46

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] Problem mit smarty.now

Möglicherweise müsstest du dann aber auch die Abfragen anpassen

http://www.smarty.net/docsv2/de/languag … format.tpl

%H - Stunde als Zahl im 24-Stunden-Format (Bereich 00 bis 23)

also

[== Smarty ==]
{if $thehour > '18' OR $thehour < '05'}

Offline

#8 19. Mai 2011 11:46

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [GELÖST] Problem mit smarty.now

ja das ist klar. die eine zahl habe ich angepasst.

Offline