@thorn
Es ist ausreichend, die geänderten Dateien inklusive Ordnerangaben als ZIP zu speichern.
Spart Platz und mann überschreibt nur die Dateien, die wirklich geändert wurden. Weiterhin sehen auch andere sofort, welche Daten denn nun eigentlich geändert sind. Mit einem XDIFF ist es dann leich möglich, die geänderten Passagen hervorzuheben.
Ja, sinnig; war wohl schon ein wenig spät.

Hier also der aktuelle Stand.
Bitte Datenbank zum testen neu anlegen!Bei bestehenden Datenbanken müßte (oder sollte, sonst gibt es Einschränkungen) der default Charset und Collation umgestellt werden.
Kurz die Änderungen beschrieben:
- Die neue such-funktion mit highligting ist hier schon enthalten (mit bugfix)
- Aufrufe von htmlentities() entfernt in:
wb/admin/pages/index.php
wb/admin/pages/modify.php
wb/admin/pages/sections.php
wb/admin/pages/settings.php
wb/admin/pages/settings2.php
wb/admin/pages/trash.php
wb/framework/class.frontend.php
wb/framework/frontend.functions.php
- wb/search/search.php: bugfix - Suche in UTF-8 funktionierte nicht richtig
-
wb/framework/functions.php: my_htmlspecialchars(), get_wbcharset(), entities_to_umlauts(), umlauts_to_entities(), entities_to7bit() hinzu.
[die meisten dieser Funktionen werden nur benötigt, um die Probleme, die durch die Möglichkeit der Verwendung verschiedener charsets entstehen, zu umgehen. In einer reinen UTF-8-Installation können sie wieder raus.]
- wb/framework/functions.php: page_filename() und media_filename() geändert.
- wb/framework/convert.php: nur noch für 'kosmetische' Zwecke, die Hauptaufgabe der Bestimmung von page_filename übernimmt nun entities_to7bit().
- wb/admin/add.php: Aufruf von my_htmlspecialchars() hinzu; Änderung an page_filename-Bestimmung
- wb/admin/settings2.php: Aufruf von my_htmlspecialchars() hinzu; Änderung an page_filename-Bestimmung
-
wb/framework/class.database.php: Festlegung des "Verbindungs-Charsets"; zur Zeit noch hard-coded, muß noch überarbeitet werden.
-
wb/install/save.php: Anlegen der Datenbank mit default charset und collation 'utf8'; diese Eigenschaft wird auf alle Tabellen vererbt (d.h., daß man die Module nicht anpassen muß - puhh)
Der Hauptunterschied zum Lösungsansatz aus dem Thread "WebsiteBaker und Chinesisch" ist, daß hier menu_title und page_title keine entities enthalten, sondern nativ im verwendeten DEFAULT_CHARSET vorliegen.
Der Knackpunkt an dieser Lösung ist, daß man nur noch Zeichen verwenden kann, die zum DEFAULT-CHARSET gehören.
Zum testen dieser Variante bitte die Hinweise in den obigen Posts beachten.
Edit:
Ich habe mir nochmal Gedanken dazu gemacht, inwieweit die Forderung komplett auf UTF-8 umzustellen überhaupt notwendig ist. Und ich meine inzwischen, daß das ziemlich egal ist! Bisher hatte ich folgendes Szenario im Kopf: Ein User legt munter eine Seite an in ISO-8859-1. Nachdem er dutzende Seiten mit Content angelegt hat, fällt im ein, daß er nun auch ein türkisches, russisches oder japanisches Wort darstellen möchte. Kurz darauf fragt er dann hier im Forum, warum das nicht geht

(mit der Original-Installation geht es im Titel und Menu nicht; mit meiner Variante geht es auch im Content nicht (es sei denn der Editor erzeugt entities)).
Und ein Umstellen der kompletten Seite auf UTF-8 zerstört alle Umlaute... Darum bisher meine Forderung nach UTF-8-ONLY.
ABER: mit dieser Lösungsvariante die ich hier anbiete geht das dann ja doch - wie ich oben gezeigt habe. D.h. der User kann bei einer bestehenden Seite den DEFAULT_CHASRET von z.B. ISO-8859-1 auf UTF-8 umstellen, und die vorhandenen Umlaute werden immer noch richtig angezeigt (Nur ein zurückwechseln von UTF-8 nach ISO-8859-1 unterliegt den Beschränkungen des kleineren Charsets). Damit ist es ziemlich egal ob man außer UTF-8 weitere Charsets anbietet oder nicht.
Weitere Vorteile:
- Unabhängig vom DEFAULT-CHARSET werden die Daten in der Datenbank immer in UTF-8 gespeichert. Das ist zur Zeit nicht der Fall! (wenn z.Z. der DEFAULT_CHARSET in wb z.b. auf UTF-8 steht, passiert folgendes: WB übergibt die Umlaute im UTF-8-Format - mySQL meint, weil der "Verbindungs-Charset" standardmäßig auf 'latin1' steht (und von WB nicht verändert wird), es müßte eine latin1-->UTF-8 Konvertierung durchführen, und es speichert nur noch Datenmüll in der Datenbank. Daß das trotzdem funktioniert, liegt daran, das mySQL auf dem Rückweg wieder eine UTF-8-->latin1 Konvertierung durchführt, wodurch dann wieder richtige UTF-8 Zeichen entstehen.)
- eine konsistente Datenbank ist Voraussetzung für spätere Updates ... (hat man glaube ich beim Wechsel von 2.6.4 nach 2.6.5 gesehen)
- keine Entities in Titel und Menu
Das o.g. gilt leider nur für Neuinstallationen (d.h. bei denen die Datenbank neu angelegt wird). Bei bestehenden Datenbanken ergeben sich folgende Probleme:
- default Charset und Collation muß geändert werden (sowohl für die DATABASE als auch für jede TABLE): dafür bräuchte man ein php-Skript, daß nachsieht welche Tabellen da sind, und diese dann entsprechend ändert.
- Seiten in ISO-8859-1 und (englische) Seiten ohne Umlaute funktionieren dann; aber Seiten die mit einem anderen Charset erstellt wurden (UTF-8, GB2312, ISO-8859-11,...) sind dann verstümmelt. Möglicherweise könnte man das lösen, indem man einen Dump der Datenbank entsprechend konvertiert und wieder einspielt -- aber weder iconv noch recode kommen mit dem Zeichensalat klar. Hier bräuchte man wiederum ein Skript, das jeden einzelnen "String" aus der Datenbank mit Verbindungs-Charset 'latin1' liest, und in mit 'utf8' zurückschreibt.
MfG, thorn