Shop-Software CP::Shop - Eröffnen Sie Ihren eigenen Online-Shop!Shop-Software CP::Shop - Eröffnen Sie Ihren eigenen Online-Shop!
Informationen zur Shop-Software CP::Shop Pressemeldung zur Veröffentlichung von CP::Shop 2016.1

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


FC Hansa Rostock setzt auf Contentpapst

Eigene {cp:tags} zu Contentpapst hinzufügen

Zusätzlich zu den standardmäßig in Contentpapst vorhandenen "{cp:tags}" können über die sogenannten "Container" auch mit geringen PHP-Kenntnissen eigene {cp:tags} genutzt werden. Diese Container können das System um neue Funktionen wie z.B. den Import von Nachrichten von einer anderen Webseite, ein komplexes, mehrstufiges Navigationsmenü o.ä. erweitern. Wie dies genau funktioniert und wie ein solcher Container aufgebaut sein muss, wird in diesem Artikel erklärt.

Container sind zuerst einmal nur eine besondere Form der {cp:tags}. Auch die Container können in einer beliebigen Vorlage oder z.B. innerhalb eines Artikels platziert werden. Im Gegensatz zu normalen {cp:tags}, die z.B. nur innerhalb einer Vorlage die Position für den Titel, den Text einer Seite etc. festlegen und dann direkt durch den entsprechenden Inhalt ersetzt werden, laufen bei den Containern im Hintergrund noch einige weitere Prozesse ab, die die Einbindung eigener PHP-Funktionen ermöglichen.

Ein Containeraufruf hat immer den folgenden Aufbau:

{cp:container module="[MODULNAME]" type="[CONTAINERNAME]" [...]}

Intern ruft Contentpapst dann das mit "[MODULNAME]" angegebene Modul auf und dort wird der mit "[CONTAINERNAME]" bezeichnete Container aus einer eigenen PHP-Datei geladen. Wenn als Modulname z.B. "forms_custom" und als Modulname "container_test" angegeben wird, dann wird intern die PHP-Datei "/modules/forms_custom/container/container_test.php" geladen.

In diesen Containerdateien gibt es stets einen festgelegten Aufbau. Im folgenden ein kurzes Beispiel für einen solchen Container:

<?php
/*
 Container für die Einbindung externer Inhalte.
 Aufruf: {cp:container module="forms_custom" type="container_test" [...]}
*/

function forms_custom_container_container_test($form) {

    GLOBAL $lang, $PHP_SELF, $sql;

    $string = "";

    // beliebiger eigener PHP-Code

    RETURN $string;

}
?>

Es muss in den Container-Dateien immer eine PHP-Funktion vorhanden sein, deren Namen den folgenden Aufbau hat: "[MODULNAME]_container_[CONTAINERNAME]". Damit ist sichergestellt, dass es nie mehrere Funktionen mit dem gleichen Namen im System gibt. Diese Funktion wird intern dann automatisch aufgerufen.

Die PHP-Funktion hat als einzigen Parameter ein Array mit dem Namen "$form". Alle beim Containeraufruf zusätzlich neben den Parametern "module" und "type" angegebenen Parameter werden über dieses Array an die Funktion übermittelt und können dort für die weitere Verarbeitung genutzt werden. Wird ein Container beispielsweise folgendermaßen aufgerufen, dann können innerhalb der Funktion die Variablen "$form["limit"];" und "$form["start"];" genutzt werden (diese haben dann den Wert "5" bzw. "10"):

{cp:container module="[MODULNAME]" type="[CONTAINERNAME]" limit="5" start="10"}

Innerhalb der Funktion werden keine Texte über "echo" o.ä. aufgerufen, sondern alle Ausgaben werden in der Variablen "$string" gesammelt, deren Inhalt dann am Ende des Containers zurück an das System übergeben wird. Dadurch können die Inhalte später genau dort angezeigt werden, wie dies durch die Positionierung des Containers innerhalb der Vorlage / des Artikels gedacht war.

Dies sind bereits alle wesentlichen Vorkehrungen, die für die Einrichtung eigener Container getroffen werden müssen. Damit Sie das Modul, in welchem der Container aufgerufen wird, nicht selbst anlegen müssen, ist es sinnvoll, wenn Sie dafür über "CP::Forms" im Administrationsbereich zuerst ein neues - leeres - Modul anlegen. Alle Moduldateien werden daraufhin von Contentpapst automatisch angelegt und Sie können im neu angelegten Unterordner "/container/" des jeweiligen Modulordners nun Ihre eigenen Container platzieren.

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/eigene-cptags-zu-contentpapst-hinzufuegen.html