Shop-Software CP::Shop - Eröffnen Sie Ihren eigenen Online-Shop!Shop-Software CP::Shop - Eröffnen Sie Ihren eigenen Online-Shop!

Spezialisten mit langjähriger Erfahrung

Schnelle Projektumsetzungen

sandoba.takeoff - Komplettpaket für Ihr Internetprojekt Kontakt mit sandoba.de aufnehmen

Hinweis zur Bestellung
Haben Sie Fragen zur Bestellung im Online-Shop? In den "Hilfen für die Bestellung" werden Ihre Fragen beantwortet. Auch der Support hilft Ihnen gerne weiter (Kontaktformular).


Kunststoffland NRW setzt auf Contentpapst

Systemfunktionen anpassen und erweitern

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 Konstruktor 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.).

Beispiele für die den Einsatz dieser Möglichkeiten

Es gibt viele Situationen, in denen eine Anpassung der Systemfunktionen sinnvoll sein kann:

  • Der standardmäßig ausgegebene HTML-Code in Modulen wie der Galerie soll angepasst werden, so dass z.B. keine Tabellen mehr verwendet werden (für ein "tableless"-Layout) oder zusätzliche CSS-Befehle genutzt werden können.
     
  • Bei einer Contentpapst-Installation mit mehreren Mandanten sollen bei einem Mandanten in bestimmten Modulen zusätzliche Hinweis-Texte angezeigt werden. Außerdem soll die Startseite andere Inhalte darstellen.
     
  • Bei einzelnen Mandanten sollen Module wie die Umfragen und die Galerie deaktiviert werden, ohne dass diese für alle Mandanten deaktiviert werden. Beim Aufruf dieser Module soll dann wieder zurück auf die Startseite gewechselt werden.

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: nicht lesenswert  -2 -1 0 +1 +2  lesenswert


Weitere Artikel in der Knowledge Base:

Hier finden Sie die eBusiness-/eCommerce-Spezialisten von sandoba.de:
https://www.sandoba.de/support/knowledge-base/cms/systemfunktionen-anpassen-und-erweitern.html