Hilfe & Wissen Welche Template Funktionen gibt es?
Welche Template Funktionen gibt es?
kjm.landingpage
Beispiel
kjm.landingpage("landingpagename")
Definition und Benutzung
kjm.landingpage gibt die passende URL einer Landingpage zurück. Ist ein UserGuid oder eine MailingID gesetzt, dann wird die automatisch der URL hinzugefügt.
Syntax
kjm.landingpage(landingpage_name)
kjm.quote
Beispiel
kjm.quote("string")
Definition und Benutzung
kjm.quote urlencoded den String. "hallo "
wird konvertiert zu "hallo%20"
Syntax
kjm.quote(string)
kjm.quote_plus
Beispiel
kjm.quote_plus("string")
Definition und Benutzung
kjm.quote_plus wie quote aber ersetzt auch ' ' mit '+', wie man es für HTML form values braucht. Plus signs im Orginal string werden escaped, es sei denn sie können sicher inkludiert werden. Es konvertiert auch '/' zu '%2F'
Syntax
kjm.quote_plus(string)
kjm.json_dumps
Beispiel
kjm.json_dumps({"key": "value"})
<script>
var test = [[raw kjm.json_dumps("test") ]];
</script>
wird zu
<script>
var test = "test";
</script>
Definition und Benutzung
kjm.json_dumps verwandelt das Object in einen json String. Wenn es ein String ist dann wird es so gedumped das man es als Javacsript variable verwenden kann. Wenn man es als Variable verwendet werden soll, muss man raw
verwenden, um das Autoescape Feature abzuschalten.
Syntax
kjm.json_dumps(object_or_string)
kjm.json_loads
Beispiel
kjm.json_loads('{"key": "value"}')
Definition und Benutzung
kjm.json_loads lädt einen Json string in ein Object
Syntax
kjm.json_loads(string)
kjm.str
Beispiel
kjm.str(10)
Definition und Benutzung
kjm.str Gibt ein String zurück.
Syntax
kjm.str(strOrIntOrObject)
kjm.modulo
Beispiel
kjm.modulo(9,4)
Definition und Benutzung
kjm.modulo Gibt ein Integer zurück: a % b. Versucht die Inputs in integer umzuwandeln (default=0).
Syntax
kjm.modulo(strOrInt,strOrInt)
kjm.arguments
Beispiel
kjm.strOrIntOrObject()
<script>
var request = [[raw kjm.json_dumps(kjm.arguments())]];
</script>
wird für `http://youurl/l/landingpageguid.html?test=10` zu:
<script>
var request = {"method": "GET", vars: {"test": "10"}}
</script>
Definition und Benutzung
kjm.arguments gibt die GET oder POST argumente zurück.
Syntax
kjm.arguments()
kjm.signature
Beispiel
var sig = [[raw kjm.json_dumps(kjm.signature('POST', '/signature/users', 'email=&firstname=&cnf=0&user1=demo&x_kjm_fix=cnf,user1,listnum&listnum=2')) ]];
kommt folgende HTML zurück
var sig = {"method": "POST", "uri": "http://yoururl/apisignature/signature/users", "params": {"cnf": "0", "email": "", "firstname": "", "listnum": "2", "user1": "demo", "x_kjm_fix": ["cnf", "user1", "listnum"], "x_kjm_sig": "asignatureforediting", "x_kjm_time": 1526652960}};
In diesem Fall kann ein User erstellt werden mit dem Feld `email,firstname` welches editierbar ist und `cnf,listnum,user1` müssen auf den Werten gesetzt bleiben.
Definition und Benutzung
kjm.signature gibt die Passende Signature zurück um User mit bestimmten Variablen anzulegen oder upzudaten.
Syntax
kjm.signature(method, base_url, params)
kjm.environment
Beispiel
kjm.environment()
Definition und Benutzung
kjm.environment Gibt das aktuelle Environment zurück. Als Rückgabeparameter gibt es mailing
, readonline
, landingpage
Syntax
kjm.environment()
kjm.strip
Beispiel
kjm.strip("hallo ")
Definition und Benutzung
kjm.strip Strippt die Leerzeichen vorne unt hinten weg.
Syntax
kjm.strip(string)
kjm.split
Beispiel
kjm.split("ha.llo", ".")
Definition und Benutzung
kjm.split splittet den string
anhand des delimiter
Syntax
kjm.strip(string, delimiter)
kjm.ident
Beispiel
kjm.ident(%_f%).get('firstname')
Definition und Benutzung
kjm.ident gibt einfach das Object zurück und man kann dann weitere funktionen verwenden.
Syntax
kjm.ident(object)
kjm.enumerate
Beispiel
[for (%_counter%,%_f%) in kjm.enumerate(['a','b']) ]
%_counter%: %_f%
[/for]
Definition und Benutzung
kjm.enumerate enumeriert ein Array und gibt gleichzeitg noch zusätzlich den counter aus
Syntax
kjm.enumerate(array)
kjm.mark_last
Beispiel
[for (%_f%, %_is_last%) in kjm.mark_last(['a','b']) ]
%_is_last%: %_f%
[/for]
Definition und Benutzung
kjm.mark_kast markiert das letzte Element eines Arrays.
Syntax
kjm.mark_last(array)
kjm.capwords
Beispiel
kjm.capwords("max mustermann ") => "Max Mustermann"
Definition und Benutzung
kjm.capwords stript leerzeichen am Anfang und Ende und verwandelt alle Wörter in Großschreibung.
Syntax
kjm.capwords(string)
rss_feed
Beispiel
[for %_f% in kjm.rss_feed('https://www.businessinsider.de/wirtschaft/feed/', ['rss', 'channel', 'item'], 3)]
[[ kjm.ident(%_f%).get('title').get('$') ]]
[/for]
Definition und Benutzung
kjm.feed holt einen Feed von der url, parsed then path, und der letzte Parameter ist wieviele FeedElement geholt werden sollen. Alle Parameter sind Pflicht gibt es weniger Element als limit dann werden weniger geholt. In dem Beispiel sieht der Feed folgendermaßen aus. Der Path zu dem Item ist also ['rss', 'channel', 'item']
<rss>
<channel>
<item>
<title>First</title>
</item>
<item>
<title>Second</title>
</item>
</channel>
</rss>
Syntax
kjm.rss_feed(url, path, limit)
kjm_empty
Beispiel
[[ kjm.empty(kjm.ident(%_test%).append('newitem')) ]]
Definition und Benutzung
Gibt einen leeren String zurück.
Syntax
kjm.empty(variable_or_function)
kjm.change_var
Beispiel
[[ kjm.empty(kjm.change_var(%_test%,0,'newvalue')) ]]
Definition und Benutzung
Ändert den Wert einer Liste oder Dictionary
Syntax
kjm.change_var(list_or_dict, index, value)
kjm.get_var
Beispiel
[[ kjm.get_var(%_test%, 0) ]]
Definition und Benutzung
Gibt den Wert einer Liste oder Dictionary zurück. Bei Dictionaries kann auch kjm.ident(%dict%).get('as')
verwendet werden.
Syntax
kjm.get_var(list_or_dict, index)
kjm.lower
Beispiel
[[ kjm.lower(%_test%) ]]
Definition und Benutzung
Gibt den lowercase einer Variable zurück
Syntax
kjm.lower(var)
kjm.sha256
Beispiel
[[ kjm.sha256('test') ]]
Definition und Benutzung
Gibt den hexdigest einer sha256 Verschlüsselung zurück
Syntax
kjm.sha256(string)
kjm.sha256_digest
Beispiel
[[ kjm.sha256_digest('test') ]]
Definition und Benutzung
Gibt den digest einer sha256 Verschlüsselung zurück. Achtung hat den type bytes
Syntax
kjm.sha256_digest(string)
kjm.substr
Beispiel
[[ kjm.substr('test', 0,1) ]]
Definition und Benutzung
Gibt den Substring zurück
Syntax
kjm.substr(string, start, length)
kjm.sublist
Beispiel
[[ kjm.sublist(%list%, 0,1) ]]
Definition und Benutzung
Gibt eine subliste zurück
Syntax
kjm.sublist(list, start, length)
kjm.len
Beispiel
[[ kjm.len(%list%) ]]
Definition und Benutzung
Gibt die Länge des Strings oder liste zurück. Ist es kein String oder Liste gibt er -1 zurück
Syntax
kjm.len(str_or_list)
kjm.b64encode
Beispiel
[[ kjm.b64encode(%list%) ]]
Definition und Benutzung
Encodiert einen String base64
Syntax
kjm.b64encode(str_or_bytes)
kjm.iso8601_to_datetime
Beispiel
[[ kjm.iso8601_to_datetime(%datesent%).strftime('%Y-%m-%d %H:%M') ]]
Definition und Benutzung
Convertiert einen ISO_8601 String zur lokal datetime unseres Servers
Syntax
kjm.iso8601_to_datetime(iso8601_string)
kjm.tuple
Beispiel
[[ kjm.tuple(1,2,3,4) ]]
Definition und Benutzung
Gibt ein Tuple zurück
Syntax
kjm.tuple(*variables)
kjm.bonuscode
Beispiel
[[ kjm.bonuscode('gutschein') ]]
Definition und Benutzung
Gibt ein Bonuscode für den Type gutschein, für diesen User zurück, und reserviert ihn für diesen User
Syntax
kjm.bonuscode(type_of_bonuscode)
kjm.pub_date_to_datetime
Beispiel
[[ kjm.pub_date_to_datetime('Thu, 20 Oct 2022 04:00:00 GMT', 'Europe/Berlin').strftime('%Y-%m-%d %H:%M') ]]
Definition und Benutzung
Wandelt bsp. das pubDate eines rss_feeds in eine datetime object um. Die Standard Timezone wenn der 2 Parameter weggelassen wird, ist 'Europe/Berlin'.
Syntax
kjm.pub_date_to_datetime(pubdate_as_string, timezone_optional)
kjm.fetch_data
Beispiel
[[ kjm.get_var(kjm.fetch_data('https://price.api.to/items/12', ['Price'], 1, {"accept": "application/json", "Authorization":"Authorization"}), 0) ]]
Definition und Benutzung
Die Funktion kjm.fetchdata ruft den Inhalt einer URL ab und formatiert diesen in das JSON-Format um. Dabei unterstützt sie auch HTML und XML. Falls die API oder die URL JSON-Daten zurückgibt, muss der Header auf {"accept": "application/json"} gesetzt sein. In unserem speziellen Fall beziehen wir uns auf den Pfad ['Price'] für den Preiswert. Da immer ein Array zurückgegeben wird, verwenden wir kjm.getvar(var, 0), um das erste Element daraus zu extrahieren.
{"Price": 25.00, ....}
Syntax
kjm.fetch_data(url, path, limit, headers[optional])
kjm.format
Beispiel
kjm.format("%.2f", 2)
kjm.format("Hallo %s, wie geht es dir?", %firstname%)
Definition und Benutzung
Die Funktion konvertiert unterschiedliche Datenformate in Strings um. Im ersten Beispiel ergibt sich der String 2.00
als Ausgabe. Im zweiten Beispiel wird Hallo Nikolai, wie geht es dir?
erzeugt.
Syntax
kjm.format(format, path, limit, headers[optional])
kjm.replace
Beispiel
kjm.replace(".", ",", "2.00")
Definition und Benutzung
Ersetzt ein String durch einen anderen.
Syntax
kjm.replace(old, new, string)
kjm.uppper
Beispiel
kjm.upper("Pö") # PÖ
Definition und Benutzung
Gibt den selben String in Großbuchstaben zurück
Syntax
kjm.upper(string)
kjm.uuid4
Beispiel
kjm.uuid4() # '6e9cef43-5fe5-4bbf-9601-fe9330790178'
Definition und Benutzung
Gibt einnen UUID4 String zurück
Syntax
kjm.uuid4()
kjm.mailing
Beispiel
kjm.mailing # {'noLoop': '', 'id': 31699, 'listnum': 2, 'htcontent': '<html><body>Hallo <a href="https://ngonline.info/r/!uid138958ms!msgid.html">Test</a></body></html>', 'content': 'Hallo [[ kjm.mailing ]]', 'sendername': 'Test Sender', 'senderemail': 'dialog@kajomi.de', 'subject': 'sub', 'overview': {'selections': [{'type': 'AND', 'id': None, 'description': 'loadrule', 'selection': 'email ~ "%test%"'}], 'blacklists': [{'amount': 10, 'filename': 'filename', 'beschreibung': 'beschreib', 'timestamp': '2017-03-31T18:05:00Z', 'tabellenname': 'temp_acdf5d'}], 'whitelists': [], 'mailings': [], 'followups': [], 'blackselections': [], 'hasTracking': False, 'cnf': 1, 'readonline': True, 'attachments': []}, 'datesent': '2021-01-26T14:10:00Z', 'description': 'kajomi'}
Definition und Benutzung
Gibt das aktuelle Mailing zurück. So kann bsp. auf die Description zugegriffen werden
Syntax
kjm.mailing
kjm.type
Beispiel
kjm.type([]) # <class 'list'>
Definition und Benutzung
Gibt den Typ der Variable zurück
Syntax
kjm.type(variable)
kjm.determineforegroundcolor
Beispiel
kjm.determine_foreground_color('#000000') # #ffffff
Definition und Benutzung
Gibt die Vordergrundfarbe für eine Hintergrundfarbe zurück die am besten passt.
Syntax
kjm.determine_foreground_color(background_color)