[MODDB] Automatische Sommerzeit

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
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.
Benutzeravatar
Würzi
Ehemaliges Teammitglied
Beiträge: 3187
Registriert: 30.10.2005 02:51
Wohnort: Niedernberg
Kontaktdaten:

Beitrag von Würzi »

Nur keinen Stress :D

Danke!!
kloppo
Mitglied
Beiträge: 8
Registriert: 08.02.2008 11:58

Beitrag von kloppo »

Hallo zusammen, Hallo MartectX

die letzten Tage habe ich mir einige Gedanken über die DST-Geschichte gemacht und bin ehrlich gesagt mit der bisherigen und den obigen Patches nicht zufrieden. Es ist zwar alles irgendwie funktional, aber im Hinblick auf die verhältnismäßig hohe Zahl an Modifikationen (auch in Hinblick auf zukünftige phpBB-Updates und andere Mods) erscheint mir das alles sehr suboptimal.

Um das komplett zu vermeiden ist mein Ansatz folgender (basierend auf phpBB3.0.2 ohne obige DST-Modifikationen):

NEUE Datenbank-Felder:

users-table:

- "automatic_dst" (bool)
(für das UCP, um neben den manuellen DST-settingd ein Häckchen auf "Automatisch" setzen zu können, Wert 1 bei Ja)

config-table:

- "auto_dst_board"
(ACP wählbar für das board wie bei UCP)
- "auto_dst_current"
(für Abgleich von date('I')-Änderungen)


Script-Logik:
Bei jedem Aufruf von index.php überprüfung des DST-Status (entweder direkt im Code oder per Function-Aufruf):

Code: Alles auswählen

