JOOM::GALLERY::FORUM

Archiv => Gelöste Themen: Migration => Thema gestartet von: Erftralle am 12-01-2009 19:21:47



Titel: Umlaute in Kategorienamen werden in Verzeichnisnamen nicht ersetzt
Beitrag von: Erftralle am 12-01-2009 19:21:47
Hallo,

bei der Migration auf die JoomGallery tauchte bei mir folgendes Problem auf:

Nachdem ich die korrigierte Version der admin.migratep2j.class.php heruntergeladen habe und eine neue Migration durchführte, überprüfte ich anschließend die angelegte Verzeichnisstruktur für die Bilder, Thumbs und Originalbilder. Die war nun ok  :-) .

Dabei fiel mir aber auf, daß alle Umlaute in den Verzeichnisnamen ersatzlos fehlten. Laut Quellcode sollen eigentlich Umlaute ersetzt werden. Darauf hatte ich bisher nie geachtet und ist auch für die Funktion der JoomGallery nicht weiter wichtig, da der Verzeichnisname auch ohne Umlautersetzungen in der Datenbank landet.

Das liegt wohl daran, denke ich, daß der Quellcode UTF-8 codiert ist.

Ich habe folgende Änderung in der admin.migratep2j.class.php gemacht:

Code:
928   function Joom_Migrate_FixCatname ($text) {
929     $text = trim($text);
930     if($text != "") {
931       $text = strip_tags($text);
932       $search = array("/\s/","/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/","/\xe4/","/\xf6/","/\xfc/","/\xc4/","/\xd6/","/\xdc/","/\xdf/");
933       $replace = array("_","ae","oe","ue","Ae","Oe","Ue","ss", "ae","oe","ue","Ae","Oe","Ue","ss");
934       $text = preg_replace($search, $replace, $text);
935       $text = strtolower ($text);
936       $text= preg_replace("/[^a-z0-9_]/","",$text);
937     }
938     return $text;
939   }

Danach wurden die Umlaute bei mir korrekt ersetzt.

Vielleicht gibt es eine noch elegantere Lösung mit regulären Ausdrücken?

Gruß Erftralle

Meine Umgebung:
JOOMGALLERY_V_1_0_0_BUILD_20081223
Joomla! 1.0.15
Php 5.2.4
Mysql 5.0.40
XAMPP for Linux 1.6.4


Titel: Re: Umlaute in Kategorienamen werden in Verzeichnisnamen nicht ersetzt
Beitrag von: aHa am 10-02-2009 20:21:49
Hallo erftralle,
auch nach fast einem Monat ein wichtiges Thema....

Ich halte den von Dir beschriebenen Weg, nämlich die Überprüfung über den Hexcode, für gut.
Zumindest in der JoomGallery 1.0.0, die sozusagen zwei Codepagefamilien (ISO/Unicode) unter einen Hut bringen muss.
Er sollte deshalb auch Bestandteil von deren Migrationsscript sein.

Mal abgesehen davon, dass fest codierte Zeichen innerhalb einer Funktion nicht hilfreich sind, weil sie immer von der Kodierung der Datei an sich abhängen...
Zudem behandelt diese Funktion nur die Konvertierung von deutschen Sonderzeichen...

Ein wenig Selbstkritik ist nie schlecht...

Gruß
Andreas


Titel: Re: Umlaute in Kategorienamen werden in Verzeichnisnamen nicht ersetzt
Beitrag von: Erftralle am 10-02-2009 23:31:55
Hallo aHa,
aber übertreiben sollte man es auch nicht mit der Selbstkritik  ;-) .

Gruß
Erftralle