Anandos Template-Parser - technische Dokumentation - A - Initialisierungsdateien

Anhang A - Initialisierungsdateien

< Abschnitt 6 Beispiele Inhaltsverzeichnis Anhang B - History >

ATP.conf.php

Die Initialisierungsdatei atp.conf.php befindet sich im gleichen Verzeichnis wie die index.php.
In ihr  werden die Parser-Grundeinstellungen festgelegt:
 

Variablenname Beschreibung Beispiel Standard-Wert als Parameter übergebbar
sATP_AppDir Verzeichnis, in dem die Anwendungsdateien abgelegt sind; darf nicht leer sein; '.' ist erlaubt
ein optional angegebener Argv-Parameter 'sAppDir' überschreibt diesen Wert zur Laufzeit
opac-test application X
sATP_AppName Name des Funktionspakets (für Anzeigen o. Ausschriften) OPAC Anwendung X
sATP_TplDir Verzeichnis, in dem sich die Template-Dateien befinden
ein optional angegebener Argv-Parameter 'sTDir' überschreibt diesen Wert zur Laufzeit
tpl template X
sATP_TplFile Name der zu starteneden Template-Datei
ein optional angegebener Argv-Parameter 'sATP_TplFile' überschreibt diesen Wert zur Laufzeit
index2.html index.html X
nATP_LogLevel wenn >0 gesetzt, wird eine Log-Datei geschrieben

Jede Zeile wird mit einem Zeitstempel, der Quelladresse und der Session-ID eingeleitet.
0 - kein Logging
1 - nur Fehler
2 - Quelle, Liste der Parameter, Laufzeit:
  • init
  • ReadTemplate
  • Marker
  • Pattern
  • Transform
  • Lokalisierung
  • Summe
3 - zusätzliche Funktionsinterne Inhalte
4 - zusätzliche Header-informationen (uac, Land)
5 - alle GET/POST-Parameter
99 - Trace-Level - alle Funktionsaufrufe
3 0  
sATP_LogFile absoluter Pfad und Name der Logdatei c:\log /var/log/atp-test.log  
sATP_TplValid Zeichenkette zur Gültigkeitsüberprüfung der Templates
wenn gesetzt, wird Template nur dann verarbeitet, wenn
Validitäts-Tag mit diesem Inhalt vorkommt:
Beispiel: ... @ ATP VAR=(zeichenkette) @
123456 (leer)  
sATP_UasFile wenn gesetzt, wird der Browserstring ausgewertet atp_uas.txt (leer)  
sATP_UasLogFile und in dieser Datei die unbekannten Browserstrings protokolliert /var/log/atp_unidentified_uac.log (leer)  
MARK_BEG_Strt Konstante; Beginn des öffnenden Marker-Tags "<!-- " "<atp "  
MARK_BEG_End Konstante: Ende des öffnenden Marker-Tags "-->" ">"  
LEN_MARK_BEnd Konstante : Länge der Zeichenkette Ende des öffnenden Marker-Tags 3 1  
MARK_END Konstante: schließendes Marker-Tag "<!--/atp-->" </atp>  
LEN_MARK_END Konstante: Länge der Zeichenkette Ende des schließenden Marker-Tags 11 6  



Inhalt der Datei (Beispiel):

  Kommentare (mit ; eingeleitet)
sATP_AppDir  = opac Verzeichnis unterhalb der index.php, in dem die Anwendungs-Scripte stehen
sATP_AppName = AndoLib-OPAC Name der Anwendung; informativ; kann im Anwendungs-Template verwendet werden
sATP_TplDir  = tpl Verzeichnis unterhalb der index.php, in dem sich die Teplate-Dateien befinden
sATP_TplFile = index.html Name der Start-Template-Datei (index.html ist default)
; DEBUG = 1 -> ATP-Tags bleiben im Ausgabequelltext stehen
DEBUG = 0
Kommentar; ATP-Tags werden in Großschreibung gewandelt und bleiben zu Diagnosezwecken im Ausgabetext stehen. In Produktivumgebungen sollte immer DEBUG=0 gesetzt sein.
ATP-Tags werden vollständig aus produziertem Quelltext entfernt
; wenn gesetzt, wird Template nur dann verarbeitet, wenn
; Validitäts-Tag mit diesem Inhalt vorkommt:
; Beispiel: ... @ ATP VAR=123456 @
sValid = 123456
 
