nach oben

User-Funktionen

Manchmal besteht die Notwendigkeit, CMSimple_XH individuell anzupassen. Es wäre durchaus möglich, benötigte Änderungen direkt in den Original-Dateien durchzuführen – aber klug wäre das nicht. Spätestens beim nächsten Update würden diese Änderungen überschrieben. Besser ist es, größere Änderungen oder neue Funktionalitäten in ein eigenes Plugin zu packen.
Kleinere Änderungen, zum Beispiel nur ein oder zwei neue oder geänderte Funktionen, können einfach in der Datei cmsimple/userfuncs.php untergebracht werden.

userfuncs.php

Die Datei cmsimple/userfuncs.php ist, wie der Name schon sagt, eine Benutzer-Datei, die Benutzer-Funktionen enthält. Sie ist also immer eine individuelle Datei. Sie wird nicht mit CMSimple_XH ausgeliefert – muss also bei Bedarf eigenhändig angelegt werden. Durch Updates wird diese Datei nicht überschrieben.

CMSimple_XH wird diese Datei, wenn vorhanden, immer vor den Plugins einbinden und abarbeiten. Daher ist sie der geeignete Ort, um benötigte Funktionalität(en) zu CMSimple_XH hinzuzufügen oder bestehende zu ändern.

 

Die Datei ist eine normale PHP-Datei (kodiert utf-8 ohne BOM) und beginnt immer so:

<?php
...

Hier kann man nun seine individuellen Anpassungen notieren. Die Datei kann jederzeit geändert oder erweitert werden. (Beispiel für eine konkrete Anwendung: Eigene 404-Seite)

XH-Core-Funktionen ändern

Wenn eine Systemkern-Funktion von CMSimple_XH geändert werden soll, kann man diese Funktion nach cmsimple/userfuncs.php kopieren, sie an der ursprünglichen Stelle löschen oder auskommentieren und die eigenen Änderungen an der Kopie vornehmen. Nach einem Update ist es oft ausreichend, wenn die Funktion von der ursprünglichen Stelle erneut entfernt wird.

Wenn Code im globalen Sichtbarkeitsbereich (das heißt außerhalb einer Funktion) zu ändern ist, kann man diesen Code meist nicht nach cmsimple/userfuncs.php verschieben, da die Reihenfolge der Ausführung beachtet werden muss. In diesem Fall ist es das Beste, wenn man die Änderungen an den Systemkern-Dateien auf ein Minimum beschränkt, und soweit möglich, eine neue Funktion in cmsimple/userfuncs.php schreibt und sie an der Stelle, an der die Änderungen gewünscht sind, aufruft.

Tipp

Um die Änderungen oder Ergänzungen auch noch später überschauen und nachvollziehen zu können, solltest du diese immer gut dokumentieren, zumindest aber im Code aussagekräftige Kommentare einfügen. Beispiel:

// Anpassung: ...

Oder auch ausführlicher:

// Anpassung Anfang:
// in cmsimple/tplfuncs.php ersetzt:
// function XH_irgendEtwas()
...
// Anpassung Ende

Allgemein nützliche Änderungen

Wenn du glaubst, dass deine Änderung auch für andere nützlich sein könnte, stelle diese im Open Development Forum (oder in einem der nicht englischen Foren) vor. Wenn andere deine Meinung über die allgemeine Nützlichkeit teilen, stehen die Chancen gut, dass die Änderung in der nächsten Version von CMSimple_XH enthalten sein wird, sodass du die Änderungen beim nächsten Update nicht erneut durchführen musst.

userprelude.php

Seit CMSimple_XH 1.6.5 wird die Datei cmsimple/userprelude.php vor der cms.php eingebunden, sofern sie existiert. Dies bietet die Möglichkeit, einige frühe Anpassungen vorzunehmen, ohne die index.php ändern zu müssen (was besonders für mehrsprachige Websites mit mehreren index.php von Vorteil ist). Insbesondere kann diese Datei für einen Wartungsmodus verwendet werden, indem die Skriptausführung beendet wird, bevor cms.php eingebunden wird.

BOM

BOM ist die Abkürzung von byte order mark (engl. Byte-Reihenfolge-Kennzeichnung). Das ist ein wichtiges Konzept für die Plattform-Interoperabilität von vielen multibyte encodings, z.B. UTF-16 und UTF-32. Es ist nötig, weil verschiedene Betriebssystem diese Kodierungen in unterschiedlichers Byte-Reihenfolge erwarten (big-endian/little-endian).

Aber für UTF-8 ist die Reihenfolge der Bytes für alle Plattformen gleich, so dass das BOM hier seine ursprüngliche Bedeutung verloren hat. Es wird allerdings von vielen Editoren verwendet, um eine Datei als UTF-8 zu kennzeichnen. Das ist vermutlich nicht die beste Idee, und der Unicode-Standard empfiehlt nicht, ein BOM in UTF-8 kodierten Dateien zu verwenden. Oftmals stört das BOM allerdings nicht, aber in PHP-Dateien und Dateien die von PHP inkludiert werden, verursacht das BOM ein Problem: das BOM wird sofort zum Browser geschickt, wenn die Datei verarbeitet wird. Da so die HTTP Antwort bereits begonnen wurde, wird das spätere Setzen von HTTP Headern unterdrückt, was unterschiedliche Fehlfunktionen des Skripts nach sich ziehen kann.

utf-8

utf-8 = 8-Bit UCS Transformation Format

Die am häufigsten eingesetzte Art der Zeichencodierung im World Wide Web.

Mehr dazu bei Wikipedia.

CMSimple_XH benötigt utf-8 ohne BOM.