Archiv für August 2009

UTF-8-Modus in b1gMail 7.2, Plugins

Mittwoch, 12. August 2009

b1gMail 7.2 lässt sich (optional) im UTF-8-Modus betreiben. Wenn b1gMail 7.2 neu installiert wird, wird es automatisch im UTF-8-Modus installiert, falls der Server dies unterstützt. Bei Updates von früheren Version kann man mit dem mitgelieferten UTF-8-Konverter (setup/utf8convert.php) in den UTF-8-Modus wechseln und alles Daten konvertieren.

Plugins können in der Regeln ohne Anpassungen weiter verwendet werden. Es gibt jedoch einige Dinge zu beachten:

  • Plugin-PHP-Dateien und -Templates könnten im UTF-8-Modus geladen werden – dies muss aber nicht der Fall sein, da manche Betreiber Ihre Installationen möglicherweise nicht in den UTF-8-Modus wechseln. Daher sollten die Plugin-PHP-Dateien und -Templates nur aus ASCII-Zeichen bestehen. Umlaute und Sonderzeichen sollten in der Plugin-PHP-Datei und in den zugehörigen Templates durch ihr entsprechendes HTML-Äquivalent ersetzt werden. Also ö statt ö, ä statt ä, ß statt ß, usw. Dies garantiert die Kompatibilität in beiden Modi.
  • In $bm_prefs[‚db_is_utf8‘] ist festgelegt, ob sich die Installation im UTF-8-Modus befindet (1) oder nicht (0).
  • Neue Plugin-Tabellen werden bei aktivem UTF-8-Modus auch in UTF-8-Kollation in der Datenbank angelegt. Bei der Konvertierung bestehende Tabellen werden nach UTF-8 konvertiert.
  • b1gMail stellt einige UTF-8-kompatible Ersatzfunktionen für PHP-Funktionen bereit, die nach Möglichkeit – wo sinnvoll – verwendet werden sollten. Diese findet man serverlib/string.inc.php – z.B. _substr, _strlen, _wordwrap. Diese Funktionen verhalten sich im Nicht-UTF-8-Modus genau wie die eingebauten PHP-Funktionen. Im UTF-8-Modus greifen sie hingegen auf MultiByte-Varianten der Funktionen zurück (mb_strlen oder iconv_strlen, je nach Verfügbarkeit).

Am besten nutzen Plugin-Entwickler die Beta-Phase, um die Kompatibilität Ihrer Plugins einfach mal zu testen (sowohl im Nicht-UTF-8-Modus als auch im UTF-8-Modus) und ggf. bestehende Probleme zu korrigieren. Bei Fragen stehen wir gerne zur Verfügung.