EiSpec erstellen

Diverses

Damit Inhalte in Rocket verwaltet werden können, musst du eine Spezifikation oder eben eine Rocket Spec erstellen.

  1. EiSpec erstellen
  2. EiSpec verwalten
  3. EiSpec überprüfen

Unter der Abkürzung Ei verstehen wir Entity Integration. Entities können in unser CMS Rocket sehr einfach integriert werden. Wir sehen in dieser einfachen und modularen Integration einen der ganz grossen Vorteile von n2n gegenüber anderen CMS. In diesem Kapitel zeigen wir dir, wie du die im Rahmen des n2n Quickstarts erstellten Business Objects in Rocket Integrieren kannst.

EiSpec steht für Entity Integration Specification. Eine EiSpec dient zur Integration von Entities in Rocket.

EiSpec erstellen

Die EiSpec erstellen wir über den Hangar.

Bitte beachte, dass wir momentan am Hangar noch stark entwickeln. Die Verwendung des Hangars erfolgt auf eigene Gefahr und Verantwortung... Die hier vorgestellten Funktionen laufen recht stabil. Die restlichen Funktionalitäten sind mit höchster Vorsicht zu geniessen.

Starte den Hangar, indem du http://localhost/[pfad-zu-deinem-projekt]/hangar aufrufst. Wenn alles klappt, startet der Hangar. Er besteht aus drei Spalten. In der linken Spalte stehen die Entities (also unsere Business Objects). Hier werden auch unsere Entities aus qs\bo erkannt. Klicke auf alle drei mit der rechten Maustaste und wähle Generate EiSpec.

Der Hangar öffnet drei Fenster. Ausserdem wird in der rechten Spalte unter Specs (Rocket) Der Punkt qs mit den drei EiSpec von BlogArticle, BlogCategory und BlogComment erstellt.

EiSpec verwalten

Wenn die Fenster der EiSpecs noch nicht offen sind, klicke dazu unter Specs (Rocket) auf die entsprechenden Einträge.

Jede EiSpec hat fünf Sektionen: General, Fields (EiFields), Commands (EiCommands), Modificators und Filter.

General

Unter General legen wir den Namen fest. Wir müssen das in Einzahl und Mehrzahl tun. Wähle hier z.B. "Kommentar" für Einzahl und "Kommentare" für Mehrzahl.

Fields

Die Felder der EiSpec sind die Eigenschaften unserer Objekte, welche wir über das Rocket bearbeiten wollen. Füge nun alle Felder über Add auto EiField (x) an. Danach können wir die Felder verwalten, indem wir jedes einzelne anklicken. Die einzelnen Felder nennen wir EiField. Das EiField stellt sicher, dass Rocket die korrekten Eingabefelder zur Verfügung stellt. Der Hangar setzt eine sinnvolle id und erkennt in den meisten Fällen die Eigenschaften (Type Name) der EiFields automatisch korrekt. Am Typ musst du daher nichts ändern.

Eigenschaften der EiFields

Name der Eigenschaft Bedeutung
Label Label, wie das Feld in Rocket beschrieben wird.
Show in overview Bestimmt, ob dieses Feld in der Übersicht angezeigt wird. Um in der Übersicht nicht zu viele Felder zu haben, lohnt es sich, die unwichtigeren Felder hier zu deaktivieren!
Show in detail view Bestimmt, ob das Feld in der Detailansicht angezeigt wird.
Show in edit view Bestimmt, ob das Feld angezeigt wird, wenn der Eintrag bearbeitet wird.
Show in add view Bestimmt, ob das Feld angezeigt wird, wenn ein neuer Eintrag erstellt wird
Help Text Hier kannst du einen Hilfe Text eingeben, der dem Benutzer erklärt, welche Eingabe hier von ihm erwartet wird.
Constant Wenn true, kann dieses Feld nur beim Erstellen eines Eintrages bearbeitet werden. Danach nicht mehr.
Read only Wenn aktiv, kann das Feld vom Benutzer nicht verändert werden
Mandatory

Hier wird vom Benutzer eine Eingabe obligatorisch verlangt.

