Web-Shop » Oxid eShop » Oxid CMS

Oxid CMS

Einbindung eines externen Programms in eine Oxid CMS-Seite

Wenn man weiß, wie es geht, ist's eigentlich ganz einfach.

1. Eine Kontentseite anlegen, in meinem Beispiel "sxkatalog"

Zunächst der Eintrag im Backend unter Kundeninformation / CMS-Seiten:

CMS-Seite im Oxid-eShop anlegen

Anschließend muss z.B. das Template application/views/TemplateName/tpl/widget/footer/info.tpl geändert werden, um die Seite im Menü einzuhängen. Das kann natürlich bedarfsabhängig auch anderswo geschehen.

2. Ein SmartyPlugin erstellen

Wie ein Plugin zu erstellen ist, steht in den Best Practices und dem Abschnitt Plugins der Smarty-Dokumentation.

Für den Oxid eShop heißt das, ich muß im Smarty-Verzeichnis eine Datei erstellen, die mit "function." beginnt, mit dem Plugin-Namen (z.B.: "sx_spareparts") weitergeht und der Extension ".php" endet. Innerhalb dieser Datei kann ich mein Programm mit herkömmlchen PHP-Mitteln erstellen. Der Rückgabewert wird dann im Template "content" ausgegeben. Hier Pfad und Name der Datei:

core/smarty/plugins/function.sx_spareparts.php

 

3. Das Template für das CMS anpassen

Ausgabe auf einer CMS-Seite anzeigen

Diese Variante ist insofern ideal, als ich die Seite mit CSS gestalten kann und verschiedene Plugins an den jeweils benötigten Stellen aufrufen kann.

Um die Ausgabe des (oder der) Plugins in der CMS-Seite anzuzeigen, reicht es, den Namen des (oder der) Plugins im passenden Klammernpaar in der Seite zu notieren. Für obiges Beispiel also [{sx_spareparts}].

Inhalt durch plugin erzeugen

Diese Methode funktioniert zwar auch, scheint mir aber nicht sinnvoll. In diesem Falle brauche ich keinerlei Inhalt auf der Seite. Ist dennoch Inhalt vorhanden, wird die Ausgabe des Plugins unten angehängt.

application/views/TemplateName/tpl/page/info/content.tpl
Eingefügt habe ich folgende 3 Zeilen:

[{if $oxloadid == "sxkatalog" }]
[{sx_spareparts}]
[{/if}]

Der Code bedeutet im Klartext: Wenn die CMS-Seite mit dem Ident "sxkatalog" angefordert wird, soll das Smarty-Plugin "sx_spareparts" geladen werden.

 

Powered by Etomite CMS.