Geburtstage werden bei Konvert. nicht korrekt übernommen

phpBB 3.0 hat sein "End of Life" erreicht. Eine Neu-Installation wird nicht mehr unterstützt.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: Geburtstage werden bei Konvert. nicht korrekt übernommen

Beitrag von Helmut »

Hallo Dotwin,

hm ... nicht ganz einfach. Theoretisch lässt sich schon ein Konverter machen der die aktuellen Einträge aus der Tabelle ausliest, dann umwandelt und wieder zurück speichert. Aber da ist ein Haken dabei, wenn schon User ihr Geburtsdatum geändert haben, dann greift der Konverter nicht mehr, da hier ja Tag und Monat wieder zurück verwandelt werden. Man müsste also die Geburtstage nochmal aus der alten Datenbank auslesen und umwandeln.

Alternativ könntest du per Rundschreiben (PN) alle User auffordern, ihr Geburtsdatum zu überprüfen und ggf. neu einzutragen.


@Dr.Death
Ich habe den Fehler gefunden, warum im deutschen Sprachpaket die Tage mit den Monaten bei der Konvertierung vertauscht werden. Das liegt daran, dass im deutschen Datumsformat Tag-Monat_jahr und im englischen/amerikanischen Format Monat-Tag-Jahr kommt. Daher sollte im deutschen Sprachpaket in der install/functions_phpbb20.php folgendes geändert werden:

Finde:

Code: Alles auswählen

        // The birthday mod from niels is using this code to transform to day/month/year
        return sprintf('%2d-%2d-%4d', gmdate('n', $birthday * 86400 + 1), gmdate('j', $birthday * 86400 + 1), gmdate('Y', $birthday * 86400 + 1));
 

und ersetze durch folgendes

Code: Alles auswählen

        // The birthday mod from niels is using this code to transform to day/month/year
        return sprintf('%2d-%2d-%4d', gmdate('j', $birthday * 86400 + 1), gmdate('n', $birthday * 86400 + 1), gmdate('Y', $birthday * 86400 + 1));
 
denn j steht für Tag und n für Monat.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
Dotwin
Mitglied
Beiträge: 40
Registriert: 23.03.2003 12:27
Wohnort: Dortmund

Re: Geburtstage werden bei Konvert. nicht korrekt übernommen

Beitrag von Dotwin »

Hallo Helmut,

vielen Danke für deine Antwort.
Ich glaube es hat noch keiner wirklich bemerkt und geändert.
Kann ich nicht einfach einen Teil aus dem Konverter ausschneiden und dann nur die Geburtstage konvertieren?
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: Geburtstage werden bei Konvert. nicht korrekt übernommen

Beitrag von Helmut »

Hallo Dotwin,

ja theoretisch schon, aber so gut kenne ich mich mit dem Konverter auch nicht aus, der ist schon sehr komplex aufgebaut.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
Dotwin
Mitglied
Beiträge: 40
Registriert: 23.03.2003 12:27
Wohnort: Dortmund

Re: Geburtstage werden bei Konvert. nicht korrekt übernommen

Beitrag von Dotwin »

Könnte ich nicht die Beiträge per sql sichern und dann die konvertierung nochmal machen und dann die beiträge wieder einfügen?
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: Geburtstage werden bei Konvert. nicht korrekt übernommen

Beitrag von Helmut »

Hallo Dotwin,

hm ... vielleicht ja, aber das Problem dabei sind die nach der Konvertierung neu registrierten User, die würden dann ja wieder verloren gehen. Auch müsstest du die Berechtigungen der User neu vergeben, wenn du diese in der Zwischenzeit geändert hast. Dann musst du alle Tabellen für die Posts, Topics, PN's usw. auch wieder von Hand ändern und da wäre mir das Risiko zu groß dass was daneben geht.

Wieviele User hast du denn registriert?

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
bantu
Server-Team
Beiträge: 7311
Registriert: 25.04.2006 16:12
Wohnort: Karlsruhe

Re: Geburtstage werden bei Konvert. nicht korrekt übernommen

Beitrag von bantu »

Hier auch nochmal: Es gab da in der Tat ein Problem mit den Geburtstagen. Das Problem tritt aber erst seit 3.0.4 oder 3.0.3 auf, da bei dem Versuch einen alten Bug zu fixen ein neuer eingebaut wurde: 'j' und 'n' wurden vertauscht, wie Helmut korrekt erkannt hat.

Dieses spezielle Problem sollte hiermit (und wie Helmut es schon beschrieben hat) behoben sein: http://code.phpbb.com/repositories/diff ... ev_to=9325

Edit: Das Problem "Geburtsdaten werden nicht übernommen", das ich in einem meiner vorherigen Posts in diesem Thema beschrieben hatte, tritt bei PHP Version kleiner 5.1.0 auf, wenn das entsprechende Geburtsdatum vor dem 01.01.1970 liegt. Mit der aktuellen PHP-Version (5.2.x) sollten jetzt demnach alle Geburtstage korrekt konvertiert werden.
Powered by Coffee
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: Geburtstage werden bei Konvert. nicht korrekt übernommen

Beitrag von Helmut »

Hallo,

ich möchte noch zu den Ausführungen von bantu hinzufügen, dass ich auch eine Lösung für das 01.01.1970 Problem habe, wenn die php Version älter als 5.1.0 ist. Dazu ist in der functions_phpbb20.php folgender Code zu ändern:

Finde

Code: Alles auswählen

        if (!$birthday || $birthday == 999999 || ((version_compare(PHP_VERSION, '5.1.0') < 0) && $birthday < 0))
        {
            return ' 0- 0-   0';
        }

        // The birthday mod from niels is using this code to transform to day/month/year
        return sprintf('%2d-%2d-%4d', gmdate('n', $birthday * 86400 + 1), gmdate('j', $birthday * 86400 + 1), gmdate('Y', $birthday * 86400 + 1));
 
und ersetze durch folgendes

Code: Alles auswählen

        if (!$birthday || $birthday == 999999)
        {
            return ' 0- 0-   0';
        }
        else
        {
            $birthday2 = gmdate('j-n-Y', $birthday * 86400 + 1);            
            $data['bday_day'] = $data['bday_month'] = $data['bday_year'] = 0;
            list($data['bday_day'], $data['bday_month'], $data['bday_year']) = explode('-', $birthday2);                        
        }
        return sprintf('%2d-%2d-%4d', $data['bday_day'], $data['bday_month'], $data['bday_year']);        
 
Ich habe damit schon mehrere Dutzend Konvertierungen durchgeführt.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Gesperrt

Zurück zu „[3.0.x] Installation, Update und Konvertierung“