Benutzer-Werkzeuge

Webseiten-Werkzeuge


Plugin installed incorrectly. Rename plugin directory 'swiftmail.backup' to 'swiftmail'.
projekt:jsfundgrube:clean_variables

Variable säubern, um gültigen Template-Dateinamen zu erzeugen

Damit ein Template richtig erzeugt werden kann, muss ein gültiger Dateiname vergeben werden. Windows verbietet hier /, *, :, <, >, \ und ?. Außerdem werden ä, ö, ü und ß in TIM nicht richtig dargestellt.

Falls nun aber eine Variable für den Dateinamen verwendet wird, ist es möglich, dass eines dieser ungültigen Zeichen darin vorkommt. Deshalb wird eine weitere Prozessvariable (…_clean) angelegt, welche nur für den Dateinamen des Templates verwendet wird:

In der Webform oder Smartform (je nachdem, in welcher die Variable befüllt wird) ein verstecktes Textfeld anlegen, dadurch wird die Prozessvariable befüllt. ID und Name muss angepasst werden:

<input type="text" style="display:none" id="text_bezeichnung_clean" name="text_bezeichnung_clean"/>

In der Webform- oder Smartform-JavaScript-Datei (je nachdem, in welcher die Variable befüllt wird) in die onsubmit- oder onchange-Methode folgendes einfügen:

// slashes und umlaute aus bezeichnung rausfiltern, da diese für den pdf-dateinamen verwendet wird
var dirty = $("#text_bezeichnung")[0].value;
dirty = dirty.replace(/\\/g, " ").replace(/\//g, " ").replace(/\:/g, " ").replace(/\*/g, " ").replace(/\?/g, " ").replace(/\"/g, " ").replace(/\'/g, " ").replace(/\</g, " ").replace(/\>/g, " ").replace(/\|/g, " ").replace(/\ä/g, "ae").replace(/\ö/g, "oe").replace(/\ü/g, "ue").replace(/\ß/g, "ss").replace(/\./g, " ").replace(/\;/g, " ");
$("#text_bezeichnung_clean")[0].value = dirty;

Den Dateinamen des Templates ändern (von ${text_bezeichnung} in ${text_bezeichnung_clean}).

Im Prozess den Parameter des ActionHandlers anpassen (neuen Dateinamen des Templates angeben).

Neu deployen.

Cache löschen und testen.

projekt/jsfundgrube/clean_variables.txt · Zuletzt geändert: 2021/07/01 09:52 (Externe Bearbeitung)