Templates, die diese ATP-Pattern nicht enthhalten, werden nicht verarbeitet; dient vorrangig der Abwehr von Path-Traversal- und remote-include-Attacken
; Name der Device-Liste
UasFile=atp_uas.txt
Ist diese Liste angegeben, werden globale Variablen mit Informationen zum erkannten System gesetzt:
  • $_ATP_PLA
    • sma - Smartphone
    • tab - Tablet
    • pc - PC
    • bot - WebBot, Spider, Suchmaschine
  • $_ATP_RES - Auflösung in Pixeln, z.B. 1024x768
  • $_ATP_SYS - System-Kennung
    • win
    • winxp
    • win7
    • win8
    • android
    • ...
  • $_ATP_DIA - Schirmdiagonale in Zoll auf ganze Werte gerundet
  • $_ATP_BRO - Browserkennung
    • msie9
    • msie10
    • firefox
    • seamonkey
    • ...
  • $_ATP_LNG - Sprachkennung aus Browserstring
    • de
    • en
    • ...
Diese globalen Variablen lassen sich in der Anwendung beliebig auswerten, z.B. zur Auswahl separater Templates für verschiedene Geräte.

Ausgewertet wird der UA-String ($_SERVER['HTTP_USER_AGENT']).

Je Zeile wird eine Geräteart definiert, für eine Geräteart können mehrere Zeilen verwendet werden.
Es wird das Gerät gesetzt, für das der erste RegEx-Ausdruck zutrifft
default: PC (wenn kein RegEx-Ausdruck zutrifft)

Der Inhalt der Device-Liste hat folgenden Aufbau:
  • # leitet Kommentarzeilen ein
  • leere Zeilen werden ignoriert
  • jede Zeile enthält mindestens zwei durch TAB-Zeichen (09hex) getrennte Bereiche:
    • einen RegEx-Ausdruck der Form /blabla/ (wird an führendem '/' erkannt
    • eine Liste von mit ',' getrennten Paaren von Variablennamen und Werten, die ihrerseits durch ':' getrennt sind
  • optional kann noch ein mit '#' eingeleiteter Kommentar folgen, der vom Rest der Zeile auch mit TAB getrennt werden muß


Funktion:

  1. die Zeilen mit den Suchausdrücken werden nacheinander abgearbeitet
  2. treffen mehrere Suchausdrücke zu, überschreiben Werte, die diesem zugeordnet sind, eventuell schon aus voranstehenden Zeilen entstandene Werte
  3. aus 2. ergibt sich, dass zuerst die allgemeinsten und am Ende die speziellsten Suchausdrücke stehen sollten
  4. Zeilen mit fehlerhaften Regex-Ausdrücken werden ignoriert

Beispiele:
/Tablet/               pla:tab
/Mobile/               pla:sma
/Windows NT/           pla:pc,sys:win
/ME301T/               pla:tab
/de-de/                lng:de
/en-en/                lng:en
/Googlebot/            pla:bot
/Mozilla\/5.0; TOB/    bro:t-online
/N905i/                pla:sma,res:320x240
/LG-P990/              pla:sma,res:800x480
/LIFETAB_E1031\d/      pla:tab,res:1280x800            # Medion Lifetab E3031x 
/LIFETAB_E7316/        pla:tab,dia:7,res:1024x600      # Medion Lifetab E7316 
UasLogfile = /var/log/atp_unidentified_uac.log In dieser Datei werdendie unbekannten Browserstrings protokolliert, d.h.,  alle Browserstrings, die keinen bekannten Textteil enthalten

 

Artikel zuletzt bearbeitet am: 25.03.2019 21:32