PHP-Code einbinden

Wenn Sie Funktionen benötigen, die von VirthosTalk nicht bereitgestellt werden, können Sie eigenen PHP-Code in Ihre Templates einbinden. Je nachdem, was Sie genau bezwecken, stehen Ihnen verschiedene Wege zur Auswahl, die in den folgenden Abschnitten näher beschrieben sind. Unabhängig davon, auf welche Weise der PHP-Code eingebunden wird, stehen verschiedene API-Funktionen zur Verfügung, um von PHP aus auf virthos-spezifische Funktionen und Objekte zuzugreifen.

vtCalc und vtEcho

Die einfachste und in allen Virthos-Varianten verfügbare Methode, um eigenen PHP-Code einzubinden, besteht darin, die Anweisung vtCalc oder den Platzhalter vtEcho zu verwenden. Beide erwarten als Parameter einen PHP-Ausdruck und erlauben es, in den Parameter beliebige VirthosTalk-Platzhalter einzufügen, die vor der Evaluierung des PHP-Codes durch ihre jeweiligen Werte ersetzt werden. Der Unterschied zwischen den beiden besteht darin, dass vtEcho das Ergebnis unmittelbar ausgibt, während vtCalc das Ergebnis intern speichert, so dass es mittels vtResult ausgegeben oder mittels vtSet in einer benannten Variablen abgelegt werden kann.

vtCode

Wenn Sie nicht nur einfache Ausdrücke, sondern komplexere Codeblöcke einbinden möchten, sind vtCalc und vtEcho nicht geeignet. In solch einem Fall müssen Sie die vtCode-Anweisung verwenden, die allerdings nur in Virthos Master zur Verfügung steht. Diese liefert kein Ergebnis zurück, das sich unmittelbar ausgeben oder speichern lässt, und es ist auch nicht möglich, VirthosTalk-Platzhalter direkt in den PHP-Code einzubinden. Dafür gibt es keinerlei Einschränkungen, was die Komplexität des Codes betrifft.

Einbindung mittels Skript-Tags

In Virthos Master ist es auch möglich, PHP-Code direkt einzubinden, indem man diesen in Skript-Tags einschließt:

<!-- HTML-Code mit VirthosTalk-Elenten -->

<?php /* Hier steht irgendwelcher PHP-Code */ ?>

<!-- HTML-Code mit VirthosTalk-Elenten -->

Bei dieser Art der Einbindung ist zu beachten, dass der Code nichts enthalten darf, was vom Template-Compiler als VirthosTalk-Konstrukt oder als relativer Ressourcenpfad angesehen werden könnte. Das heißt konkret:

  • Geschweifte Klammern dürfen nicht unmittelbar aufeinanderfolgen.

  • relative Pfad (z. B. in einem include-Aufruf) müssen mit einem einzelnen Punkt am Anfang geschrieben werden: ./pfad/zu/einer/datei

Einbindung einer externen Datei

Über den Konfigurationsparameter includeFile ist es möglich zu veranlassen, dass bei jedem Virthos-Aufruf eine externe PHP-Datei geladen wird. Diese Datei kann zum Beispiel eigene Funktionsdefinitionen enthalten und ihrerseits weitere Programmbibliotheken laden. Der Konfigurationsparameter erwartet als Wert eine absolute oder relative Pfadangabe. Ein relativer Pfad wird vom Virthos-Basisverzeichnis aus aufgelöst.

Plug-ins

Um die Einbindung externer Dateien leichter steuern zu können, bietet Virthos eine einfache Plug-in-Schnittstelle. Ein Plug-in ist ein Unterverzeichnis im Verzeichnis plugins, das wiederum ein Unterverzeichnis des Virthos-Basisverzeichnisses ist. Jedes Plug-in muss eine Datei mit dem Namen _init.php bereitstellen, die den auszuführenden PHP-Code enthält.

Um ein Plug-in zu aktivieren, tragen Sie dessen Namen in die globale Variable activePlugins ein. Sollen mehrere Plug-ins aktiv sein, sind die Namen durch Kommas zu trennen. Eine Oberfläche zum Aktivieren und Deaktivieren von Plug-ins ist in Vorbereitung.