CMS Made Simple in deutsch
UPDATE: Ab CMS Made Simple 1.6 hat sich die Einstellung der Datenbankkodierung geändert! Wichtige Änderungen, die bei einer Neuinstallation der Version 1.6 oder höher zu beachten sind, habe ich weiter unten rot hinterlegt.
Dieses How-To ist nur bis einschließlich CMSms Version 1.8.2 gültig! Für die Version 1.9.x siehe Kommentar 7.
Grundsätzliches
Das einfach zu erlernende Content-Management-System CMS Made Simple (CMSms) lässt sich sehr einfach komplett in deutsch aufsetzen. Die einfachste Möglichkeit ist die „deutsche Version” von der deutschen CMS Made Simple-Seite (cmsmadesimple.de) runterzuladen.
Zusätzlich müssen nach der Installation nur noch einige wenige Einstellungen vorgenommen werden, die man in Kurzform auf der Seite CMS Made Simple in deutsch oder ausführlich in diesem Artikel findet.
Datenbank – UTF-8- oder Latin-1-kodiert?
Warum ist es wichtig mit welcher Kodierung deine Datenbank die Inhalte ausliefert? Gibt die Datenbank UTF-8- statt Latin-1-kodierte Inhalte aus, werden v.a. Umlaute anders kodiert. Das kann Probleme bei der Darstellung oder Handhabung von Umlauten und Sonderzeichen auslösen, muss es aber nicht. CMSms-Versionen bis einschließlich 1.5.4 gehen standardmäßig von einer Latin-1-kodierung aus. Erst ab Version 1.6 wird bei einer Neuinstallation UTF-8 voreingestellt. Bei einem Update auf 1.6 bleibt die bisherige Latin-1-Voreinstellung erhalten.
MySQL – die Datenbank die Webspace-Hoster zum größten Teil einsetzen – speichert ab Version 4 die Inhalte intern in UTF-8 ab. Das heißt aber nicht automatisch, dass es auch die Inhalte UTF-8-kodiert ausliefert. Ob du weitere Einstellungen vornehmen musst, solltest du zuerst herausfinden, ob deine Datenbank UTF-8-kodiert ausliefert.
- Starte das Tool phpMyAdmin, das viele Hoster als Verwaltungstool für die Datenbank oft mitinstallieren und ggf. über die Administrationsoberfläche deines Webspaces aufzurufen ist.
- Klicke auf den Link „MySQL-System-Variablen anzeigen“. Schaue dir die Variablen
- character set client
- character set connection
an. Ist der Inhalt dieser Variablen UTF-8, liefert deine Datenbank Inhalte UTF-8-kodiert aus.
Probleme mit UTF-8-kodierter Ausgabe
Gibt deine Datenbank Inhalte Latin-1-kodiert aus, hast du bei CMSms-Versionen kleiner 1.6 i.d.R. keine Probleme. Oft treten auch bei UTF-8 Kodierung zuerst keine Probleme mit Umlauten auf. Die Inhalte inkl. Umlaute werden richtig ausgegeben. CMSms scheint eine Konvertierung durchzuführen. Probleme machen eher Module, wie das Search-Modul, dass Suchbegriffe mit Umlauten – je nachdem ob groß- oder kleingeschrieben – einfach nicht finden will, da sie wahrscheinlich direkt in den Datenbanktabellen arbeitet.
Bei der Version 1.6 oder höher sind mit UTF-8-ausliefernden Datenbanken keine Probleme zu erwarten. Werden in der Administration des News-Moduls oder bei der Ausgabe der News die Monatsnamen mit Umlauten falsch angezeigt, liegt das an der Einstellung von $config[‚locale‘] in der Datei config.php und nicht an der Datenbankkodierung. Andere Module könnten auch davon betroffen sein.
Weitere Einstellungen bei Latin-1-Kodierung
Generell brauchst du bei CMSms-Versionen kleiner 1.6 nichts an der Konfiguration zu ändern. Bei einer Neuinstallation der Version 1.6 oder höher musst du bei Latin-1-kodierung in der „config.php“ kontrollieren, ob der Eintrag „$config[’set_names‘]“ auf „false“ steht! Bei Problemen mit umlautbehafteten Monatsnamen stelle in deiner config.php den Eintrag $config[‚locale‘] auf de_DE .UTF8 bzw. de_DE :
$config['locale'] = 'de_DE.UTF8';
Diese Einstellung hat nichts mit der Datenbankkodierung zu tun, sondern mit der Kodierung der ausgelieferten HTML-Webseite(n), die i.d.R. auf UTF-8 eingestellt ist (siehe auch Einstellungen von $config[‚default_encoding‘] und $config[‚admin_encoding‘] in der config.php).
Weitere Einstellungen bei UTF-8-Kodierung
In den beiden Dateien config.php und include.php müssen die weiter unten beschriebenen Änderungen durchgeführt werden. Beide Dateien befinden sich im Wurzelverzeichnis deiner CMSms-Installation.
Wichtig: Hast du bereits Inhalte (mit Umlauten/Sonderzeichen) in deiner Datenbank gespeichert, wird vor allem die Änderung in der include.php die Umlaute zerstören. du musst anschließend die Datenbankinhalte nach UTF-8 konvertieren. Siehe weiter unten.
config.php:
$config['locale'] = 'de_DE.UTF8';
Ggf. sollte man noch die Einträge
$config['default_encoding'] = 'utf-8'; $config['admin_encoding'] = 'utf-8';
kontrollieren. $config[‚default_encoding‘] darf auch leer sein. Zur Erklärung gilt das oben Geschriebene.
include.php:
Bei einer Neuinstallation der CMSms Version 1.6 oder höher wird die Datenbankkodierung NICHT mehr in der include.php sondern in der config.php eingestellt. Die Option heißt „$config[’set_names‘]“ und steht standardmäßig auf „true“ (UTF-8-kodierung eingeschaltet). Du brauchst bei einer Neuinstallation ab 1.6 und einer UTF-8-ausliefernden Datenbank hier NICHTS ÄNDERN! Die unten stehende Änderung der include.php ist aber anzuwenden, wenn du eine CMSms-Version 1.5.4 oder kleiner verwendest oder von einer älteren Version auf 1.6 oder höher updatest!
Die Komentarzeichen „//“ aus der Zeile
// $cmsdb->Execute('set names utf8');
entfernen. Hiermit hast du eingestellt, dass CMSms Inhalte UTF-8-kodiert in die Datenbank schreibt und Inhalte in genau derselben Kodierung von ihr erwartet.
Wichtig: Nach einem Update auf eine höhere CMSms-Version muss man ggf. die obige Änderung der include.php wiederholen, da die Datei manchmal durch eine neuere überschrieben wird.
Abschließendes
Zu guter letzt sollte man ggf. den Zwischenspeicher löschen (Administrator->Globale Einstellungen), damit die Änderungen wirksam werden. Wenn das Kind bereits in den Brunnen gefallen ist und du bereits Inhalte mit nicht korrekten Einstellungen eingegeben hast, musst du vor bzw. direkt nach den Umstellungen deine Datenbankinhalte auf UTF-8 konvertieren. Das kann sehr zeitaufwendig sein und sollte gut überlegt sein. Ein How-to ist hier ebenfalls verfügbar. Es ist nicht leicht bei den verschiedenen Kodierungen, ob nun in der Datenbank oder den HTML-Seiten die Übersicht zu behalten. Ein Augenöffner für dieses komplexe Thema ist der Beitrag „Die Umlautproblematik – was, wieso, was tun?“, den ich jedem Interessierten empfehlen kann (siehe Interessante Links).
Vielen Dank für den Artikel – insbesondere die Zusammenfassung hinsichtlich der immer wieder auftretenden Umlautproblematik.
Würde den Artikel gern auf cmsmadesimple.de verlinken (falls keine Einwände bestehen).
Gerne, ich habe nichts dagegen.
Dieser Artikel hat mir sehr geholfenn, hatt schon bei mehreren Seiten das Problem, dass in der Datenbank die Umlaute nicht richtig dargestellt wurden und ich somit keine brauchbaren backups machen konnten. Mit dieser Hilfe konnte ich alles Problemlos einstellen … Vilen Dank 🙂
Gute Neuigkeiten!
In der Konfiguration der CMSms-Version 1.6, die voraussichtlich am 20.06.2009 erscheint, wird es in der config.php eine (neue) Variable set_names geben, mittels derer die Kodierung der Datenbank in utf-8 aktiviert werden kann. Voreingestellt bei neuen Installationen ist true.
Die Änderung der include.php entfällt damit :).
Danke für den Hinweis. Das wird vielen CMSms Einsteigern außerhalb des englischen Sprachraums das Leben erleichtern und erspart alten Hasen das nachträgliche Ändern der include.php nach jedem Update.
Aufgrund der neuen Version 1.6 und der geänderten Einstellung der Datenbankkodierung habe ich dieses How-To aktualisiert. Änderungen sind rot hinterlegt.
Dieses How-To darf nicht mehr für die CMSms Version 1.9 und höher verwendet werden.
Wenn deine Datenbank UTF-8-kodiert ausliefert und wenn du die CMSms Version 1.9.x oder höher verwendest, achte in der „
config.php
“ auf folgende Einträge:$config['locale'] = 'de_DE.UTF8';
$config['default_encoding'] = 'utf-8';
$config['admin_encoding'] = 'utf-8';
$config['set_names'] = true;
Änderungen in der „
include.php
“ dürfen NICHT mehr vorgenommen werden.Weitere Besonderheiten bei einem 1.9-Upgrade sind im Beitrag „Probleme beim CMS Made Simple 1.9.x Upgrade“ beschrieben.