Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#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.
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
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
Gegen 23.30 wird keine Galerie ausgegeben.
Na du hast ja christliche Arbeitszeiten .
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
werds mal testen. danke
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
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:
replace:'0':''
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
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
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.
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
Seiten: 1