Style automatisch Tageszeitabhängig wechseln

phpBB 3.0.x Support und Diskussions Forum.
Benutzeravatar
Scorpion
Beiträge: 4
Registriert: 12. Aug 2012 14:20

Style automatisch Tageszeitabhängig wechseln

Beitragvon Scorpion » 12. Aug 2012 14:38

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

Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 743
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Style automatisch Tageszeitabhängig wechseln

Beitragvon Mahony » 12. Aug 2012 17:13

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

Benutzeravatar
Scorpion
Beiträge: 4
Registriert: 12. Aug 2012 14:20

Re: Style automatisch Tageszeitabhängig wechseln

Beitragvon Scorpion » 12. Aug 2012 21:53

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: 743
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Style automatisch Tageszeitabhängig wechseln

Beitragvon Mahony » 12. Aug 2012 22:05

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

Benutzeravatar
Scorpion
Beiträge: 4
Registriert: 12. Aug 2012 14:20

Re: Style automatisch Tageszeitabhängig wechseln

Beitragvon Scorpion » 13. Aug 2012 00:04

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: 743
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Style automatisch Tageszeitabhängig wechseln

Beitragvon Mahony » 13. Aug 2012 00:13

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

Benutzeravatar
Scorpion
Beiträge: 4
Registriert: 12. Aug 2012 14:20

Re: Style automatisch Tageszeitabhängig wechseln

Beitragvon Scorpion » 14. Aug 2012 15:05

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: 743
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Style automatisch Tageszeitabhängig wechseln

Beitragvon Mahony » 14. Aug 2012 17:31

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


Zurück zu „phpBB 3.0.x Support und Diskussion“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast