Anandos Template-Parser - technische Dokumentation - 4 - Template-Variablen und Funktionen
Abschnitt 4
4.1. Marker-Funktionen und Variablen
Die Initialisierung geschieht über eine Init()-Funktion, die in der Datei init.php des Funktionspaketes enthalten ist.
Die init.php wird vom Parser automatisch eingebunden (include) und kann include-Anweisungen für weitere benötigte Dateien enthalten. Die enthaltene Init()-Funktion wird vom Parser als erstes aufgerufen und ermöglicht die Initialisierung des Funktionspaketes.
Das bedeutet: Alle ausserhalb von Funktionen in der init.php befindlichen Anweisungen werden sofort ausgeführt. danach wird die Init-Funktion Aufgerufen. Nach Aufruf der Init-Funktion geht der Parser davon aus, dass die Session initialisiert ist und setzt weitere vordefinierte Zustandsvariablen.
Die Variablen werden über ein assoziatives Array aAtpVars bereitgestellt, dass in $_SESSION abgelegt wird. Für jede der vom Parser in einer Session verwalteten Instanzen gibt es einen unabhängigen Variablensatz.
Beispiel: Bezeichner aus Text-Pattern ist "Otto": $_SESSION['aAtpVars'][{Instanz}]['Otto']
4.2. Hilfsfunktionen
Zum bequemen Zugriff auf diese Variablen dienen folgende Funktionen, die im eigenen PHP-Code verwendet werden können:
- bool AtpVIsset (string $sName)
- bool AtpVSet (string $sName, mixed $mValue)
- mixed AtpVGet (string $sName)
- bool AtpVUnset (string $sName)
- mixed AtpVInstInit (integer $Instance)
- mixed AtpVInstCopy(mixed $Instance = false)
- bool AtpVInstUnset(integer $Instance)
- bool AtpVInstIsset(integer $Instance)
Weitere verfügbare Hilfsfunktionen sind:
- String RQ (String $v) - liefert $_REQUEST-Wert oder Leerstring; unpaarige " und ' werden automatisch entfernt
- String RVar (String $s) - ermittelt Variable aus $_REQUEST (Vorrang) oder ATP-Umgebung; unpaarige " und ' werden automatisch entfernt
4.3. Parser-Funktionen für Text-Pattern
(noch keine)
4.4. Parser-Funktionen für Marker-Tags
FKT |
PAR |
Beschreibung |
HREF |
|
konvertiert href-Attibut des eingeschlossenen Tags so, dass der Parser mit dem Inhalt des Attributs als Parameter "sATP_TplFile" aufgerufen wird |
SRC |
|
konvertiert src-Attibut des eingeschlossenen Tags so, dass der Parser mit dem Inhalt des Attributs als Parameter "sATP_TplFile" aufgerufen wird |
ACTION |
|
konvertiert action-Attibut des eingeschlossenen Tags so, dass der Parser mit dem Inhalt des Attributs als Parameter "sATP_TplFile" aufgerufen wird |
DATA |
|
konvertiert data-Attibut des eingeschlossenen Tags so, dass der Parser mit dem Inhalt des Attributs als Parameter "sATP_TplFile" aufgerufen wird |
ARR |
Array-Name |
ersetzt im HTML-Quelltextabschnitt Platzhalter der Form ##bezeichner## mit den korrespondierenden Inhalten des numerischen oder assoziativen Arrays
Beispiel:
php-Quellcode:
AtpVSet('Test', (abc => Hallo, def => Otto));
Template
<atp FKT=ARR PAR=Test ><b>##abc## ##def##!</b></atp>
Ausgabe (DEBUG=0 in atp.conf.php):
<b>Hallo Otto!</b>
oder bei DEBUG=1 in atp.conf.php:
<ATP FKT="ARR" PAR="Test"><b>Hallo Otto!</b></ATP>
|
ARR2 |
Array-Name |
wie Funktion ARR, aber für 2-dimensionales Array;
Der Quelltext wird sooft dupliziert, wie die erste Dimension des Arrays Elemente hat
Ist das Array leer, wird der Quelltext unterdrückt.
Die Platzhalter haben die gleiche Struktur, wie die für die Funktion ARR verwendeten. |
SETCLASS |
Variablenname |
Setzt den Klassennamen des eingeschlossenen Tags neu. |
VISIBILITY |
Variablenname |
Setzt VISIBILITY-Wert des style-Atrributs des eingeschlossenen Tags neu:
Der Inhalt der per PAR bezeichneten Variablen wird wie folgt verwendet:
-1 - VISIBILITY wird 'hidden' gesetzt
0 - VISIBILITY -Eigenschaft wird entfernt
1 - VISIBILITY wird 'visible' gesetzt |
HIDDEN |
Variablenname |
veraltet; Synonym für VISIBILITY |
SHOW |
Variablenname |
läßt Code stehen, wenn Variable gesetzt ist. |
BLANK |
Variablenname |
unterdrückt Code, wenn Variable gesetzt ist |
TEST |
Vergleichs-Ausdruck |
läßt Code stehen, wenn der Vergleichsausdruck "Wahr" ergibt
Syntax: ATP-Variablenname.Vergleichsoperator.Zeichenkettenkonstante
Vergleichsoperatoren (in Klammern der verwendete PHP-Operator):
- .eq. - gleich (==)
- .ne. - ungleich (<>)
- .ge. - größer oder gleich (>=)
- .le. - kleiner oder gleich (<=)
- .gt. - größer als (>)
- .lt. - kleiner als (<)
- .ct. - enthält zeichenkette (strpos, ab V4.2.02)
- .cn. - enthält Zeichenkette nicht (strpos, ab V4.2.02)
Beispiel für Vergleichsausdruck: _ATP_PLA.eq.sma (wenn die Variable _ATP_PLA den Inhalt sma hat, wird der Inhalt zwischen den einschließenden Tags berücksichtigt.
Stellen beide Operanden von Vergleichsausdrücken Zahlen dar (also der Inhalt der ATP-Variablen und die Zeichenkettenkonstante), wird numerisch verglichen, andernfalls alphanumerisch.
Beispiel: < atp FKT=TEST PAR= _ATP_PLA.eq.sma>
(ab V4.02.00) |
4.5. Vordefinierte Variablen
Die folgenden Variablen stehen in der Anwendung in der init-Funktion zur Verfügung:
Globale PHP-Konstanten
Name |
Beschreibung |
PHPSESSID |
ebendiese |
nATP_Inst |
aktive Parser-Instanz ( je Instanz gibt es einen Variablen-Satz ) |
SERVER_NAME |
Name des Hosts |
ATP_VER |
Versionsangabe des Parsers |
HTTP_ACCEPT_CHARSET |
wie vom Clienten gemeldet |
HTTP_USER_AGENT |
sog. Browser-String (Kennung des Browsers auf Client-Seite) |
REMOTE_ADDR |
IP-Adresse des Clients |
sATP_AppDir |
relativer Pfad zu den Scripten der Anwendung |
sATP_TplDir |
relativer Pfad zu den Template-Dateien der Anwendung |
MONTH |
Monatsnme |
WEEKDAY |
Wochentags-Name |
UHR |
Uhrzeit in der Form HH:MM Uhr |
TIME |
Uhrzeit in der Form HH:MM:SS |
DATE |
Datum in der Form TT.MM.JJJJ |
globale PHP-Variablen:
Name |
Beschreibung |
default |
$cDelimiter |
Trennzeichen für Pfade im Dateisystem |
Windows: '\\'
Linux: '/' |
$cIncPathDelim |
Trennzeichen für Bestandteile des Include-Pfads |
Windows:';'
Linux: ':' |
$sATP_AppDir |
Verzeichnis der Anwendung (relativ zu index.php des Parsers) |
'prg' |
$sATP_AppName |
Name der Anwendung (aus atp.conf.php) |
'Anwendung' |
$sATP_TplDir |
Verzeichnis, das die Template-Dateien enthält (relativ zu index.php des Parsers) |
'tpl' |
$sATP_TplFile |
Start-Template |
'index.html' |
$sATP_CMemName |
serverseitiger Kurzzeit-Speicher für Anwendung |
'CMEM' |
$sATP_Charset |
Standard-Zeichensatz für header |
'UTF-8' |
$nATP_LogLevel |
|
'' |
$sATP_LogFile |
absoluter Pfad und Name der Parser-Logdatei (Serverabhängig!) |
'/var/log/atp_log' |
$sATP_UasFile |
Enthält Definitionen zur Plattformerkennung |
'' |
$sATP_UasLogFile |
absoluter Pfad und Name der Logdatei für nichterkannte uas-Strings (Serverabhängig!) |
'' |
$_ATP_UAS |
UAS-String aus $_SERVER['HTTP_USER_AGENT'] |
|
$_ATP_PLA |
Plattformkennung oder Leerstring |
|
$_ATP_RES |
Auflösung in Pixeln oder Leerstring |
|
$_ATP_SYS |
Satenkennung oder Leerstring |
|
$_ATP_VER |
|
|
$_ATP_DIA |
Bildschirmdiagonale in Zoll oder Leerstring |
|
$_ATP_BRO |
Browserkennung oder Leerstring |
|
$_ATP_LNG |
Sprachkennung oder Leerstring |
|
$_ATP_OUT |
boolean: wenn false gesetzt, wird nichts ausgegeben (default: true) |
|
ATP-Variablen
Diese Variablen lassen sich mittelsd AtpVGet() zu lesen oder in Template-Platzhaltern verwendbar)
VAR |
Beschreibung |
ATPVER |
Version des Template-Parsers Beispiel: 3.07.04 |
PHPSESSID |
aktuelle Session-ID (ab V4.07) |
nATP_Inst |
Nummer der aktuellen Instanz |
sATP_AppDir |
relativer Pfad zum Anwendungs-Unterverzeichnis (ohne abschl. "/" ) |
sATP_TplDir |
relativer Pfad des Template-Verzeichnisses (ohne abschl. "/" ) |
DATE |
Datum im Format "[T]T.[M]M.YYYY" |
WEEKDAY |
aktueller Wochentag |
MONTH |
aktueller Monatsname |
TIME |
liefert die aktuelle Zeit im Format 'hh:mm:ss' |
UHR |
liefert die aktuelle Uhrzeit im Format 'hh:mm Uhr' |
REMOTE_ADDR |
Client-IP |
HTTP_USER_AGENT |
Browser-String aus $_SERVER[] |
HTTP_ACCEPT_CHARSET |
aus $_SERVER[] |
SERVER_NAME |
aus $_SERVER[] |
4.6. Lokalisierung
Um eine Anwendung mehrsprachig zu gestalten, kann man auf folgende Variablen und Funktionen zurückgreifen:
Globale Variable '
$sTPattern': kann von der Anwendung mit einem Markerstring für die Kennzeichnung von zu übersetzenden Worten beschrieben werden.
Globales Array '$aTT': kann von Anwendung mit der Übersetzungstabelle gefüllt werden.
Ist $sTPattern gesetzt, werden alle vorkommenden Worte, die mit dem Inhalt von $sTPattern eingeschlossen sind, mit Hilfe der Tabelle $aTT übersetzt.
Artikel zuletzt bearbeitet am: 05.04.2023 19:31