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.

    (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 Wert Beschreibung
    ATP_VER variabel Versionsangabe des Parsers
         

    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: 13.04.2019 16:57