Felder, welche auf der Datenbank nicht NULL sein dürfen, müssen als Mandatory konfiguriert werden. Sonst gibt es eine Exception, wenn das Feld vom Benutzer in Rocket leer gelassen wird.
Draftable Bestimmt, ob das Feld in der Entwurfsansicht zur Verfügung steht
Maxlength (StringEiField) Bestimmt die maximale Länge des Feldes
Multiline (StringEiField) Bestimmt ob der Text in einem INPUT oder ein TEXTAREA Tag editiert werden soll.
Mode (WysiwygEiField) Bestimmt, ob der Wysiwyg-Editor nur mit wenigen (simple), mit den wichtigsten (normal) oder mit allen (advanced) Befehlen zur Verfügung gestellt wird.
Table Editing (WysiwygEiField) Tabellen stehen nur zur Verfügung, wenn dieses Feld aktiv ist.
BBcode (WysiwygEiField) Wenn aktiv, wird nicht HTML gespeichert, sondern BBCode
Link Configuration (WysiwygEiField) Um bestimmte Links einfacher zur Verfügung zu stellen, können hier Link Konfigurationen angefügt werden.
CSS (WysiwygEiField) Hier kann dem Wysiwyg-Editor ein CSS File mitgegeben werden, damit das Editing auch tatsächlich WYSIWYG ist.
Target Mask (toMany) Die Maske, die verwendet werden soll, wenn der Nutzer auf einen Relation-Link klickt.
Min (toMany) Minimale Anzahl verknüpfter Objekte
Max (toMany) Maximale Anzahl verknüpfter Objekte
Filtered (toMany) KEINE AHNUNG
Embedded Add Enabled (toMany) Wenn aktiv, kannst du die verlinkten Objekte im gleichen Screen bearbeiten wie deren Mutterelement.
Min Value (numeric) Kleinster erlaubter Eingabewert
Max Value (numeric) Höchster erlaubeter Eingabewert
Allowed Extensions (FieldEiField) Erlaubte Dateiendungen: so kann eingeschränkt werden, dass bei einem Feld nur bestimmte Dokumente hochgeladen werden dürfen.
Dimensions import mode (FieldEiField) Rocket stellt für die Bearbeitung von Bildern ein Zuschneide Tool zur Verfügung. Diesem Tool können Formate hinterlegt werden. Mit All possible dimensions schaut Rocket nach, welche Formate für dieses Feld schon verwendet wurden und stellt alle verwendeten zur Verfügung. Only for current images used dimensions stellt nur die Formate zur Verfügung, wo bereits eine Anpassung gemacht wurde.
Extra Thumb Dimensions (FieldEiField) Du kannst auch extra Dimensionen definieren und diese zur Verfügung stellen.
Check Image Resource Memory Wenn diese Box aktiv ist, prüft n2n vor dem Hochladen eines Bildes, ob genügend Speicherplatz zur Verfügung steht, um Formatänderungen durchzuführen. Nicht alle Webserver stellen genügend Rechenleistung bereit, um grosse Bilder zu berechnen.

Wie du feststellen kannst, stellt Rocket bereits sehr viele Optionen zur Verfügung, damit du in Rocket eine bequeme Verwaltung deiner Objekte sicherstellen kannst. Weitere Informationen zu den EiFields findest du in der Dokumentation. Das beste an Rocket ist aber, dass man die Funktionalitäten selber ergänzen kann. Darauf gehen wir aber im Quickstart nicht ein.

Ebenfalls kannst du hier die Reihenfolge der Felder anpassen.

Beachte, dass du das Feld ID nicht einfügen musst. Das ID-Feld wird von n2n automatisch korrekt befüllt und muss daher in Rocket nicht verwaltet werden können. Wenn du das ID Feld in Rocket trotzdem angezeigt haben willst, kannst du es als normales String Feld einfügen. Wir empfehlen dann aber, das Feld auf Read Only = true zu setzen.

Commands

Die EiCommands sind Operationen, welche du auf deine Objekte anwenden kannst. Die typischsten Commands sind:

  • Overview: Anzeige aller Objekte in einer Liste
  • Add: Erstellen eines Objektes
  • Detail: Detailanzeige eines Objektes
  • Edit: Bearbeitungsansicht eines Objektes
  • Delete: Löschen eines Objektes

