Seite 1 von 1

Style automatisch Tageszeitabhängig wechseln

Verfasst: 09.07.2009 21:11
von Mahony
Hallo
Mit diesem Snippet, kann man Tageszeit abhängig einen anderen Style für seine User bereit stellen.

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