Seit der Version 3.0 von Contentpapst können alle Systemfunktionen an die eigenen Wünsche angepasst oder durch komplett eigene Funktionen ersetzt werden OHNE dass dafür der Systemkern geändert werden muss. Dadurch kann bei Bedarf das ganze Systemverhalten modifiziert werden und dennoch können spätere Updates von Contentpapst ohne aufwändige Überprüfungen der eigenen Anpassungen eingespielt werden. Was genau dabei beachtet werden muss, wird in diesem Artikel erklärt.
In Contentpapst 3.0+ gibt es für jeden Mandanten (d.h. jede verwaltete Webseite) unterhalb der Ordners "/themes/" einen eigenen Ordner, der dem internen Namen dieses Mandanten entspricht. Bei der Webseite "www.domain.de" könnte als interner Name beispielsweise "domainde" (ohne Leer- oder Sonderzeichen) genutzt werden, so dass dann für diesen Mandanten immer auf den Ordner "/themes/domainde/" zugegriffen wird.
Wenn die Systemfunktionen angepasst werden sollen, dann muss dazu zunächst der neue Unterordner "/scripts/" im Ordner des Mandanten angelegt werden. Darunter wird pro anzupassendem Modul jeweils ein weiterer Unterordner angelegt. D.h. wenn das Modul "article" dieses Mandanten modifiziert werden soll, dann muss dazu der Ordner "/themes/domainde/scripts/article/" angelegt werden.
In diesem Ordner können nun die Dateien "class.admin.php" und "class.index.php" angelegt werden. Sobald diese Dateien vorhanden sind, werden diese automatisch von Contentpapst geladen. Die Datei "class.admin.php" ist dabei notwendig, wenn der Administrationsbereich angepasst werden soll, letztere hingegen bei der Anpassung des öffentlichen Bereiches. Der grundlegende Aufbau dieser beiden Dateien ist stets der gleiche:
<?php
/* Überschreibt die Standard-Methoden des Artikel-Modules */
if (!class_exists("contentpapst_gui_article")) {
include_once("modules/article/class.base.php");
class contentpapst_gui_article extends contentpapst_article { }
}
class contentpapst_custom_article extends contentpapst_gui_article {
function contentpapst_custom_article() {
echo "<strong>HINWEISTEXT FÜR ARTIKEL</strong><br /><br />";
parent::contentpapst_gui_article();
}
}
?>
Es wird jeweils eine neue Klasse "contentpapst_custom_[MODULNAME]" auf der Basis der bereits im System vorhandenen Klasse "contentpapst_gui_[MODULNAME]" angelegt. In dieser neuen Klasse können jetzt alle Methoden überschrieben werden, die in den Dateien "/modules/[MODULNAME]/class.base.php" und "/modules/[MODULNAME]/class.admin.php" bzw. "/modules/[MODULNAME]/class.index.php" bereits vorhanden sind. Weiterhin können beliebige eigene Methoden innerhalb dieser Klasse hinzugefügt werden.
Im obenstehenden Beispiel wurde der Konstruktur der Basis-Klasse überschrieben. Dadurch wird jetzt oberhalb jeder Seite des Artikel-Modules im Administrationsbereich ein zusätzlicher Hinweistext eingeblendet.
ACHTUNG: Für diese Art der Systemanpassung sind Kenntnisse von PHP und objektorientierter Programmierung notwendig. Wenn diese Kenntnisse nicht vorhanden sind, dann können stattdessen weiterhin die bisherigen Möglichkeiten zur Anpassung genutzt werden (eigene Vorlagen und Container etc.).
Es gibt viele Situationen, in denen eine Anpassung der Systemfunktionen sinnvoll sein kann:
Allgemein kann der Einsatz immer sinnvoll sein, wenn mehr als nur ein Mandant genutzt wird und wenn die Anpassung der Module über die normalen Einstellungen, die Anpassung der Vorlagen oder die Nutzung der Container etc. nicht ausreichend ist.
| Bitte geben Sie eine Bewertung ab: |
|