[Tipp] Style automatisch Tageszeitabhängig wechseln

Tipps zur Forensoftware phpBB 3.0.x
Gesperrt
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

[Tipp] Style automatisch Tageszeitabhängig wechseln

Beitrag von Mahony »

Hallo
Mit diesem Snippet, kann man Tageszeit abhängig einen anderen Style für seine User bereit stellen.

Snippet: Style varies depending on time of day

Open common.php
Find Add before

Code: Alles auswählen

if (date("H")>6 && date("H")<18){
    $sql = 'UPDATE ' . USERS_TABLE . '
            SET user_style = 2';
            $db->sql_query($sql);
            
    
        
            
    $sql = 'UPDATE ' . CONFIG_TABLE . '
            SET config_value = 2
    WHERE config_name = "default_style"';
            $db->sql_query($sql);
            
            
    
    $sql = 'UPDATE ' . CONFIG_TABLE . '
             SET config_value = 1
    WHERE config_name = "override_user_style"';
            $db->sql_query($sql);
        
            
            
                    
  } else {
    $sql = 'UPDATE ' . USERS_TABLE . '
            SET user_style = 1';
            $db->sql_query($sql);
            
            
    $sql = 'UPDATE ' . CONFIG_TABLE . '
            SET `config_value` = 1
    WHERE config_name = "default_style"';
            $db->sql_query($sql);
            
    $sql = 'UPDATE ' . CONFIG_TABLE . '
             SET config_value = 1
    WHERE config_name = "override_user_style"';
            $db->sql_query($sql);        
                    
  }
In dem Beispiel hat man von 6 bis 18Uhr den Style 2 und von 18 bis 6Uhr den Style 1

Hier noch einmal die Beschreibung/Bedeutung der einzelnen SQL-Befehle
Mahony hat geschrieben: Schau in der Tabelle phpbb_styles_theme nach, welche ID dein Style hat und verwende folgende Mysql - Befehle zum umstellen des Styles für alle User auf den Standard-Style
Style für alle User umstellen

Code: Alles auswählen

UPDATE `phpbb_users` SET `user_style` = 'x';
x entspricht der theme_id deines Standard-Styles.

Den default_style einstellen.

Code: Alles auswählen

UPDATE `phpbb_config`
SET `config_value` = x
WHERE `config_name` = 'default_style';
x entspricht der theme_id deines Standard-Styles.

Code: Alles auswählen

UPDATE `phpbb_config`
SET `config_value` = 1
WHERE `config_name` = 'override_user_style';
1 bedeutet hier - überschreibe die Einstellungen der User mit dem Wert der in default_style festgelegt wurde (aktiviert also das Überschreiben der Einstellungen deiner User - entspricht also der Einstellung im ACP Benutzer-Style überschreiben: Ja).
Es gibt nun noch eine etwas kürzere Variante (von DerPate - Danke an dieser Stelle)... ebenfalls am Ende der common.php vor ?> einzufügen:

Code: Alles auswählen

$style_day = 2;
$style_night = 1;

if ((date('H') >= 6 && date('H') <= 18) && $config['default_style'] != $style_day)
{
   set_config('default_style', $style_day);
}
elseif ((date('H') < 6 || date('H') > 18) && $config['default_style'] != $style_night)
{
   set_config('default_style', $style_night);
}
Anm: "Benutzer-Style überschreiben" muss bei dieser Variante aktiviert sein. Allerdings spart man die SQL-Abfragen bei jedem Seitenaufruf ein.


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
Gesperrt