You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/notification-center-pro/custom-tokens/examples/csv-attachment.de.md
+62-5Lines changed: 62 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -35,12 +35,12 @@ firstname,lastname,city
35
35
Das manuell zu tun ist schwierig, deswegen verfügt das Notification Center Pro über einen `csv` Twig-Filter:
36
36
37
37
```twig
38
-
{% set headers = [
38
+
{% set header = [
39
39
'firstname',
40
40
'lastname',
41
41
'city',
42
42
] %}
43
-
{{ headers|csv }}
43
+
{{ header|csv }}
44
44
{% set row = [
45
45
parsedTokens.form_firstname|default(''),
46
46
parsedTokens.form_lastname|default(''),
@@ -61,9 +61,66 @@ Namen zu geben, es als Datei-Token zu aktivieren und ihm den gewünschten Datein
61
61
62
62
Dieses Token kann nun benutzt werden, um bspw. das CSV einer Mail anzuhängen. Tada! 🎉
63
63
64
+
### Alle Tokens ausgeben
65
+
66
+
Wenn du einfach gerne alle Tokens ausgegeben hättest, ist das denkbar einfach:
67
+
68
+
```twig
69
+
{{ parsedTokens|keys|csv }} {# Nimmt nur die Keys als Header #}
70
+
{{ parsedTokens|csv }} {# Nimmt nur die Werte als Reihe #}
71
+
```
72
+
73
+
### Komplexere Aufgaben
74
+
75
+
Natürlich kannst du auch deutlich komplexere Aufgaben erfüllen. Wenn du bspw. nur die Formulardaten mit dem
76
+
passenden Formular-Token haben willst, dann bist du erstmal nur an allen `form_*` Tokens interessiert und willst
77
+
diese mit dem passenden `formlabel_*` ausstatten. Oder vielleicht willst du auch noch die Formulardaten anpassen und
78
+
Dinge berechnen oder ähnliches. Hier ein ausführliches Beispiel mit Kommentaren - kopiere dir einfach die Sachen
79
+
zusammen, die du brauchst!
80
+
81
+
```twig
82
+
{# Definieren wir zunächst zwei Arrays für die Kopfzeile und die Werte-Zeile#}
83
+
{% set header = [] %}
84
+
{% set row = [] %}
85
+
86
+
{% for token in rawTokens %}
87
+
{# So kannst du die Token filtern, die "form_" in ihrem Namen haben #}
88
+
{% if 'form_' in token.name %}
89
+
90
+
{% set headerValue = token.name %} {# So nimmst du den Token-Namen als Header #}
91
+
{% set headerValue = token.name|replace({'form_': ''}) %} {# oder möchtest du das "form_" aus dem Namen entfernen? #}
92
+
93
+
{# oder möchtest du das "form_" aus dem Token entfernen und den passenden Token-Wert aus "formlabel_*" nehmen? #}
94
+
{% set labelTokenName = token.name|replace({'form_': 'formlabel_'}) %}
95
+
{% if rawTokens.has(labelTokenName) %}
96
+
{% set headerValue = rawTokens.byName(labelTokenName).parserValue %}
97
+
{% else %}
98
+
{% set headerValue = token.parserValue %} {# wir behalten den ursprünglichen Token-Namen, wenn kein passendes „formlabel_*“-Token gefunden wurde (sollte nicht passieren) #}
99
+
{% endif %}
100
+
101
+
{% set header = header|merge([headerValue]) %} {# unseren transformierten Header-Wert als Header verwenden #}
102
+
103
+
104
+
{# unsere spezielle Transformation nur auf das Token "form_firstname" anwenden #}
105
+
{% if token.name is same as 'form_firstname' %}
106
+
{% set rowValue = token.value|upper %} {# nach Belieben transformieren, indem du Twig-Filter und -Funktionen auf den Rohwert anwendest (kann ein Array sein) #}
107
+
{% else %}
108
+
{% set rowValue = token.parserValue %} {# den ursprünglichen Parserwert beibehalten (ist immer ein String) #}
109
+
{% endif %}
110
+
{% set row = row|merge([rowValue]) %} {# unseren transformierten Wert als Zeilenwert verwenden #}
111
+
112
+
113
+
{% endif %}
114
+
115
+
{% endfor %}
116
+
{# Jetzt müssen wir nur noch die Arrays ausgeben und sie als CSV formatieren #}
117
+
{{ header|csv }}
118
+
{{ row|csv }}
119
+
```
120
+
64
121
{{% notice tip %}}
65
-
Der `csv`-Filter ist nicht Teil von Twig, sondern wird stattdessen vom Notification Center Pro bereitgestellt. Du
66
-
kannst auch mit einem anderen Trennzeichen arbeiten. Wenn du die Werte beispielsweise mit `;` trennen möchtest,
67
-
verwende `{{ row|csv(';') }}`. Der zweite und dritte Parameter können genutzt werden, um das "Enclosure" und
122
+
Der `csv`-Filter ist nicht Teil von Twig, sondern wird stattdessen vom Notification Center Pro bereitgestellt. Du
123
+
kannst auch mit einem anderen Trennzeichen arbeiten. Wenn du die Werte beispielsweise mit `;` trennen möchtest,
124
+
verwende `{{ row|csv(';') }}`. Der zweite und dritte Parameter können genutzt werden, um das "Enclosure" und
0 commit comments