Diese Commands hat Rocket für dich bereits vorbereitet. Klicke bei allen drei EiSpec auf Add registered Command (6). Es geht ein Fenster auf. In diesem werden oben die "Available Command Groups" angezeigt. Klicke auf List und es werden automatisch alle vorher beschriebenen Commands angefügt.

Selbstverständlich kannst du auch eigene EiCommands erstellen! Der Quickstart geht darauf aber nicht ein.
WICHTIG: in Hangar musst du deine Anpassungen immer wieder Speichern. Du kannst das mit CTRL S oder oben über den Save oder Save All Button.

Modificator

Mit Modificators können in Rocket spezifische Operationen vor oder nach bestimmten Commands ausgeführt werden. Der grosse Vorteil von Modificators ist, dass dazu der bestehende Command nicht ersetzt werden muss, sondern ergänzt werden kann. Im Rahmen des Quickstarts gehen wir nicht genauer auf Modificators ein.

Filter

Mit Filter können wir verschiedene Ansichten generieren. Auch auf Filter gehen wir nicht näher ein.

EiSpec überprüfen

Sämtliche EiSpec Definitionen könnten auch ohne Hangar gemacht werden. Wenn das Erstellen der EiSpecs richtig geklappt hat, wurde das File /var/etc/qs/rocket/specs.json angefertigt. Es ist nichts anderes als ein JSON File. Dies führt nacheinander alle Business Objects auf. Bei den Business Objects werden zuerst die allgemeinen Eigenschaften (General) definiert, danach die Fields, Commands, Modificators und Masken.

Wenn du das specs.json genauer analysierst, siehst du, dass die drei erstellten EiSpecs wie folgt heissen:

  • qs-blog-article
  • qs-blog-category
  • qs-blog-comment

Diese Namen wirst du im nächsten Kapitel brauchen, um die EiSpec ins Rocket Menü aufzunehmen.

Identity String Patterns

Eine Einstellung, welche bisher leider noch nicht über den Hangar möglich ist, ist das Identity String Pattern. Das Identity String Pattern ist ein Muster, mit dem ein Objekt zweifelsfrei identifizieren werden kann. Es wird in Rocket an verschiedenen Stellen verwendet. So zum Beispiel als Titel der Detail- und Bearbeitungsansichten oder um bei Beziehungen anzuzeigen, mit welchen Objekten (Blog Kategorien) das aktuelle Objekt (der aktuelle Blog Artikel) verbunden ist.

Für das Identity String Pattern einer Blog-Kategorie ist deren Namen sinnvoll. Hätten wir eine Mitarbeiter Datenbank, könnte das Identity String Pattern aus dem Vor- und Nachname des Mitarbeiters gebildet werden. In einer grossen Firma besteht allerdings die Gefahr, dass es zwei Mitarbeiter mit gleichem Vor- und Nachname gibt. In diesem Falle wäre ein Identity String Pattern aus Vor- und Nachname nicht genügend. Man müsste sich überlegen, ob man noch eine identifizierende Eigenschaft dazu nimmt. Zum Beispiel die E-Mail oder eine Mitarbeiter Nummer. 

Für die Identity String Patterns müssen wir unsere EiSpecs im rocket.json mit folgenden Zeilen ergänzen. Das Identity String Pattern bilden wir aus Eigenschaften, welche wir in geschweifte Klammern setzen. Du kannst die Zeilen jeweils nach dem "pluralLabel" einfügen.

BlogArticle: wir bilden das Pattern aus dem Titel und der ID des Artikels in eckigen Klammern:

"identityStringPattern": "{title} [{id}]",

BlogCategory: für die Kategorie nehmen wir nur den Namen:

"identityStringPattern": "{name}",

BlogComment: Das Pattern für den Kommentar bilden wir aus der E-Mail des Senders und dem Erstellungsdatum:

"identityStringPattern": "{email}, {created}",

 Zur Kontrolle haben wir dir hier das specs.json als Download vorbereitet:

specs.json

Falls die Erstellung der EiSpecs bei dir nicht geklappt hat, kannst du diese JSON herunterladen und im Ordner /var/etc/qs/rocket speichern.

« Basisfunktionen Navigation bearbeiten »

Kommentare

Du musst eingeloggt sein, damit du Beiträge erstellen kannst.

Fragen