Virthos-API
Virthos Master stellt eine API zur Verfügung, um vom eigenem PHP-Code aus auf
die virthos-spezifischen Objekte und Funktionen zugreifen zu können. Der
Aufruf erfolgt über statische Methoden der Klasse v
, zum Beispiel:
v::vtget('MeineVariable');
Welche Methoden zur Verfügung stehen, ist im folgenden Abschnitt beschrieben.
API-Funktionen
get_db()
Liefert das mysqli
-Objekt zurück, das für den Zugriff auf die MySQL-Datenbank
verwendet wird. Mit Hilfe dieses Objekts lassen sich Abfragen an die Datenbank
senden (wenngleich dies einfacher mit der query()
-Funktion möglich ist) und
auf Eigenschaften des Objekts zugreifen.
$db = v::get_db();
$db->query( 'DELETE ...' );
echo $db->affected_rows . ' Datensätze gelöscht';
log( $message [, $error] )
Schreibt eine Nachricht in die Virthos-Protokolldatei. Ist der
Konfigurationsparameter log
undefiniert oder auf 0
gesetzt, wird die
Nachricht nur geschrieben, wenn der zweite Parameter auf TRUE
gesetzt ist.
query( $sql )
Sendet eine Abfrage an den MySQL-Server und liefert das Ergebnisobjekt zurück.
$result = v::query( 'SELECT ...' );
echo 'Die Abfrage lieferte ' . $result->num_rows . ' Treffer';
set( $name, $value )
Vereinfachte und performantere Variante von vtset()
(siehe unten).
vtconfig( $name )
Liefert den Wert eines Konfigurationsparameters zurück (vgl. vtConfig).
vtdo( $action [, $args] )
Führt eine Aktion mit den angegebenen Argumenten durch (vgl. vtDo).
Wenn der erste Parameter ein Array ist und ein Element mit dem Schlüssel -act
enthält, wird der zweite Parameter ignoriert (siehe folgendes Beispiel).
// Zwei alternative Schreibweisen mit gleicher Funktion:
$result1 = v::vtdo( 'mail', [ 'to' => 'info@xy.de', 'subject' => 'Testnachricht' ] );
$result2 = v::vtdo( [ '-act' => 'mail', 'to' => 'info@xy.de', 'subject' => 'Testnachricht' ] );
vtget( $name )
Liefert den Wert einer lokalen Variable zurück (vgl. vtGet).
vtglobal( $name )
Liefert den Wert einer globalen Variable zurück (vgl. vtGlobal).
vtlink( $args )
Liefert die URL einer bestimmten Virthos-Seite zurück (vgl. vtLink).
$url = v::vtlink( [ '-pg' => 123, '-urltype' => 'readable' ] );
vtpage( $name )
Liefert den Wert eines Seitenattributs zurück. Als Parameter kann der Name eines freien Platzhalters oder einer der folgenden Bezeichner verwendet werden:
- vtComment
- vtContainerId
- vtCreationDate
- vtCreationUser
- vtId
- vtModificationDate
- vtModificationUser
- vtName
- vtPackage
- vtPageType
- vtPathIds
Die Groß-/Kleinschreibung der Bezeichner spielt keine Rolle.
vtresult()
Liefert das Ergebnis der letzten Aktion oder der letzten vtCalc
-, vtCall
-
oder vtCapture
-Anweisung zurück (vgl. vtResult).
vtsession( $name )
Liefert den Wert einer Sessionvariablen zurück (vgl. vtSession).
vtset( $args )
Setzt eine oder mehrere lokale Variablen (vgl. vtSet).
v::vtset( [ 'Wochentag' => 'Montag', 'Monat' => 'Januar' ] );
vtuse( $pageReference ) ... vtenduse()
Ändert den Seitenkontext für nachfolgende vtpage()
-Aufrufe (vgl.
vtUse). Wenn die angegebene Seite nicht existiert,
liefert vtuse()
den Wert FALSE
zurück, so dass das Skript entsprechend
reagieren kann:
if ( v::vtuse( $somePage ) ){
$id = v::vtpage('vtid');
$date = v::vtpage('vtmodificationdate');
echo "Seite $somePage wurde am $date zuletzt geändert.";
}
else {
echo "Die Seite $somePage existiert nicht.";
}
v::vtenduse();
Mit vtenduse()
wird der Seitenkontext wiederhergestellt, der vor dem letzten
Aufruf von vtuse()
bestanden hat. Ein Verschachteln mehrerer
vtuse()
-Anweisungen ist möglich.
vtuser( $name )
Liefert den Wert einer Benutzervariablen zurück (vgl. vtUser).
Die Funktion v()
Um von PHP aus auf VirthosTalk-Platzhalter zuzugreifen, für die keine
eigene API-Funktion zur Verfügung steht, lässt sich die globale Funktion
v()
nutzen. Diese bekommt als Parameter eine Zeichenkette übergeben, die
dem entspricht, was sonst in doppelt geschweifte Klammern eingeschlossen
wäre, zum Beispiel:
$dateString = v('vtDate:d.m.Y');
Die Variable $dateString
wird in diesem Beispiel mit der Zeichenkette
gefüllt, die bei Verwendung des Platzhalters {{vtDate:d.m.Y}}
ausgegeben
würde.