Filetype Validation im Sitecore Backend

Szenario: Die Sitecore Webseite bietet ein Videofeld für Autoren an. Unsere Implementierung im Template sieht folgendermassen aus:

validation-template

(Klicke auf das Bild, um das Template anzusehen)

Wie können wir nun überprüfen, ob der Autor tatsächlich ein Video mit dem Dateityp mp4, ogg oder webm ausgewählt hat? Mit diesem Template kann er nämlich jede Datei, welche sich im Ordner Files in der Mediathek befindet, auswählen. Unser Ziel ist es, bei einem nicht erlaubten Dateitypen folgendes Resultat anzuzeigen:

validation-goal

Vorbereitungen

Dafür benötigen wir einen Validator, welchen wir in C# implementieren. Das Ganze habe ich abstrahiert, damit nicht nur Videovalidatoren, sondern ganz einfach auch individuelle Validatoren erstellt werden können. Die abstrakte und die zugehörige implementierende Klassen sehen etwa folgendermassen aus (die zu erklärenden Stellen habe ich kommentiert):

Nun müssen wir eine Field Rule erstellen. Erstelle Sie in

sitecore/System/Settings/Validation Rules/Field Rules

(Zum Vergrössern klicken)

Zur Veranschaulichung habe ich noch mehrere Validatoren hinzugefügt und diese in einem Ordner gruppiert. Der wichtigste Part ist die Referenzierung auf die Klasse und das Assembly im Feld „Type“.

Anwendung

Nun können wir diese Regel ganz einfach anwenden. Wähle dazu das Feld vom Template aus und füge die Regel zur Validation Bar Section hinzu:

Klicke das Bild an, um es vergrössert anzuzeigen.

(Klicke das Bild an, um es vergrössert anzuzeigen)

Das war es auch schon. Falls der Autor nun einen falschen (zum Beispiel .wmv, wie im Bild) auswählt, erhält er folgendes Feedback:
validation-goal
validation-errormsg
Wählt er hingegen eine korrekte Datei aus, kann er das Item ohne Probleme abspeichern und publizieren:

validator-jupii

Zusammenfassung

Es braucht nicht viel Code und auch wenig Konfiguration in Sitecore, um einen solchen Validator bereit zu stellen. Dank der Abstrahierung ist es auch sehr einfach, weitere Dateitypen zu prüfen.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>