Mura CMS Klassenerweiterungen

Eine der großartigen Eigenschaften eines CMS besteht darin, dass alle Ihre Website-Informationen in einer einzigen Datenbank (wie einer Excel-Tabelle) gespeichert werden und Ihnen ein einfacher Zugriff auf diese Informationen im Administrator zur Verfügung steht. Wenn Sie den Titel, die Zusammenfassung oder den Hauptteil einer Seite bearbeiten und auf klicken veröffentlichen, Sie aktualisieren im Wesentlichen diese Datenbank mit den geänderten Informationen. Was aber, wenn Sie zusätzliche Informationen speichern möchten, die einem bestimmten Inhaltstyp zugeordnet sind? Eine Profilseite kann beispielsweise eine sich wiederholende Struktur von Informationen zu dieser Person enthalten (Vorname, Nachname, Jobtitel usw.). Normalerweise haben Sie die Möglichkeit, all diese Informationen jedes Mal neu einzugeben, oder Sie müssen entweder die Datenbank ändern (entweder direkt oder Sie schreiben eigene Skripts, um dies für Sie zu tun), um zusätzliche Spalten zu erstellen, die diese Informationen enthalten. Dann müssten Sie die Benutzeroberfläche ändern, um dem Benutzer zusätzliche Formularfelder zur Eingabe dieser Informationen zu geben.

In Mura CMS wird dieser gesamte Prozess durch die Verwendung von vereinfacht Erweiterte Attribute. Im Mura-Administrator können Sie nahezu jeden beliebigen Inhaltsknotentyp (Seite, Komponente, Galerie, Ordner usw.) erweitern und beliebig viele zusätzliche Felder hinzufügen, ohne die Datenbank berühren oder Code schreiben zu müssen. 

In diesem Beispiel erstellen wir einen neuen Seitentyp für ein Buch. Zusätzlich zum Titel enthält jedes Buch die folgenden Felder, die der Inhaltsadministrator ausfüllen kann:

  • Autor
  • Veröffentlichungsdatum
  • ISBN
  • Neu benutzt
  • Preis

Das Erstellen erweiterter Attribute umfasst drei Bereiche:

  1. Klassenerweiterung: Dies ist der Basisknoten, den Sie erweitern (Seite, Ordner, Galerie, Komponente usw.).
  2. Attrute-Set: Eine Gruppe erweiterter Attribute, die angezeigt wird, wenn der Benutzer Inhalt bearbeitet
  3. Erweiterte Attribute: Einzelfelder für die Daten, die Sie sammeln möchten (wie oben aufgeführt).

Erstellen Sie die Klassenerweiterung

Der erste Schritt ist das Erstellen der Klassenerweiterung. Dies ist das Hauptobjekt Art und SubType das wird alle erweiterten Attribute beherbergen. So erstellen Sie eine neue Klassenerweiterung:

  1. Gehen Sie im Mura-Admin zur Auswahl Site Config > Class Extension Manager> Klassenerweiterung hinzufügen.

  2. Zum Basistyp Wählen Seite.
  3. Unter SubType, Art Buch
    Hinweis: Wenn Sie "SubType" auf "Default" setzen, werden alle erweiterten Attribute, die Sie erstellen, auf ALLE Inhaltsknoten dieses Typs angewendet.
  4. Unter Symbol, Wählen Sie das Buchsymbol aus, das dem Untertyp "Buch" zugeordnet werden soll.

  5. Klicken Hinzufügen.

Erweiterten Attributsatz hinzufügen

Jetzt, da Sie über die Erweiterung "Page / Book Class" verfügen, müssen wir einige erweiterte Attribute für die Elemente hinzufügen, die wir für das Buch benötigen. Erweiterte Attribute werden in Attributgruppen gruppiert, ähnlich wie a

in einem HTML-Formular). Die Attributsätze werden im Administrator visuell getrennt, um eine modulare Trennung für den Benutzer zu ermöglichen. 

So erstellen Sie einen Attributsatz:

  1. Wählen Hinzufügen > Attributsatz hinzufügen.
  2. Eingeben Buchdetails für die Attributsatzname. Dieses Set enthält alle Details, die wir für jedes Buch benötigen.
  3. Für die Container (Tab), wählen Basic (Sie können in der Mura-Benutzeroberfläche alternative Registerkarten für die Organisation auswählen.)

  4. Klicken Hinzufügen.

