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:

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.