Style automatisch Tageszeitabhängig wechseln

phpBB 3.0.x Support und Diskussions Forum.
Antworten
Scorpion
Beiträge: 4
Registriert: 12. Aug 2012 14:20
Hat sich bedankt: 0
Danksagung erhalten: 0

Style automatisch Tageszeitabhängig wechseln

Beitrag von Scorpion »

Deine phpBB Version: 2.0.
Typ Deines phpBB Forums: Standard phpBB (auch Vanilla (phpbb2) oder Olympus (phpBB3) genannt)
MODs installiert: Ja
Dein Wissensstand: Einsteiger
Link zu Deinem Forum: http://slowmenclub.com

Was hast Du gemacht, bevor das Problem aufgetreten ist?


Was hast Du bereits versucht um das Problem zu lösen?


Fehlerbeschreibung und Nachricht
Hallo zusammen,

ich wollte in meinem Forum gerne den Style wie hier beschrieben: Style automatisch Tageszeitabhängig wechseln gerne Tageszeitabhängig wechseln lassen.

Mit dem im Beispiel angegebenen 2 Zeiten funktioniert es auch wunderbar, nur wollte ich aus den 2 Zeiten 5 verschiedene Zeiten machen, aber da scheitere ich momentan gnadenlos dran.

Der Code sieht momentan so aus:

Code: Alles auswählen

$style_morgen = 4;
$style_tag = 1;
$style_mittag = 5;
$style_abend = 6;
$style_nacht = 3;

if ((date('H') >= 07 && date('H') <= 10) && $config['default_style'] != $style_morgen)
{
   set_config('default_style', $style_morgen);
}
elseif ((date('H') >= 10 && date('H') <= 14) && $config['default_style'] != $style_tag)
{
   set_config('default_style', $style_tag);
}
elseif ((date('H') >= 14 && date('H') <= 18) && $config['default_style'] != $style_mittag)
{
   set_config('default_style', $style_mittag);
}
elseif ((date('H') >= 18 && date('H') <= 23) && $config['default_style'] != $style_abend)
{
   set_config('default_style', $style_abend);
}
elseif ((date('H') >= 23 && date('H') <= 7) && $config['default_style'] != $style_nacht)
{
   set_config('default_style', $style_nacht);
}
Jedesmal wenn ich die Seite aktualisiere springt der Style zwischen Tag und dem eigentlich Aktiven Style hin und her.
Da meine PHP Kenntnisse nun auch nicht gerade toll sind find ich den Fehler nicht, aber vielleicht könnt Ihr mir helfen.

Danke und Gruß Micha[/i]
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

Re: Style automatisch Tageszeitabhängig wechseln

Beitrag von Mahony »

Hallo
Also zunächst mal ist folgendes dazu zu sagen:
Deine letzte Abfrage ist unnötig (zumindest die Zeitangaben - >= 23 und <= 7 wird nie erfüllt sein), denn wenn nichts anderes zutrifft bleibt ja nur noch der letzte Style (die letzte Zeitspanne) übrig.
Du solltest dann einfach

Code: Alles auswählen

else
        {
          set_config('default_style', $style_nacht);
        }
verwenden.




Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Scorpion
Beiträge: 4
Registriert: 12. Aug 2012 14:20
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Style automatisch Tageszeitabhängig wechseln

Beitrag von Scorpion »

Danke für Deine Antwort Mahony,

ich hab die Änderung übernommen.
Aber nach dem 3. oder 4. Seitenaufruf, springt das Template wieder?

Ich benutze das Board3 Portal, aber damit kann das doch nicht zusammen hängen oder?

Gruß Micha
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

Re: Style automatisch Tageszeitabhängig wechseln

Beitrag von Mahony »

Hallo
Hast du es mal mit !== anstelle von != versucht?

Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Scorpion
Beiträge: 4
Registriert: 12. Aug 2012 14:20
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Style automatisch Tageszeitabhängig wechseln

Beitrag von Scorpion »

Hallo,

hab es gerade ausprobiert und es scheint alles soweit zu funktionieren.

Kannst Du mir bitte noch ne kurze Erklärung zu dem zusätzlichen = geben?

Das einzigste was jetzt noch ist, ich hab ne Differenz in der Zeit von 1h?! 8O
Von Abend auf Nacht schaltet es um 00:00Uhr erst um.
Aber naja, das ist ja schnell korrigiert.

Danke und Gruß Micha
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

Re: Style automatisch Tageszeitabhängig wechseln

Beitrag von Mahony »

Hallo
Scorpion hat geschrieben:Kannst Du mir bitte noch ne kurze Erklärung zu dem zusätzlichen = geben?
!= bedeutet - Ungleich Gibt TRUE (Wahr) zurück, wenn $a nicht gleich $b ist.

!== bedeutet - Nicht identisch Gibt TRUE (Wahr) zurück, wenn $a nicht gleich $b ist, oder wenn beide nicht vom gleichen Typ sind (eingeführt in PHP 4).

Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Scorpion
Beiträge: 4
Registriert: 12. Aug 2012 14:20
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Style automatisch Tageszeitabhängig wechseln

Beitrag von Scorpion »

Hallo,

Danke für die Erklärung Mahony!

Nach dem ich jetzt die Zeiten durch die Verschiebung angepasst habe, musste ich den Code noch einmal ändern.

Der funktionierende Code sieht jetzt so aus:

Code: Alles auswählen

$style_morgen = 4;
$style_tag = 1;
$style_mittag = 5;
$style_abend = 6;
$style_nacht = 3;

if ((date('G') >= 6 && date('G') <= 9) && $config['default_style'] !== $style_morgen)
{
   set_config('default_style', $style_morgen);
}
elseif ((date('G') >= 9 && date('G') <= 13) && $config['default_style'] !== $style_tag)
{
   set_config('default_style', $style_tag);
}
elseif ((date('G') >= 13 && date('G') <= 17) && $config['default_style'] !== $style_mittag)
{
   set_config('default_style', $style_mittag);
}
elseif ((date('G') >= 17 && date('G') <= 22) && $config['default_style'] !== $style_abend)
{
   set_config('default_style', $style_abend);
}
else
{
   set_config('default_style', $style_nacht);
}
Das date('H') hab ich durch date('G') ersetzt, weil der Style mit date('H') wieder nicht gewechselt hat.

Gruß Micha
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

Re: Style automatisch Tageszeitabhängig wechseln

Beitrag von Mahony »

Hallo
Ja, das geht natürlich auch
date('G') verwendet man für die Ausgabe/Abfrage von "Stunde im 24-Stunden-Format, ohne führende Nullen"

date('H') verwendet man für die /Abfrage von "Stunde im 24-Stunden-Format, mit führenden Nullen"

siehe dazu auch http://php.net/manual/de/function.date.php

Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
RachelHowells
Beiträge: 3
Registriert: 30. Mai 2022 04:51
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Style automatisch Tageszeitabhängig wechseln

Beitrag von RachelHowells »

Das einzigste was jetzt noch ist, ich hab ne Differenz in der Zeit von 1h?! 8O
Von Abend auf Nacht schaltet es um 00:00Uhr erst um.
Antworten