Erweiterte Attribute hinzufügen

Sobald Sie Ihren Attributsatz erstellt haben, können Sie die einzelnen erweiterten Attribute hinzufügen. Wir beginnen mit einem Klartextfeld für den Autor des Buches:

  1. In Ihrem Buchdetails Attributsatz, klicken Sie auf Neues Attribut hinzufügen

  2. In dem Name Feld eingeben bookAuthor.
    Hinweis: Es ist wichtig, dass die Variable basierend auf ihrem Subtyp und dem Namen des Attributs benannt wird. Wenn der Untertyp beispielsweise "Book" ist und das hinzuzufügende Attribut "title" ist, verwenden Sie stattdessen "productTitle" als tatsächlichen "Namen" für das Attribut. Wenn Sie über mehrere benutzerdefinierte erweiterte Attribute für Ihre Site verfügen, können Sie einfach und aus Versehen zwei (oder mehr) erweiterte Attribute mit demselben Namen erstellen. Tu das nicht! Vermeiden Sie außerdem die Verwendung eines der Standard-Feldnamen von Mura. Dies dient zur Vermeidung von Namenskollisionen von Formularfeldern. Andernfalls könnten Sie versehentlich zwei Formularfelder mit 'Titel' für das Namensattribut erhalten, eines aus Mura und das andere aus Ihrem erweiterten Attribut.
  3. Geben Sie im Feld Bezeichnung die benutzerfreundliche Bezeichnung für das Feld ein, das dem Benutzer angezeigt wird.
  4. Für die Eingabetyp, wählen Textfeld.
  5. Zum QuickInfo, Geben Sie einen benutzerfreundlichen Hinweis ein, was in das Eingabefeld eingegeben werden soll. So etwas wie "Bitte geben Sie den Namen der Person an, die das Buch geschrieben hat", um sicherzustellen, dass die Benutzer verstehen, was dieses Feld bedeutet.
  6. Ihr vollständiges Formular sollte so aussehen:

  7. Klicken Hinzufügen

Wiederholen Sie für die restlichen Felder die obigen Schritte mit den folgenden Details für jedes Feld:

Veröffentlichungsdatum

  • Name: bookReleaseDate
  • Etikette: Veröffentlichungsdatum
  • Eingabetyp: Textfeld
  • Tooltip: Bitte wählen Sie das Datum, an dem das Buch veröffentlicht wurde
  • Bestätigen: Datum (dadurch wird dem Feld eine Datumsauswahl hinzugefügt)

ISBN

  • Name: bookISBN
  • Etikette: ISBN
  • Eingabetyp: Textfeld
  • Tooltip: Bitte geben Sie die ISBN des Buches ein

Neu benutzt

  • Name: bookNewUsed
  • Etikette: Neu oder Gebraucht
  • Eingabetyp: SelectBox
  • Tooltip: Bitte wählen Sie aus, ob das Buch neu ist oder verwendet wird
  • Optionsliste (die HTML-Werte für die Elemente in der Dropdown-Liste): neu ^ gebraucht
  • Optionsbeschriftungsliste (die benutzerfreundlichen Beschriftungen für die Elemente in der Dropdown-Liste): Neu ^ Gebraucht

Preis

  • Name: Buchpreis
  • Etikette: Preis $
  • Eingabetyp: Textfeld
  • Tooltip: Bitte geben Sie den Preis des Buches ein

Klassenerweiterung verwenden

