Anandos Template-Parser - technische Dokumentation - 4 - Template-Variablen und Funktionen

Abschnitt 4

< Abschnitt 3 Link-Transformation Inhaltsverzeichnis Abschnitt 5 Anwendungslogik programmieren >

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