if ($config['auto_dst_current'] != date('I'))
{
     SQL: update user.table set user_dst = date('I') where automatic_dst = 1;

     if ($config['auto_dst_board'])
     {
              SQL:  update config(board_dst) set date('I')
     }

     SQL: update config(auto_dst_current) set date('I')
}
Das ist alles (Core code, noch UCP_Settings mit date('I)-check nach Auswahl von Automatisch, und im grunde das gleiche im ACP_Board, zwei Templateänderungen, fertig)

Sorry, ich habe das noch nicht in realer Codeform zusammengepfriemelt, aber das sollte so verständlich sein. Der Vorteil: Minimaler Codeänderungen, keine Anpassungen anderer Mods, keine gravierenden Probleme bei phpbb-updates, auch auf internationalen boards flexibel einsetzbar. und zweimal im Jahr ne überschaubare user-DB-Query und config-sets zeitnah sobald ein Gast, Bot, oder User um 3:00+ Uhr das Board besucht.

Was haltet ihr davon?


Cheers,
kloppo / updown
Benutzeravatar
MartectX
Ehemaliger Übersetzer
Beiträge: 648
Registriert: 10.05.2008 17:08
Wohnort: Marienplatz

Beitrag von MartectX »

Klar kloppo, so geht's auch; am Besten machst Du die Abfrage in der Funktion page_header in functions.php. Alles was dann noch fehlt ist die Abstimmung jedes Datums auf die entsprechende DST-Zeit (in der sessions.php) - falls das von Dir gewollt ist.

Ich habe versucht, die Datenbankänderungen zu minimieren (leider musste ich eben nun doch die eine kleine Änderung durchführen :-?); das ist jedoch lediglich meine persönliche Priorität.
kloppo
Mitglied
Beiträge: 8
Registriert: 08.02.2008 11:58

Beitrag von kloppo »

MartectX hat geschrieben:Klar kloppo, so geht's auch; am Besten machst Du die Abfrage in der Funktion page_header in functions.php. Alles was dann noch fehlt ist die Abstimmung jedes Datums auf die entsprechende DST-Zeit (in der sessions.php) - falls das von Dir gewollt ist.
Danke! Wozu ist die eigentlich genau gut, bzw. worin liegt der praktische Unterschied zur standard phpbb-Handhabung?
Benutzeravatar
MartectX
Ehemaliger Übersetzer
Beiträge: 648
Registriert: 10.05.2008 17:08
Wohnort: Marienplatz

Beitrag von MartectX »

kloppo hat geschrieben:
MartectX hat geschrieben:Klar kloppo, so geht's auch; am Besten machst Du die Abfrage in der Funktion page_header in functions.php. Alles was dann noch fehlt ist die Abstimmung jedes Datums auf die entsprechende DST-Zeit (in der sessions.php) - falls das von Dir gewollt ist.
Danke! Wozu ist die eigentlich genau gut, bzw. worin liegt der praktische Unterschied zur standard phpbb-Handhabung?
Die datumsbezogene Abstimmung? Hab' ich mir einfallen lassen, weil ich in der Hinsicht Perfektionist bin: Statt, wie phpBB3 es standardmäßig macht, auf alle Daten die Sommerzeit draufzurechnen (sofern sie aktiviert ist), prüfe ich für jedes Datum, ob es denn überhaupt in die Sommerzeit fällt. So kann es passieren, dass die angezeigte Zeit eines Folgebeitrags vor den vorgehenden Beitrag fällt (und zwar in der Stunde der Uhrrückstellung, wie wir es vor einer Woche erfuhren - dies entspricht somit auch der Realität).
kloppo
Mitglied
Beiträge: 8
Registriert: 08.02.2008 11:58

Beitrag von kloppo »

Ah, Danke, jetzt kapier ich auch diesen Code-Teil - eigentlich eine kleine eigenständige Modifikation für sich :lol:
Benutzeravatar
MartectX
Ehemaliger Übersetzer
Beiträge: 648
Registriert: 10.05.2008 17:08
Wohnort: Marienplatz

Beitrag von MartectX »

kloppo hat geschrieben:Ah, Danke, jetzt kapier ich auch diesen Code-Teil - eigentlich eine kleine eigenständige Modifikation für sich :lol:
Ich schreibe meine Mods in erster Linie für mich selbst; ich veröffentliche auch nicht jede Codeänderung, da einige Hacks zu klein sind oder "dreckig" programmiert und ich mich nicht mit Validierung dafür auseinandersetzen will. Deswegen habe ich auch überhaupt kein Problem, wenn Du eine eigene Auto-Sommerzeit-Modifikation erstellst! Lass' Dir nur einen anderen Namen einfallen, wenn's geht... :D
Benutzeravatar
HEADLINE
Mitglied
Beiträge: 415
Registriert: 09.09.2007 17:23
Wohnort: Zweibrücken
Kontaktdaten:

Beitrag von HEADLINE »

MartectX hat geschrieben: Morgen Vormittag, nach dem heutigen Mitternachts-Härtetest. 8)
Test bei mir negativ! :(

Da bin ich mal wieder und fast am verzweifeln! :-?
Und zwar passt in meinem Testforum (Lokal) jetzt alles, dann hab ich alle relevanten Dateien in mein Liveforum kopiert.....SQL-Befehl ausgeführt......Cache geleert...... aber die Geburtstagsanzeige funktioniert nicht......1Std. verschoben. Der Rest ist alles da....und funktioniert....also der "Wer war da Mod"....die Anzeigen im UCP und ACP....
kloppo
Mitglied
Beiträge: 8
Registriert: 08.02.2008 11:58

Beitrag von kloppo »

MartectX hat geschrieben:Ich schreibe meine Mods in erster Linie für mich selbst; ich veröffentliche auch nicht jede Codeänderung, da einige Hacks zu klein sind oder "dreckig" programmiert und ich mich nicht mit Validierung dafür auseinandersetzen will. Deswegen habe ich auch überhaupt kein Problem, wenn Du eine eigene Auto-Sommerzeit-Modifikation erstellst! Lass' Dir nur einen anderen Namen einfallen, wenn's geht... :D
Klar 8), Du das mit den Eigenhacks geht mir auch so. Dazu kommt, dass ich kein Programmierer bin, sondern ich meine eigentliche Stärken in Optimierungen und in konzeptionellen System-Abläufen sehe.

Die eigentliche Intention meines Beitrags ist es, auf die grundlegend-systematischen Probleme des bestehenden DST-Mods hinzuweisen, und als Anregung: eben anstatt die user-dst direkt zu erweitern und das Code-Handling dieser neuen Einstellungen ansschließed rundherum anzupassen, das bestehende Kern-System so zu belassen wie es ist und lediglich den bisher manuellen Änderungsprozess zu automatisieren - man erspart sich damit enorm viel Ärger und Aufwand, auch und vor allem in Verbindung mit zahlreichen anderen MODs und deren Updates!
Zuletzt geändert von kloppo am 30.10.2008 00:44, insgesamt 1-mal geändert.
Benutzeravatar
redbull254
Ehemaliges Teammitglied
Beiträge: 10379
Registriert: 05.01.2006 13:01
Kontaktdaten:

Beitrag von redbull254 »

@HEADLINE

kann ja jetzt ein vollkommen bekloppter Gedanke sein, dann bitte ich dies der späten Zeit zuzurechnen. :D

Was ist denn, wenn der Server noch nicht auf Winterzeit umgestellt ist?


Oder stimmt die Zeit ? Mal darauf geachtet?
Beste Grüße
Walter
Gesperrt

Zurück zu „[3.0.x] Mods in Entwicklung“