core
core copied to clipboard
Auswahl einer Timezone pro Seitenbaum
Es wäre hilfreich, wenn pro Seitenbaum eine Timezone ausgewählt werden kann (ähnlich der Globalen Einstellung) um in länderspezifischen Seiten besser arbeiten zu können.
Beispiel: Die Von-Bis-Anzeige eines Elementes könnte so länderübergreifend verwendet werden.
Nach meinem Wissen bezieht sich die Timezone-Einstellung auf die Einstellung deines Servers und sollte damit übereinstimmen. Kann also nicht pro Root-Seite anders sein.
Genau - so wie ich es sehe, stelle ich in den Globalen Einstellungen ein, welches Zeitzone auf dem Server läuft.
Mein Anliegen bezieht sich auf folgendes: In einem Land mit einer anderen Zeitzone als die des Servers, muss ein Redakteur rumrechnen wenn er den Veröffentlichungs-Zeitraum eines Elementes einstellt. Wenn er ein Datum für den Start auswählt, bezieht sich der Zeitpunkt nicht auf seine Ortszeit sondern auf die des Servers.
Ideal wäre es deshalb, wenn ich einem Land eine Zeitzone zuordnen kann und dann für die Veröffentlichung die Zeiten umgerechnet würden.
Und inwiefern würde es da helfen, wenn im Seitenbaum ein andere Zeitzone eingestellt wäre? Wenn müsste das ja dann jeder Benutzer in seinem Profil anpassen.
Es ist ja nicht an den Redakteur gebunden, sondern an das jeweilige Land. Nochmal ein Beispiel, um es zu verdeutlichen: Ich betreibe eine Website für Deutschland und die USA, in der ich Veranstaltungen mit Startzeit anlege. Es gibt einen Seitenbaum für Deutschland und einen für die USA. In Deutschland lege ich eine Veranstaltung am 24.12.2013 um 17 Uhr an und in den USA soll sie ebenfalls am 24.12.2013 um 17 Uhr beginnen, aber natürlich amerikanischer Zeit (Ostküste ;-) ) ... jetzt kann ich ein bisschen rätselraten spielen um die richtige Zeit rauszubekommen. Hier würde wahrscheinlich nicht zwingend die Einstellung über den Seitenbaum helfen, sondern eher direkt die Zeitzoneneinstellung im Event, wo ich die Zeit auswähle. Aber für verschiedene andere Sachen, wie z.B. Kommentare oder News wäre es vielleicht wichtig.
Die Lösung wäre die Zeitzone des Servers in den Systemeinstellungen, Zeitzone pro Benutzer und pro Root-Seite. Dann sollte alles möglich sein. Halte ich durchaus für sinnvoll!
Allerdings auch gefährlich, denn (im Gegensatz zum Uhrzeitformat) ist es nicht so, dass die Einstellungen in der Root-Seite die der Systemeinstellungen überschreiben. Sondern die Systemeinstellung entsprechen der Serverzeit, und die Root-Seite würde dann definieren dass die Eingaben im Backend in einem anderen Zeitformat ausgegeben werden sollen. Halte ich für sehr gefährlich.
Beispiel: Der Redakteur gibt im Backend ein, dass die News um 12 Uhr veröffentlicht werden soll. Die Root-Seite hat aber eine Verschiebung um 2h, womit die News effektiv ab 2 Uhr morgens erscheint. Ist natürlich ein mächtiges Feature, aber ob das dann nicht eher für Verwirrung sorgt?
Siehe dazu auch contao/contao#5380.
Nur mal ein paar überlegungen hierzu: Wir speichern nur Unix TS in der DB, sodass die Zeitzonen Infos komplett zur Laufzeit eingerechnet werden.
- Welche TZ sollte ein registrierter Benutzer (mit TZ Einstellung GMT+1) in Event X (Startzeit 12:00 GMT) auf Seite A (TZ GMT-1) sehen?
- In welcher TZ sollte das Datum im BE für Event X gepflegt werden: GMT, oder TZ der globalen contao einstellung, oder der TZ des registrierten BE-User, oder optimal die TZ wird pro Event mit abgefragt (evtl. mit Default TZ option im zugehörigen Kalender) und in einer eigenen Spalte gespeichert (die speicherung im startDate feld bleibt unix TS, was immer GMT ist)
außerdem wäre es für die sortierung von vorteil wenn man ein "zeitzonenspezifischen zeitstempel" in einer eigenen spalte speichert. Im prinzip rechnet man den offset der TZ zum unix TS hinzu, ist zwar jetzt nicht standardisiert irgendwo, aber funktioniert einfach.
Im Sinne der Rückwärtskompatibilität müssten wir das Backend weiterhin in der Zeitzone laufen lassen, die in der php.ini
bzw. in der localconfig.php
eingestellt ist. Die Ausgabe im Frontend könnte man entsprechend umrechnen, wenn entweder beim Startpunkt oder beim Benutzer eine entsprechende Information hinterlegt ist.
Allerdings finde ich das immer noch keine tolle Lösung, denn allein in den USA gibt es neun Zeitzonen und alle Besucher würden auf denselben englischen Startpunkt geleitet. (Besucher aus England, Irland und Schottland übrigens auch.) Welche Zeitzone legt man dann da als Standard fest?
Es gibt aber noch das Problem, dass man die Zeitzone nicht an den Benutzer im BE binden kann. Wenn ein deutscher Redakteur Events für die USA pflegt, dann müsste dieser bei jedem Login seine Zeitzone anpassen, je nachdem was er gerade pflegen möchte. Oder er hat mehrere Benutzeraccounts. Ich denke das ist beides nicht sinnvoll. Ist es nicht möglich, bei allen Sachen, die ich BE im Zusammenhang mit der Zeit pflege, die Option der Zeitzone hinzuzufügen?
Beispiel: ich pflege ein Event und gebe Datum und Zeit an und muss zusätzlich noch die Zeitzone wählen. Standardanzeige wäre die eingestellte Zeitzone in den Einstellungen. Bei der Ausgabe könnte man die ausgewählte Zeitzone als Option mit ausgeben lassen. Beispiel Hawai: Veranstaltung am 23.09.2014, 10 Uhr (HST) oder (UTC-10:00). So lange wie ich die Zeitzone nicht ändere, wird nix ausgegeben.
Wäre jetzt mal nur eine Idee! ;-)
Soweit mir bekannt bezieht sich die Zeitzone auf die Einstellung des Servers...=
Deswegen habe ich ja gesagt, dass das Backend weiterhin in der Server-Zeitzone laufen muss. Nur die FE-Benutzer hätten dann eine umgerechnete Zeitzone.
Soweit mir bekannt bezieht sich die Zeitzone auf die Einstellung des Servers...=
ja ... natürlich, aber mir ist es ja als Redakteur im BE erstmal völlig egal beim Pflegen eine Events, in welcher Zeitzone der Server und das System läuft
Deswegen habe ich ja gesagt, dass das Backend weiterhin in der Server-Zeitzone laufen muss. Nur die FE-Benutzer hätten dann eine umgerechnete Zeitzone.
richtig ... die Zeitzone des Servers ist nur die Grundlage ... aber ich benötige ja theoretisch gar keine Zeitanpassung/-umrechung im FE, denn ich gebe ja die absolute Zeit in Verbindung mit der Zeitzone an
Also ich wäre ja mal für eine Mumble-Diskussion, da es in meinen Augen ein durchaus sinnvolles Feature wäre. ;-)
denn ich gebe ja die absolute Zeit in Verbindung mit der Zeitzone an
Nein, Du verstehst das falsch. In der Datenbank wird das Event in der Zeitzone des Servers gespeichert, alles andere wäre nicht rückwärtskompatibel. Die Benutzer (BE und FE) können jeweils eigene Zeitzonen definieren und sehen die Termine dann entsprechend umgerechnet.
Nein, Du verstehst das falsch. In der Datenbank wird das Event in der Zeitzone des Servers gespeichert, alles andere wäre nicht rückwärtskompatibel.
hmmmm ... naja ... weiß ich nicht ... es ist mir schon klar, dass das Event in der DB in der Zeitzone des Servers gespeichert wird, aber wenn ich im BE mein Event mit Zeitzone speichere, dann kann es doch umgerechnet in der DB gespeichert werden und wieder umgerechnet ausgegeben werden, in Verbindung mit der eingegebenen Zeitzone habe ich alle Umrechnungswerte
Die Benutzer (BE und FE) können jeweils eigene Zeitzonen definieren und sehen die Termine dann entsprechend umgerechnet.
da stehe ich dann wieder bei dem Problem was ich um 9:51 Uhr beschrieben habe mit den verschiedenen Accounts
Ja, vermutlich hast Du Recht. Ich sehe aber auch keine echte Lösung für dieses Problem. Siehe dazu auch meinen Kommentar oben:
Allerdings finde ich das immer noch keine tolle Lösung, denn allein in den USA gibt es neun Zeitzonen und alle Besucher würden auf denselben englischen Startpunkt geleitet. (Besucher aus England, Irland und Schottland übrigens auch.) Welche Zeitzone legt man dann da als Standard fest?
deshalb immer noch der Ansatz, dass die Zeitzone nicht an den FE- oder BE-Benutzer gebunden ist, sondern lediglich an die jeweiligen Datumsangaben ... siehst du da gar keinen Ansatz drin?
Nein, denn wie gesagt, alleine in den USA gibt es schon 9 Zeitzonen. Wie sollen Termine dort angezeigt werden, wenn wir nicht wissen, in welcher Zeitzone der Besucher lebt?