Style automatisch Tageszeitabhängig wechseln

In diesem moderierten Forum werden Code-Schnipsel, die zu klein sind, um richtige Mods zu sein, abgelegt.
Snippets können über unser Kontaktformular eingereicht werden (bitte als vollständiger, Copy&Paste fähiger Beitrag).
Bei Fragen oder Problemen benutze bitte das Forum [3.0.x] Mod Support.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

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.

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
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Antworten

Zurück zu „[3.0.x] Snippets“