Dynamische Formulare im CMS FirstSpirit mithilfe von Regeln

Das CMS FirstSpirit bietet dem Entwickler die Möglichkeit Formulare, mithilfe von Regeln, dynamisch zu gestalten. In diesem Blogartikel möchte ich auf diese Regeln eingehen. Was sind Regeln überhaupt? Wie sind diese Regeln aufgebaut? Und als Beispiel zeige ich wie man die Metadaten im Inhaltsbereich ausblendet.

 

Was sind Regeln und was ermöglichen sie?

Regeln sind kurze Bedingungen für Formularfelder in FirstSpirit. Diese werden in einem seperaten Reiter bei der Vorlagenentwicklung eingebunden.

Wie schon im Titel geschrieben dienen die Regeln dazu das Formular dynamischer zu machen. Dynamischer bedeutet zum Beispiel das andere Formularfelder angezeigt werden sollte das Formular in einem anderen Kontext aufgerufen werden. Oder das nach dem Ausfüllen von bestimmten Feldern andere zu Pflichtfeldern werden, da diese vielleicht dann benötigt werden. Weiterhin ermöglicht es auch vor dem Speichern die Auswertung von Eingabefeldern. Zum Beispiel darf in einem Eingabefeld die Zahl nicht größer als 1000 sein. Diese Überprüfung kann schon vor dem Speichern durch eine Regel abgeprüft werden und führt somit nicht zu Fehlern in der späteren Ausgabe.

 

Wie ist eine Regel aufgebaut?

Für alle Regeln gibt es einen festen Aufbau. Eine Regel setzt sich aus den fünf folgenden Punkten zusammen:

  1. Ausführungszeitpunkt bestimmen
  2. Vorbedingung definieren
  3. Werteermittlung
  4. Definierung der Handlungsanweisung
  5. Validierung

Punkte „2. Vorbedingung definieren“ und „5. Validierung“ sind beim Aufbau optional und müssen also nicht in einer Regel definiert werden. Alle Punkte werden von einem <RULE>-Tag umschlossen und sollen für ein Formular mehrere, voneinander unabhängige Regeln definiert werden, wird alles in einer Regeldefinition zusammen gefasst und von einem <RULES>-Tag umschlossen. Hier ein Beispiel wie eine Regeldefinition mit mehreren Regeln für ein Formular aussehen kann.

Was es mit dem Ausführungszeitpunkt auf sich hat wird im nächsten Abschnitt beschrieben. Vorbedingungen sind Eigenschaften des Formularelements oder des ganzen Formulars. Eine Vorbedingung wäre zum Beispiel wenn ein bestimmtes Feld gefüllt wird. Alle Schritte einer Regeldefinition werden nur durchlaufen wenn die Vorbedingung erfüllt ist. Welchen Wert das Feld aus der Vorbedingung haben darf wird in der Werteermittlung beschrieben. Zum Beispiel ob ein Feld nicht mehr als fünf Zeichen enthalten darf oder ob eine Checkbox gesetzt wurde. Und tritt dieser Fall dann ein wird die Handlungsanweisung ausgeführt. In dieser wird beschrieben was in dem Fall zu tun ist. Wurde die Checkbox zum Beispiel angeklickt soll sich ein weiteres Formularfeld öffnen weil noch ein weiterer Wert dann notwendig ist. In dieser Handlungsanweisung können dann noch Felder validiert werden. Diese Validierung muss aber einem bestimmten Formularfeld zugeordnet sein. Dies wird über einen <PROPERTY>-Tag erreicht. Diese Validierung ist eine bestimmte Handlungsanweisung welche ausgeführt wird solange die Bedingung, welche in einem <WITH>-Abschnitt definiert wurde, nicht erfüllt ist.

 

Wann werden diese Regeln ausgewertet?

Wann diese Regeln ausgeführt werden, kann man beim Regel schreiben selbst definieren oder es greift der Standard von FirstSpirit. Der Standard von FirstSpirit bedeutet, dass die Regeln beim Bearbeiten des Formulars ausgeführt werden, zum Beispiel bei der Eingabe von Zeichen oder der Auswahl eines Wertes. Das passiert in Echtzeit. Sollte man also ein per Regel verbotenes Zeichen in ein Feld eintragen wird dieses sofort als fehlerhaft angezeigt.

Wenn man selbst den Zeitpunkt für die Auswertung einer Regel festlegen möchte, weil diese Regel nur einmalig ausgeführt werden soll, macht man das am Anfang einer Regel mit dem optionalen Attribut „when“. Dann kann man bestimmen, ob die Regel erst beim Speichern ausgeführt wird oder sogar direkt wenn man den Bearbeitungsmodus startet bzw. eine neue Seite oder Datensatz initial anlegt. Der normale <RULE>-Tag würde dann wie folgt aussehen: <RULE when=“ONSAVE“>…</RULE>

 

Beispiel „Ausblenden der Metadaten im Inhaltsbereich von FirstSpirit“

In der Grundfunktion von FirstSpirit ist es möglich Metadaten von Seiten auch im Inhaltsbereich zu pflegen. Das ist aber meist ungünstig, da die Metadaten auch in der Struktur gepflegt werden können und somit nur unnötig redundant vorhanden wären. Aus diesem Grund können wir mit Regeln die Metadaten im Inhaltsbereich deaktivieren.

Dazu gehen wir in die Vorlage der Metadaten in den Reiter „Regeln“. Dort wird dann folgende Regel eingebaut:

Zu erst wird hier geprüft in welchem Bereich wir uns gerade befinden. Dabei wären wir bei „sitestore“ im Strukturbereich oder bei „mediastore“ im Medienbereich. Damit hätten wir die Vorbedingung und auch den dazu gehörigen Wert ermittelt. Anschließend folgt die Handlungsanweisung. Diese wird ja nur ausgeführt wenn die Vorbedingung erfüllt ist, wir uns also im Struktur-, Medien- oder Vorlagenbereich befinden. Bei allen anderen wird diese Anweisung nicht ausgeführt.

Die Handlungsanweisung aktiviert dann nur die Sichtbarkeit eines bestimmten Formulars. In diesem Fall ist es das Formular für die Metadaten. Dank der Vorbedingung wird die Handlungsanweisung nicht ausgeführt wenn wir uns im Inhaltsbereich befinden. Also genau das was wir am Anfang erreichen wollten.

Hinweis: „#form“ bezieht sicht auf eine bestimmte Gestaltungskomponente. In unserem Fall haben wir um die ganzen Metadaten eine <CMS_GROUP> mit dem Namen „cg_metadata“. Diese ganze Gruppe wird dann ausgeblendet oder eingeblendet. So sieht dann die Ausgabe aus:

Metadaten der Struktur

 

Metadaten des Inhalts

 

Fazit

Wir haben besprochen was Regeln überhaupt sind und wozu wir diese verwenden können. Weiterhin haben wir uns den groben Aufbau von Regeln angesehen. Und am Beispiel „Ausblenden der Metadaten im Inhaltsbereich von FirstSpirit“ eine eigene konkrete Regel betrachtet

Regeln sind ein mächtiges Werkzeug um Formulare dynamischer zu gestalten und können dazu dienen, den Redakteur vielleicht nicht gleich am Anfang mit einem riesigen Formular zu erschlagen. Nutzt Regeln also um eure Formulare von Anfang übersichtlicher zu machen und dem Redakteur die Arbeit zu erleichtern.

Schreibe einen Kommentar

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