Variablen verwenden: Unterschied zwischen den Versionen
Fwf (Diskussion | Beiträge) (→Liste der Modifikatoren) |
Fwf (Diskussion | Beiträge) (→Liste der Modifikatoren) |
||
| Zeile 51: | Zeile 51: | ||
*'''.htmlEscape''': Escaped alle Zeichen die in HTML für die Formatierung vorgesehen sind. So dass eine Text-Variable z.B. im [[Einfache Meldung Element]] oder im [[Einfache Eingabe Element]] ohne den hacken "In der Meldung HTML-Steuerzeichen als Text anzeigen" ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) | *'''.htmlEscape''': Escaped alle Zeichen die in HTML für die Formatierung vorgesehen sind. So dass eine Text-Variable z.B. im [[Einfache Meldung Element]] oder im [[Einfache Eingabe Element]] ohne den hacken "In der Meldung HTML-Steuerzeichen als Text anzeigen" ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars()) | ||
*'''.md5''': Gibt die MD5-Quersumme eines Textes zurück. | *'''.md5''': Gibt die MD5-Quersumme eines Textes zurück. | ||
| + | *'''.lineBreak,X''': Fügt spätestens nach X Zeichen einen Zeilenumbruch in einen Text ein. Lange Wörter werden hierbei auseinandergeschnitten. Sollen lange würter beibehalten werden verwenden sie bitte '''.lineBreak,X,ja''' | ||
==Statische-Variablen== | ==Statische-Variablen== | ||
Version vom 12. Dezember 2022, 14:58 Uhr
In jedem Textfeld innerhalb von Funktionselementen können Variablen verwendet werden. Variablen dienen dazu, bestimmte Einstellung eines Funktionselements mit Werten zu belegen. Jeder Eingang und Requesteingang eines Funktionselementes kann durch eine Variable abgefragt und ausgelesen werden. Es gibt aber auch noch Variablen, die statische Werte zurückliefern wie z.B. Sitzungseigenschaften oder Datum bzw. Uhrzeiten.
Im Folgenden wird die Verwendungsweise der Variablen erklärt.
Inhaltsverzeichnis
Syntax
Variablen werden immer mit einem Fragezeichen gefolgt von einem Ausdruck in spitzen Klammern markiert. Dies sieht wie folgt aus:
?<Ausdruck>
INPUT-Variablen
Mit Hilfe von INPUT-Variablen können die Werte der grünen Funktionselementeingänge abgefragt werden. INPUT-Variablen folgen diesem Schema:
?<INPUT:Name>
Wobei der Name die Bezeichnung des Eingangs ist. Dieser ist ersichtlich wenn man mit der Maus über den entsprechenden Eingang fährt. Meist wird hier "0" verwendet. Ist der Wert am Eingang eine Ressource oder Datenstruktur kann auch direkt auf ein Feld oder ein Unterobjekt zugegriffen werden, in dem der Feldname innerhalb des Ausdrucks durch einen Doppelpunkt getrennt, angehängt wird.
?<INPUT:Name:Feld>
Wobei Feld dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.
REQUEST-Variablen
Mit Hilfe von REQUEST-Variablen können die Werte der orangen Funktionselementeingänge abgefragt werden. REQUEST-Variablen folgen dem selben Schema wie INPUT-Variablen:
?<REQUEST:Name>
Wobei der Name die Bezeichnung des Requesteingangs ist. Dieser ist ersichtlich, wenn man mit der Maus über den entsprechenden Requesteingang fährt. Meist wird hier "option" verwendet. Ist der Wert am Requesteingang eine Ressource oder Datenstruktur, kann auch direkt auf ein Feld oder ein Unterobjekt zugegriffen werden, indem der Feldname innerhalb des Ausdrucks durch einen Doppelpunkt getrennt, angehängt wird.
?<REQUEST:Name>
Wobei Feld dann der entsprechende Attributsname (Spaltenbezeichnung in relationaler Tabelle) ist.
INPUT und REQUEST Modifikatoren
Die Darstellung von INPUT und REQUEST-Variablen kann mit Hilfe von Modifikatoren beeinflusst werden. So kann eine Zahl z.B. mit Vorlaufnullen versehen werden oder auch Leerzeichen von Texten abgeschnitten werden. Dies wird bewerkstelligt, indem man durch Punkt getrennt den entsprechenden Modifikator an den Ausdruck anhängt. Parameter für den Modifikator werden anschließend mit Komma angehängt.
?<INPUT:Name:Feld.Modifikator,Parameter1,Parameter2,ParameterN>
bzw. falls kein Feld vorhanden ist:
?<INPUT:Name:Modifikator,Parameter1,Parameter2,ParameterN>
Liste der Modifikatoren
- .pad,länge,string,richtung: Hiermit kann ein beliebiger Wert string je nach richtung ("left" oder "right") auf eine gewünschte länge gebracht werden. z.B. würde man mit ".pad,7,0,left" eine Zahl immer 7-stellig mit Vorlaufnullen formatieren.
- .format,dezimalstellen,zahlenformat: Hiermit kann eine Zahl mit einer Anzahl an dezimalstellen formatiert werden. Wenn als zahlenformat der wert "de" angegeben ist wird als Dezimaltrennzeichen ein Komma verwendet (mit "us" wird ein Punkt verwendet). z.B. ".format,2,de" wird die Zahl mit zwei Nachkommastellen angezeigt.
- .sub,startIndex,endIndex: Hiermit kann ein Ausschnitt eines Textes extrahiert werden. startIndex ist die Startposition beginnend bei 0, ab der alle Zeichen bis zum endIndex ausgegeben werden. Z.B. würde man mit ".sub,0,7" nur die ersten 7 Stellen eines Textes ausgeben. Bei dem Wort "hamburger" gibt ein ".sub,4,8" den Wert "urge" zurück. Bei dem Wort "smiles" gibt ein ".sub,1,5" den Wert "mile" zurück.
- .rtrim: Leerzeichen werden von rechts abgeschnitten.
- .ltrim: Leerzeichen werden von links abgeschnitten.
- .ltriml: Vorlaufnullen werden von links abgeschnitten.
- .trim: Leerzeichen werden von beiden Seiten abgeschnitten.
- .len: gibt die Anzahl an Zeichen aus, die der Text enthält.
- .size: gibt die Anzahl an Elementen aus, die in einer Liste vorhanden sind.
- .base64decode: Dekodiert einen Base64 Text zurück zu lesbarem Text.
- .base64encode: Kodiert einen Text in Base64.
- .decimalVal: Gibt immer eine Dezimalzahl zurück.
- .intVal: Gibt immer eine ganze Zahl zurück.
- .sqlEscape,dialekt: Escaped die Variable, so dass sie in Anführungszeichen bedenkenlos innerhalb eines SQL-Befehls verwendet werden kann, wobei dialekt der entsprechende SQL-Dialekt ist. Möglich sind "db2","postgre" und "mysql".
- .jsonEscape: Escaped die " (Anführungsstriche) so, dass die Variable in einem JSON-String verwendet werden kann ohne das die Struktur zerstört wird.
- .htmlEscape: Escaped alle Zeichen die in HTML für die Formatierung vorgesehen sind. So dass eine Text-Variable z.B. im Einfache Meldung Element oder im Einfache Eingabe Element ohne den hacken "In der Meldung HTML-Steuerzeichen als Text anzeigen" ausgegeben werden kann (in PHP wäre das Äquivalent htmlspecialchars())
- .md5: Gibt die MD5-Quersumme eines Textes zurück.
- .lineBreak,X: Fügt spätestens nach X Zeichen einen Zeilenumbruch in einen Text ein. Lange Wörter werden hierbei auseinandergeschnitten. Sollen lange würter beibehalten werden verwenden sie bitte .lineBreak,X,ja
Statische-Variablen
Datum
- ?<DATE:Ymd>: Datum 8-stellig im Format JahrMontatTag
- ?<DATE:d.m.Y>: Datum 8-stellig im Format Tag.Monat.Jahr
- ?<DATE:c>: Allgemein gültiger Timestamp im Format yyyy-MM-dd'T'HH:mm:ss.SSSSSS
- ?<DATE>: Allgemein gültiger Unix-Timestamp (Sekunden seit dem 1.1.1973)
- ?<DATE:DB2>: Datum gültig für DB2-Timestmp-Feldtypen
- ?<DATE:His>: Aktuelle Uhrzeit 6-Stellig im Format StundeMinuteSekunde
Sitzung
- ?<USERNAME>: Aktueller Benutzername
- ?<SESSION:mobile>: Mobile Oberfläche (true/false)
- ?<SESSION:gui.profile>: Gui-Profil (classic-de, crisp-en, web-material-de...)
- ?<SESSION:guiType>: (FWFDESKTOP/FWFMODERN)
- ?<SESSION:language>: Sprache (de-DE, en-US,...)
- ?<SESSION:accept>: Akzeptierte mime-Types (z.B. */*)
- ?<SESSION:accept-encoding>: Kommagetrennte Encodings (z.B. 'gzip, deflate')
- ?<SESSION:accept-language>: Akzeptierte Sprache (z.B. de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7)
- ?<SESSION:appCodeName>: Name der anzeigenden app (z.B. Mozilla)
- ?<SESSION:appName>: Name der App(z.B. Netscape)
- ?<SESSION:appVersion>: Browserversion (z.B. 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36)
- ?<SESSION:browser.isChrome>: Chrome-Browserweiche (true/false)
- ?<SESSION:browser.isCordova>: App-Browserweiche (true/false)
- ?<SESSION:browser.isEdge>: Edge-Browserweiche (true/false)
- ?<SESSION:browser.isEdgeChromium>: Edge-Chromium-Browserweiche (true/false)
- ?<SESSION:browser.isFirefox>: Firefox-Browserweiche (true/false)
- ?<SESSION:browser.isIE>: Internet-Explorer-Browserweiche (true/false)
- ?<SESSION:browser.isOpera>: Opera-Browserweiche (true/false)
- ?<SESSION:browser.isSafari>: Safari-Browserweiche (true/false)
- ?<SESSION:connectionType>: Verbindungstype (z.B. 4g)
- ?<SESSION:cookieEnabled>: Cookies aktiviert (true/false)
- ?<SESSION:host>: IP und Port des FWF-Servers (z.B: 192.168.0.1:8084)
- ?<SESSION:location.hash>: Hash der aktuellen URL (z.B. #123|{"0":"abc"})
- ?<SESSION:location.host>: Hostname/IP des Servers, was eingegeben wurde (z.B: fwf.ihredomain.tld)
- ?<SESSION:location.hostname>: Hostname des Servers (z.B: fwf.ihredomain.tld)
- ?<SESSION:location.href>: URL des Servers (z.B: https://fwf.ihredomain.tld/fwfDeskto/index.html)
- ?<SESSION:location.origin>: Region des Servers (z.B: https://fwf.ihredomain.tld)
- ?<SESSION:location.pathname>: Pfad des Servers (z.B: /fwfDesktop/)
- ?<SESSION:location.port>: Port des Client-Aufrufs (z.B: *BLANK=80, 8084)
- ?<SESSION:location.protocol>: Protokoll des Aufrufs (z.B: http:, https:)
- ?<SESSION:onLine>: Gibt an, ob der Benutzer Internet-Verbindung hat (true/false)
- ?<SESSION:original-remote-addr>: IP des Clients (falls proxy vorhanden, Proxy-IP)
- ?<SESSION:platform>: Plattform des Clients
- ?<SESSION:location.product>: Browser-Product (z.B. Gecko)
- ?<SESSION:refer>: Weitergeleitet von (z.B. weitergeleitete Webseite)
- ?<SESSION:remote-addr>: IP des Clients (falls proxy vorhanden ip des x-forwarded-for)
- ?<SESSION:userAgent>: Browser (z.B. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36)
- ?<SESSION:vendor>: Hersteller des Browsers (z.B: Google Inc.)
- ?<SESSION:x-forwarded-for>: Client-IP falls Proxy vorhanden
Technisch
- ?<FUNCTIONID>: Id der aktuellen Funktion
- ?<APPID>: Mandantennummer
Umgang mit Files
Dateien haben spezielle Felder die deren Inhalt beschreiben:
- ?<INPUT:0:name>: Der Dateiname der Datei
- ?<INPUT:0:size>: Die Größe der Datei in Bytes
- ?<INPUT:0:originalName>: Der Uploadname der Datei
- ?<INPUT:0:md5>: Die MD5-Quersumme der Datei
- ?<INPUT:0:content>: Der Inhalt der Datei
- ?<INPUT:0:b64content>: Der Inhalt der Datei base64-encodiert. (Nützlich für Bild Element)
- ?<INPUT:0:originalExtenstion>: Die Dateiendung des OriginalName's
- ?<INPUT:0:extenstion>: Die Dateiendung der Namens
- ?<INPUT:0:contentType>: Der MIME-Type der Datei (nicht immer korrekt)