Feldspezialoptionen über SSO steuern
Über den optionalen SSO-Parameter field_options kann ein anmeldendes System die Feldspezialoptionen einzelner Personalisierungsfelder beim Login vorgeben. Damit lässt sich dasselbe Design für unterschiedliche Anmeldungen unterschiedlich formatieren, ohne das Design selbst zu ändern.
Aktuell betrifft das die Nummernformatierung (Telefonnummern und andere numerische Felder).
Der Parameter wird zusammen mit den übrigen SSO-Daten übergeben, so wie auch pers_data.
Voraussetzungen
Das SSO-Modul muss in den Shop-Einstellungen aktiviert sein.
Am Design-Feld selbst ist keine zusätzliche Konfiguration nötig. Die im Design hinterlegte Regel gilt weiterhin als Vorgabe.
Wird für ein Feld nichts übergeben, bleibt die Einstellung des Designs unverändert bestehen.
Aufbau des Parameters
field_options ist ein JSON-Objekt. Die äußeren Schlüssel sind die Feldnamen aus dem Design – Groß- und Kleinschreibung müssen übereinstimmen. Darunter stehen die Optionen, die für dieses Feld gesetzt werden sollen.
{
"Telefon": { "numberFormat": "telephoneStandard" },
"Telefax": { "numberFormat": "faxStandard" },
"Mobil": { "numberFormat": "custom", "numberFormatMask": "XXXX XXX XXXX" },
"Durchwahl": { "numberFormat": "off" }
}
Ein Feld, das nicht aufgeführt ist, bleibt unverändert.
Verfügbare Optionen
numberFormat
Legt die Formatierungsregel fest und aktiviert die Formatierung für dieses Feld. Angegeben wird der Schlüssel der Regel oder ihre Nummer.
Schlüssel | Nr. | Bezeichnung |
|---|---|---|
| 0 | Standard-Zweierblöcke (von rechts) |
| 1 | Zweierblöcke von rechts (ab mehr als 3 Ziffern) |
| 2 | Unformatiert (Zusammenhängend) |
| 3 | Zweier- oder Dreierblöcke (von links) |
| 4 | Zweier- oder Dreierblöcke (von rechts) |
| 5 | Spezialformat 3-2-3 |
| 6 | DIN 5008 (International) |
| 7 | Dreierblöcke mit Restausgleich |
| 8 | Telefon Standard (2-3-3-3) |
| 9 | Telefon Sondernummern (2-1-4-4) |
| 10 | Fax Standard (2-4-2-4) |
| 11 | Freies Format (Musterbasiert) |
Was die einzelnen Regeln bewirken, steht unter Formatierung von Telefonnummern.
Der Schlüssel block3right ist historisch gewachsen. Die Regel bildet Zweierblöcke und lässt dreistellige Nummern unverändert – der Name beschreibt das nicht.
Zusätzlich lässt sich die Formatierung ein- und ausschalten, ohne die Regel zu wechseln. In diesem Fall gilt weiterhin die im Design hinterlegte Regel.
Wirkung | Akzeptierte Werte |
|---|---|
Formatierung aus |
|
Formatierung an, mit der Regel aus dem Design |
|
numberFormatMask
Das Muster für das freie Format. Jedes X steht für eine Ziffer, alle anderen Zeichen werden unverändert übernommen, zum Beispiel +XX XXX XXXXXXX.
Wird ein Muster übergeben, setzt das die Regel automatisch auf custom und aktiviert die Formatierung – numberFormat muss dafür nicht zusätzlich angegeben werden.
Ein Muster ohne X hat keine Wirkung und wird ignoriert.
numberFormatAlignment
Leserichtung des Musters: left oder right. Wirkt nur zusammen mit numberFormatMask.
Bei left wird das Muster von vorn gefüllt, bei right von hinten. right ist sinnvoll, wenn das Ende der Nummer – etwa die Durchwahl – immer gleich aussehen soll.
Schreibweise
Bei den Werten spielen Groß- und Kleinschreibung sowie umgebende Leerzeichen keine Rolle. telephoneStandard, TelephoneStandard und telephonestandard führen zum selben Ergebnis.
Bei den Optionsnamen dagegen zählt die Schreibweise genau: numberFormat, numberFormatMask und numberFormatAlignment müssen exakt so geschrieben werden. Ein abweichend geschriebener Optionsname wird nicht erkannt.
Auch die Feldnamen müssen mit der Schreibweise im Design übereinstimmen. Führende und abschließende Leerzeichen werden dabei ignoriert.
Ein Wert, der keiner Regel zugeordnet werden kann, wird übergangen. Es gilt dann die Einstellung aus dem Design.
Enthält field_options insgesamt keine erkennbare Option – etwa weil alle Optionsnamen falsch geschrieben sind –, wird die Anmeldung mit einem Fehler abgewiesen. Beim Einrichten einer neuen Anbindung lohnt daher ein Test mit einem einzelnen, sicher korrekten Feld.
Wenn mehrere Optionen zusammentreffen
Ein übergebenes Muster setzt die Regel auf das freie Format. Wird zusätzlich ein numberFormat mit einer anderen Regel übergeben, gewinnt diese Regel – das Muster bleibt dann wirkungslos:
{ "Telefon": { "numberFormat": "din5008", "numberFormatMask": "XX XX XX" } }Hier greift DIN 5008, nicht das Muster. Soll das Muster wirken, entweder numberFormat weglassen oder auf custom setzen.
Beispiele
Ein Feld auf ein anderes Format setzen:
{ "Telefon": { "numberFormat": "din5008" } }Dasselbe über die Regelnummer:
{ "Telefon": { "numberFormat": "6" } }Ein eigenes Muster vorgeben – die Regel wird dabei automatisch auf das freie Format gesetzt:
{ "Telefon": { "numberFormatMask": "+49 (XXX) XXX-XXXX" } }Muster von hinten füllen:
{
"Telefon": {
"numberFormatMask": "XXXX-XX",
"numberFormatAlignment": "right"
}
}Die Formatierung für ein einzelnes Feld abschalten, obwohl das Design sie vorsieht:
{ "Durchwahl": { "numberFormat": "off" } }Mehrere Felder in einer Anmeldung:
{
"Telefon": { "numberFormat": "din5008" },
"Telefax": { "numberFormat": "faxStandard" },
"Mobil": { "numberFormat": "custom", "numberFormatMask": "XXXX XXX XXXX" }
}Login-Code-Assistent
Innerhalb der Feldspezialoption “Telefonnummernformatierung” steht bei aktivem SSO-Modul ein Assistent zur Verfügung, der einen passenden Login-Code für das jeweilige Feld erzeugt. Damit lässt sich der Parameter zusammenstellen, ohne ihn von Hand zu schreiben.