Nachdem Sie alle Ihre erweiterten Attribute erstellt haben, können Sie über den Site-Manager ein neues Buch hinzufügen und alle soeben erstellten Formularfelder ausfüllen.

  1. Gehe zum Seitenverwalter

  2. Bewegen Sie den Mauszeiger neben der Startseite über das Pluszeichen (+) und wählen Sie Inhalt hinzufügen

  3. Wählen Mappe

  4. Eingeben Bücher für die Titel
  5. Wählen Sie die Registerkarte Layout & Objekte

  6. Unter Alternative untergeordnete Layoutvorlage, wählen twoCol_SR.cfm

  7. Klicken Veröffentlichen
  8. Bewegen Sie den Mauszeiger neben dem Ordner "Bücher" im Site Manager über das (+) - Zeichen und wählen Sie Inhalt hinzufügen


  9. Wenn der Wählen Sie den Inhaltstyp aus Modal erscheint, sollten Sie jetzt das sehen Buch zusammen mit dem jeweiligen Symbol.

  10. Geben Sie den Titel, die Zusammenfassung und den Inhalt des Buches ein  

  11. Sie sollten das sehen Buchdetails Attributsatz unter dem Inhaltsfeld auf der Basisregisterkarte (Wenn Sie es dort nicht sehen, haben Sie möglicherweise eine andere Registerkarte ausgewählt, auf der der Attributsatz angezeigt werden soll, z. B. Erweiterte Attribute). Geben Sie die entsprechenden Informationen der Bücher ein und klicken Sie auf Veröffentlichen

Erweiterte Attribute anzeigen

Wenn Sie die Seite anzeigen, werden Sie feststellen, dass Ihre Attribute nicht angezeigt werden. Das liegt daran, dass wir Mura anweisen müssen, diese Werte auf der Seite anzuzeigen. Nun gibt es mehrere Möglichkeiten, dies zu erreichen, je nach Anwendungsfall und wie viel Flexibilität Sie Ihren Benutzern beim Ändern des Seitenlayouts geben möchten. In diesem Beispiel erstellen wir eine Komponente, die die gewünschten Informationen ausgibt, sodass sie vielseitig in der von Ihnen ausgewählten Seitenvorlage verwendet werden kann. 

Erstellen Sie eine neue Komponente

  1. Klicken Sie im Mura-Admin auf Gehe zu Module> Komponenten

  2. Wählen Komponente hinzufügen

  3. In dem Titel Feld eingeben Buchdetails
  4. Geben Sie im Inhaltsbereich Folgendes ein:
    Einzelheiten
    Autor: [m] $. content ('bookAuthor') [/ m]
    Veröffentlichungsdatum: [m] dateFormat ($. content ('bookReleaseDate'), 'mm / tt / jj') [/ m]
    ISBN: [m] $. content ('bookISBN') [/ m]
    Bedingung: [m] $. content ('bookNewUsed') [/ m]
    Preis: $ [m] $. content ('bookPrice') [/ m]

    Hinweis: Wir verwenden für dieses Beispiel eine einfache Formatierung. Sie können dies jedoch beliebig mit CSS markieren und gestalten.
  5. Klicken Veröffentlichen

Fügen Sie die Komponente den Buchseiten hinzu

  1. Suchen Sie im Site Manager nach Bücher Ordner (nicht das Buch selbst) und klicken Sie darauf, um ihn zu bearbeiten.

  2. Wähle aus Layout & Objekte Tab

  3. Unter Vererbungsregeln, wählen Starten Sie New Cascade

  4. Unter Inhaltsobjekte, Wählen Sie Komponenten aus, suchen Sie das Buchdetails Komponente und fügen Sie es dem hinzu Rechte Spalte Anzeigebereich.

  5. Klicken Veröffentlichen

Wenn Sie nun Ihre Buchseite aktualisieren, sollten die Buchdetails in der rechten Seitenleiste angezeigt werden. 

Einpacken

Wie bereits erwähnt, ist dies nur ein Weg, um erweiterte Attribute anzuzeigen. Sie können sich auch dafür entscheiden, Ihre erweiterten Attribute in Ihre Seiten- oder Komponentenvorlagen zu integrieren. Dort können Sie zusätzliche Logik verwenden und verhindern, dass Ihre Benutzer Ihre Auszeichnung ändern. 

Wenn Sie Ihre erweiterten Attribute in einer Vorlage anzeigen möchten, ändern Sie einfach das [m] zu # z.B. # $. content ('bookAuthor') #

Das [m] Tag ist Teil des Mura-Scopes, damit Sie bestimmte Mura-Funktionen im Editor im Admin anzeigen können, wobei die Hashtags (#) sind die Standardmethoden für die Ausgabe von Inhalten in CFML.

Nachdem Sie nun gelernt haben, Klassenerweiterungen zu verwenden, können Sie Ihre Mura-Designs auf eine völlig neue Ebene bringen, indem Sie Ihren Benutzern eine robustere Möglichkeit geben, den Inhalt in Ihren Designs zu verwalten.