Ads

Spenden / Donate

Wenn du dieses Projekt und/oder diese Website unterstützen möchtest, dann kannst du via PayPal etwas spenden.
Es wird ec, Visa und MasterCard unterstützt.

Anmeldung






Passwort vergessen?
Noch kein Benutzerkonto?
Registrieren
Home arrow yWeb arrow SDK arrow yParser
yParser
Freitag, 18. Januar 2008

Der yParser hilft beim Schreiben der Server-seitigen Seitengenerierung. Die Seiten für den yParser müssen die Endung .yhtm haben. Im Wesentlichen ist er eine Textersetzungsmaschine und keine Programmiersprache. Alle Befehle beginnen mit {= und enden mit =}. Der Befehl {=befehl=} wird dann mit dem ermittelten Inhalt ersetzt. Dieser Inhalt kann dann wieder Befehle enthalten und so weiter.

Der Parser sucht das erste Vorkommen von =} und geht bis zum ersten {= von dort zurück. Diese ist dann der erste Befehl zu Ersetzung. Der neu enstandene Text wird dann ebenso bearbeitet bis kein Befehl mehr vorkommt. 

var-get:<varname>

Eine lokale Variable (nur diese Seite) lesen.

var-set:<varname>=<varvalue>

Eine lokale Variable setzen.

global-var-get:<varname>

Eine globale Variable (solange der Webserver läuft) lesen

global-var-set:<varname>=<varvalue>

Eine globale Variable setzen.

ini-get:<filename>;<varname>[;<default>][~open|cache]

Lesen von Variablen aus einer ini/conf-Datei <filename> (z.B. neutrino.conf)  Die Dateien haben pro Zeile den Aufbau:
<varname>=<value>
Ist die Variable leer oder nicht vorhanden, wird der <default>-Wert eingesetzt sofern vorhanden.
Werden meherere Werte aus ein und derselben Datei gelesen, sollte der erste Wert mit „open“ und die folgenden mit „cache“ gelesen werden.
Wird dies nicht angegeben, dann wird automatisch open ausgeführt.
(Siehe Y_About.yhtm )

ini-set:<filename>;<varname>;<value>[~open|save|cache]

Schreiben in eine ini/conf-Datei. Es wird die Variable <varname>=<value> überschrieben/geschrieben.
Werden meherere Werte in ein und derselben Datei geschrieben, sollte der erste Wert mit „open“ und die folgenden mit „cache“ und der letzte mit „save“ geschrieben werden.
Wird dies nicht angegeben, dann wird automatisch open und save jeweils ausgeführt. 

include:<filename>

Fügt die Datei <filename> an dieser Stelle ein. 

include-block:<filename>;<block-name>[;<default-text>]

Fügt einen Textblock mit der Kennung <block-name> aus der Datei <filename> ein.
Somit kann man quasi eine Datei mit Textschnipseln verwenden. (Siehe Y_Blocks.txt ) in yWeb.
Der einzufügende Text ist zwischen start-block~<block-name> und end-block~<block-name>
Z.B:

start-block~test
Hello World
end-block~test
 

script:<scriptname without .sh>

Führt ein Skript aus und fügt dessen Ausgaben nach stdout ein.

If Befehle

Alle if Befehle sind nicht „lazy“ d.h. es werden alle Textersetzungen ausgeführt auch wenn sie auf Grund der if-else Entscheidung eigentlich nicht ausgeführt werden müßten.

if-equal:<left_value>~<right_value>~<then>~<else>

<left_value> == <right_value>?
Fügt dann entspechend <left> oder <right> ein

if-not-equal:<left_value>~<right_value>~<then>~<else>

<left_value> != <right_value>? 

if-empty:<value>~<then>~<else>

<value> == “” ? 

if-file-exists:<filename>~<then>~<else>

Prüft ob die Datei <filename> existiert

file-action:<filename>;<action=add|addend|delete>[;<content>]

Mit action=add wird eine neue Datei mit dem Inhalt <content> erzeugt oder komplett überschrieben. Damit kann man Daten speichern oder ein touch ausführen.
Mit action=append wird der <content> an eine Datei hinten angefügt. Existiert die Datei nicht, funktioniert append wie add.
Mit action=delete kann man die Datei löschen.

func:<funcname>

<funcname> ist eine im Webserver programmierte Funktion, deren Ergebnisse hier eingefügt werden.
Siehe mod_yparser.cpp für Tuxbox-unabhängige Funktionen
und
neutrinoyparser.cpp
für Tuxbox-Funktionen

Beispiel 1: „Setzen und lesen einer Variable“

{=var-set:hello=hello world=} Text: {=var-get:hello=}

Ausgabe:
Text: hello world

Syntax:

var-get:<varname>

var-set:<varname>=<varvalue>

 

Beispiel 2: “Lesen eines Wertes aus einer ini/conf-Datei”

{=ini-get:/var/tuxbox/config/neutrino.conf; recording_dir_1;/mnt/filme=}

Ausgabe:

Erstes Aufnahmeverzeichnis und wenn leer, dann /mnt/filme

Syntax:

ini-get:<filename>;<varname>[;<default>][~open|cache]

Letzte Aktualisierung ( Freitag, 18. Januar 2008 )
 
copyright yjogol 2005-2008