Globals
Ein Globals
-Objekt wird einem Anzeige-, Formular-, Update- oder
E-Mail-Template in der Variablen globals
übergeben.
Diese Variable ist global, d.h. sie ist auch in aufgerufenen Unter-Templates
bekannt, ohne daß globals
beim Aufruf an diese übergeben werden muß.
Das Globals
-Objekt enthält globale Informationen und besitzt folgende
Attribute:
app
AppDie App des aufgerufenen Anzeigetemplates.
record
Record oderNone
Der über die URL mitgegebene Datensatz.
version
StringDie Version der LivingAPI die zur Erzeugung sämtlicher Objekte verwendet wurde.
platform
StringDer Name für die installierte Version von LivingApps. Auf http://my.living-apps.de ist dies z.B.
"LivingApps"
, auf http://my.leadair.de"LeadAir"
.hostname
StringDer Hostname des LivingApps-Server (also beispielsweise
my.living-apps.de
odermy.leadair.de
).user
User oderNone
Der aktuell eingeloggte Benutzer.
user
istNone
, falls ein nicht authentifizierter Nutzer ein öffentliches Template nutzt.lang
StringDie zu verwendende Sprache (d.h. in dieser Sprache sollten die Ausgaben in einem Anzeige-Template erzeugt werden). Wenn ein Benutzer eingeloggt ist, ist dies die Sprache des Benutzers (ansonsten Standard-Sprache der LivingApp-Platform:
"de"
für Deutsch). Dieses Attribut kann geändert werden (z.B. wenn wegen einesAccept-Language
-Headers eine andere Sprache verwendet werden soll).In Formular-Templates ist
globals.lang
die Sprache der Formularvariante (nicht die bevorzugte Sprache des eingeloggten Benuzters).p_<identifier>
AppParameter„Shortcut“-Attribute für die
AppParameter
-Objekte der App. Beispielsweise istglobals.p_beispiel
äquivalent zuglobals.app.p_beispiel
(und dies wiederum zuglobals.app.params.beispiel
).pv_<identifier>
Objekt„Shortcut“-Attribute für die Werte von
AppParameter
-Objekten der App.globals.pv_beispiel
äquivalent zuglobals.app.pv_beispiel
(und im Endeffekt wiederum zuglobals.app.params.beispiel.value
).templates
Dictionary(String ➝ UL4-Template)Alle internen Templates, die in der aktuellen App definiert sind. Diese Templates können unter Interne Templates-Maske angelegt werden. Die Schlüssel des Dictionarys sind dabei der Identifizierer des Templates und die Werte die UL4-Templates selbst.
in derDamit ist es möglich, z.B. mehrfach benötigte Funktionalität in einem Template zu implementieren und diese Funktionalität von anderen Anzeige-Templates aus aufzurufen.
t_<identifier>
UL4-TemplateDie internen Templates stehen auch über diese „Shortcut“-Attribute zur Verfügung.
globals.t_gurk
is beispielsweise äquivalent zuglobals.templates.gurk
.datasources
Dictionary(String ➝ DataSource)Die Datenquelle des aufrufenden Templates
custom
ObjektDieses Attribut kann vom Benutzer für beliebige zusätzliche Informationen gesetzt werden.
x_<identifier>
ObjektEs werden beliebige zusätzliche Attribute unterstützt deren Namen mit
x_
beginnt.
mode
StringGibt an in welchem Typ von Template man sich gerade befindet bzw. in welcher Ablaufphase dieses Templates. Mögliche Werte sind:
form/new/init
Formular- und Update-TemplateDer erste Aufruf eines „Neu anlegen“-Formulars.
form/new/search
Formular-TemplateAjax-Suche für
applookup/choice
- bzw.multipleapplookup/choice
-Felder.form/new/failed
Formular-TemplateDas Ausfüllen des „Neu anlegen“-Formular ist fehlgeschlagen (wegen nicht ausgefüllter Pflichtfelder etc.).
form/new/presave
Formular-TemplateDas „Neu anlegen“-Formular wurde erfolgreich ausgefüllt. Der Datensatz wurde noch nicht gespeichert.
form/new/postsave
Formular-TemplateDas „Neu anlegen“-Formular wurde erfolgreich ausgefüllt. Der Datensatz wurde bereits gespeichert.
form/new/input
Update-TemplateDer Benutzer hat im „Neu“-Formular ein Eingabefeld geändert. Die Variable
identifier
enthält den Identifier des geänderten Feldes.form/new/geo
Update-TemplateIn einen „Neu“-Formular liegt Geo-Information vor über den Standort des Benutzers vor.
form/edit/init
Formular- und Update-TemplateDer erste Aufruf eines „Bearbeiten“-Formulars.
form/edit/search
Formular-TemplateAjax-Suche für
applookup/choice
- bzw.multipleapplookup/choice
-Felder.form/edit/failed
Formular-TemplateDas Ausfüllen des „Bearbeiten“-Formular ist fehlgeschlagen (wegen nicht ausgefüllten Pflichtfeldern etc.).
form/edit/presave
Formular-TemplateDas „Bearbeiten“-Formular wurde erfolgreich ausgefüllt. Der Datensatz wurde noch nicht gespeichert.
form/edit/postsave
Formular-TemplateDas „Bearbeiten“-Formular wurde erfolgreich ausgefüllt. Der Datensatz wurde bereits gespeichert.
form/edit/input
Update-TemplateDer Benutzer hat im „Bearbeiten“-Formular ein Eingabefeld geändert. Die Variable
identifier
enthält den Identifier des geänderten Feldes.form/new/geo
Update-TemplateIn einen „Bearbeiten“-Formular liegt Geo-Information vor über den Standort des Benutzers vor.
view/list
Anzeige-TemplateIn einem Anzeige-Template vom Typ „Liste“.
view/detail
Anzeige-TemplateIn einem Anzeige-Template vom Typ „Detail“.
view/support
Anzeige-TemplateIn einem Anzeige-Template vom Typ „Support“.
email/text
E-Mail-TemplateText-Version der E-Mail.
email/html
E-Mail-TemplateHTML-Version der E-Mail.
geo(…)
Methode(…) ➝ GeoDieser Methode gibt Geo-Objekte zurück. Sie besitzt zwei verschiedene Signaturen:
geo(lat, long)
Methode(Zahl, Zahl) ➝ GeoÜbergeben wird der Breitengrad
lat
und der Längengradlong
. Die fehlende Beschreibung des Ortes (z.B. eine Adresse) wird daraus ermittelt. Beispielsweise liefert:<?printx globals.geo(lat=49.9552129, long=11.5901843)?>
das Geo-Objekt:
<com.livinglogic.appdd.Geo lat=49.9552129 long=11.5901843 info='Markgrafenallee 44, 95448 Bayreuth, Deutschland' >
geo(info)
Methode(String) ➝ GeoÜbergeben wird eine Beschreibung des Ortes z.B. als Adresse. Der fehlende Längen- und Breitengrad wird daraus ermittelt. Beispielsweise liefert:
<?code info = "LivingLogic AG, Markgrafenallee 44, 95448 Bayreuth"?> <?printx globals.geo(info=info)?>
das Geo-Objekt:
<com.livinglogic.appdd.Geo lat=49.95559 long=11.59011 info='LivingLogic AG, Markgrafenallee 44, 95448 Bayreuth' >
current_geo()
Methode() ➝ GeoGibt den aktuellen Standort des Benutzers zurück (nur in Update-Templates).
seq()
Methode() ➝ IntegerJeder Aufruf dieser Methode gibt eine eindeutige, fortlaufende Nummer zurück.
seq
benötigt keine Argumente.dist(geo1, geo2)
Methode(Geo, Geo) ➝ ZahlGibt die Entfernung zwischen den zwei Geo-Koordinaten
geo1
undgeo2
in Kilometern zurück.
scaled_url(…)
Methode(…) ➝ StringDiese Methode liefert eine URL unter der die skalierte Version eines Bildes ausgeliefert wird. Zum Skalieren der Bilder wird imgproxy verwendet.
Die Methode unterstützt folgende Argumente:
image
File oder StringEntweder die absolute URL eines Bildes oder ein File-Objekt das ein Bild anthält. Dieses Bild wird skaliert.
type
String oderNone
Erlaubte Werte sind:
"fit"
,"fill"
,"fill-down"
,"force"
und"auto"
. Der Standardwert ist"fill"
.Für mehr Information siehe die imgproxy-Dokumentation.
width
Integer oderNone
Die Zielbreite des skalierten Bilder. Der Standardwert ist
None
.Für mehr Information siehe die imgproxy-Dokumentation.
height
Integer oderNone
Die Zielhöhe des skalierten Bildes. Der Standardwert ist
None
.width
undheight
dürfen nicht beideNone
sein.Für mehr Information siehe die imgproxy-Dokumentation.
enlarge
BoolSoll das Bild vergrößert werden, wenn es kleiner als die angegebene Zielgröße ist? Der Standardwert ist
True
.Für mehr Information siehe die imgproxy-Dokumentation.
gravity
String oderNone
Erlabute Werte sich
"no"
,"so"
,"ea"
,"we"
,"noea"
,"nowe"
,"soea"
,"sowe"
,"ce"
und"sm"
. Der Standardwert ist"sm"
.Für mehr Information siehe die imgproxy-Dokumentation.
quality
Integer oderNone
Wird dieses Argument angegeben, muß der Wert zwischen 0 und 100 liegen. Der Standardwert ist
None
.Für mehr Information siehe die imgproxy-Dokumentation.
rotate
Integer oderNone
Rotiert das Bild. Wird dieses Argument angegeben, muß der Wert ein ganzzahliges Vielfaches von 90 sein.
Für mehr Information siehe die imgproxy-Dokumentation.
blur
Zahl oderNone
Macht das Bild unschwarf.
Für mehr Information siehe die imgproxy-Dokumentation.
sharpen
Zahl oderNone
Schärft das Bild.
Für mehr Information siehe die imgproxy-Dokumentation.
format
String oderNone
Das Bildformat (PNG, GIF, JPEG usw.) des skalierten Bildes.
Für mehr Information siehe die imgproxy-Dokumentation.
cache
BoolWird
True
gegeben, so wird eine URL zurückgeliefert, die das skalierte Bild zwischenspeichert, sodaß es bei einen erneuten Aufruf nicht nochmal skaliert werden muß. BeiFalse
wird das Bild bei jeden Aufruf skaliert.
„Flash“-Meldungen werden dazu verwendet um dem Benutzer über das Ergebnis von Aktionen zu informieren, die er auf der vorhergehenden Seite durchgeführt hat. Z.B. kann es in einer Liste von Datensätzen zu jeden Datensatz einen Button geben, der über ein Formular/einen POST-Request diesen Datensatz ändert. Das UL4-Template das diese Änderung durchführt setzt dann eine Flash-Meldung und leitet den Benutzer wieder zur Listenansicht zurück. Die Listenansicht zeigt dann diese Flash-Meldung an. D.h. die Flash-Meldungen bleiben auch über Requests hinweg erhaltet.
flashes()
Methode() ➝ Liste(FlashMessage)flashes
gibt eine Liste von „Flash“-Meldungen zurück. Beim Aufruf vonflashes()
wird diese Liste automatisch geleert (d.h. der nächste Aufruf gibt eine leere Liste zurück).flash_info(title, message)
Methode(String, String oderNone
) ➝None
Erzeugt ein neues
FlashMessage
-Objekt von Typinfo
und fügt dieses zur Liste der „Flash“-Meldungen hinzu. Der Parametertitle
muß ein String sein,message
ein String oderNone
.flash_notice(title, message)
Methode(String, String oderNone
) ➝None
Erzeugt ein neues
FlashMessage
-Objekt von Typnotice
und fügt dieses zur Liste der „Flash“-Meldungen hinzu. Der Parametertitle
muß ein String sein,message
ein String oderNone
.flash_warning(title, message)
Methode(String, String oderNone
) ➝None
Erzeugt ein neues
FlashMessage
-Objekt von Typwarning
und fügt dieses zur Liste der „Flash“-Meldungen hinzu. Der Parametertitle
muß ein String sein,message
ein String oderNone
.flash_error(title, message)
Methode(String, String oderNone
) ➝None
Erzeugt ein neues
FlashMessage
-Objekt von Typerror
und fügt dieses zur Liste der „Flash“-Meldungen hinzu. Der Parametertitle
muß ein String sein,message
ein String oderNone
.
Die folgenden Methoden können dazu verwendet werden die Ausführung eines Templates zu protokollieren. Die erzeugten Meldungen sind beim jeweiligen Anzeige-Template unter Meldungen in aktueller Version zu finden.
Alle Methoden unterstützen eine beliebige Anzahl von Argumenten. Ein Argument,
das nicht vom Typ String ist wird mittels der UL4-Funktion repr
in einen
String konvertiert.
log_debug(*args)
Methode(**Objekt) ➝None
Erzeugt eine neue Meldung vom Typ
debug
.log_info(*args)
Methode(**Objekt) ➝None
Erzeugt eine neue Meldung vom Typ
info
.log_notice(*args)
Methode(**Objekt) ➝None
Erzeugt eine neue Meldung vom Typ
notice
.log_warning(*args)
Methode(**Objekt) ➝None
Erzeugt eine neue Meldung vom Typ
warning
.log_error(*args)
Methode(**Objekt) ➝None
Erzeugt eine neue Meldung vom Typ
error
.
In Anzeige-Templates haben die beiden Attribute request
und response
folgende Bedeutung:
request
HTTPRequestInformationen über die HTTP-Anfrage über die das Anzeige-Template aufgerufen wurde.
response
HTTPResponseInformationen über die HTTP-Antwort über die das Anzeige-Template ausgeliefert werden wird.
Innerhalb von Email-Templates exisistieren die beiden Attribute request
und
response
ebenfalls, haben jedoch eine andere Bedeutung:
request
None
Wird für Email-Templates nicht benötigt und ist immer
None
response
EmailResponseEnthält den Betreff der zu versendenden E-Mail sowie die E-Mail-Adressaten. Diese Informationen können vom E-Mail-Template geändert werden.
Die folgenden Methoden geben die relativen URLs der aus der Web-Oberfläche bekannten Navigations-Links zurück.
my_apps_url()
Methode() ➝ StringGibt die relative URL zur „Meine Apps“-Seite zurück.
Beispiel:
<?print app.my_apps_url()?>
erzeugt:
https://my.living-apps.de/apps.htm
my_tasks_url()
Methode() ➝ StringGibt die relative URL zur „Aufgaben“-Seite zurück.
Beispiel:
<?print app.my_tasks_url()?>
erzeugt:
https://my.living-apps.de/xist4c/web/aufgaben_id_393_.htm
catalog_url()
Methode() ➝ StringGibt die relative URL zur „Katalog“-Seite zurück.
Beispiel:
<?print app.catalog_url()?>
erzeugt:
https://my.living-apps.de/katalog/home.htm
chats_url()
Methode() ➝ StringGibt die relative URL zur „Chats“-Seite zurück.
Beispiel:
<?print app.chats_url()?>
erzeugt:
https://my.living-apps.de/chats.htm
profile_url()
Methode() ➝ StringGibt die relative URL zur „Profil“-Seite zurück.
Beispiel:
<?print app.profile_url()?>
erzeugt:
https://my.living-apps.de/profil/index.htm
account_url()
Methode() ➝ StringGibt die relative URL zur „Account“-Seite zurück.
Beispiel:
<?print app.account_url()?>
erzeugt:
https://my.living-apps.de/account.htm
logout_url()
Methode() ➝ StringGibt die relative URL des Logout-Links zurück.
Beispiel:
<?print app.logout_url()?>
erzeugt:
https://my.living-apps.de/login.htm?logout=standardCug