MetaModels Beispiel 1: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Vorgehensschritte)
K
 
(102 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{Hinweis|Die Angaben, Beschreibungen und Screenshot beziehen sich auf MetaModels bis etwa Mitte 2016 und sind nicht aktuell!
 +
Im [http://metamodels.readthedocs.io/de/latest/ MetaModels-Handbuch] sind aktuelle Angaben zu finden.}}
 +
 
[[Category:Admin HOWTOS]]
 
[[Category:Admin HOWTOS]]
[[Category:Extensions]]
+
[[Category:MetaModels|B]]
[[Category:MetaModels]]
+
=Aufgabenstellung: Backend einrichten=
 
+
Als Beispielprojekt soll eine einfache "Musikbox" gebaut werden, in der Musikstücke mit gewissen Attributen ("Eigenschaften") erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.
=Aufgabenstellung: Das Backend vorbereiten=
+
Wir bauen eine einfache Musikbox. Zu diesem Zweck bauen wir zuerst das Backend auf.
+
  
 
===Vorgehensschritte===
 
===Vorgehensschritte===
 
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels
 
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung
+
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen
 
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)
 
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)
 
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter
 
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter
 
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen
 
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen
  
==Eine leere Datenbank erstellen==
+
=Eine leere Datenbank erstellen=
  
[[File:mm_startscreen.png|thumb|180px]]
+
[[File:mm_startscreen.png|thumb|400px]]
  
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen.  
+
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt.  
  
 
* Klick auf '''Neues MetaModel'''
 
* Klick auf '''Neues MetaModel'''
Zeile 23: Zeile 24:
 
* TabellenName: '''mm_musicbox'''
 
* TabellenName: '''mm_musicbox'''
  
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:
+
===Anmerkungen===
 +
 
 +
* In unserem Beispiel aktivieren wir die Mehrsprachigkeit, um nachträglich weitere Sprachen anlegen zu können. Falls man im Vorfeld weiß, dass man keine weiteren Sprachen benötigt, muss der Haken nicht gesetzt werden. MetaModels ist auch ohne Mehrprachigkeit komplett funktionstüchtig.
 +
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.
 +
 
 +
===Auszuführen===
  
 
* '''Übersetzung''' anhaken
 
* '''Übersetzung''' anhaken
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.
+
* mindestens eine unterstützte Sprache auswählen
* '''Varianten aktivieren''' lassen wir mal aus
+
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen
 +
* '''Varianten aktivieren''' vorerst nicht anhaken
  
Du siehst nun ein MetaModel "Musicbox" mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.
+
Man sieht nun ein MetaModel "Musicbox" mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.
  
<div style="clear: both"></div>
+
<div style="clear: both"><br></div>
  
 
==MetaModels Backend-Funktionen==
 
==MetaModels Backend-Funktionen==
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):
+
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):
  
 
[[File:mm_backend_funktionen_icons.png|link=|border]]
 
[[File:mm_backend_funktionen_icons.png|link=|border]]
  
# '''Attribute''' (Definieren Sie die Attribute in MetaModel)
+
[[File:icons_bearbeiten.png|left|32px]]
# '''Ausgabevorgaben''' (Definieren Sie Ausgabevorgaben für das MetaModel)
+
 
# '''Paletteneinstellungen''' (Paletteneinstellungen für das MetaModel definieren)
+
Hier gelangt man wieder zurück zum gleichen Screen, wie bei der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.
# '''Filter''' (Definieren Sie Filter für das MetaModel)
+
 
# '''Paletten- und Ansichtseinstellungen''' (Paletten- und Ansichtseinstellungen für MetaModel festlegen)
+
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)
 +
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)
 +
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)
 +
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)
 +
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)
  
 
=Das Backend konfigurieren=
 
=Das Backend konfigurieren=
  
Um das Backend für die Erfassung der Daten vorzubereiten benötigen wir a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu benötigen wir 4 der 5 Backend-Funktionen von MetaModels.
+
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.
  
 
* Datenbank erstellen, benennen, Sprachvariable zuweisen
 
* Datenbank erstellen, benennen, Sprachvariable zuweisen
Zeile 53: Zeile 64:
 
* Erfassung (z.B. für Redakteure) freigeben
 
* Erfassung (z.B. für Redakteure) freigeben
  
 
==MM-Funktion: MetaModel bearbeiten==
 
 
[[File:icons_bearbeiten.png|left|32px]]
 
 
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.
 
 
[[File:mm_startscreen2.png|thumb|180px]]
 
 
===Anmerkungen===
 
 
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist "diese Option" eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.
 
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert
 
 
<div style="clear: both"></div>
 
  
 
==MM-Funktion: Attribute==
 
==MM-Funktion: Attribute==
Zeile 73: Zeile 69:
 
[[File:icons_attribute.png|left|32px]]
 
[[File:icons_attribute.png|left|32px]]
  
Hier erfassen wir die benötigen Felder für die Eingabe.
+
Hier erfasst man die benötigen Felder für die Eingabe.
s. [[MetaModels_Attribute|allgemeine Infos]] zu den Attributen
+
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen
  
[[File:mm_attribute_erfassen.png|thumb|180px]]
+
[[File:mm_attribute_erfassen.png|thumb|400px]]
  
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel "Titel"):
+
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut "Titel" dargestellt):
 
{|
 
{|
 
|-  
 
|-  
Zeile 92: Zeile 88:
 
* Attribute Type= Text
 
* Attribute Type= Text
 
* Column name= composer
 
* Column name= composer
* Name (deutsch)= Name
+
* Name (deutsch)= Interpret
 
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn
 
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn
 
|-  
 
|-  
Zeile 104: Zeile 100:
 
| '''Jahr'''
 
| '''Jahr'''
 
|  
 
|  
* Attribute Type= Decimal
+
* Attribute Type= Dezimal
 
* Column name= year
 
* Column name= year
 
* Name (deutsch)= Jahr
 
* Name (deutsch)= Jahr
Zeile 111: Zeile 107:
 
| '''Beschreibung'''
 
| '''Beschreibung'''
 
|  
 
|  
* Attribute Type= Longtext
+
* Attribute Type= Langtext
 
* Column name= description
 
* Column name= description
 
* Name (deutsch)= Beschreibung
 
* Name (deutsch)= Beschreibung
Zeile 118: Zeile 114:
 
| '''Cover'''
 
| '''Cover'''
 
|  
 
|  
* Attribute Type= File
+
* Attribute Type= Datei
 
* Column name= images
 
* Column name= images
* Name (deutsch)= Bilder
+
* Name (deutsch)= Cover
 
* Description (deutsch)= Cover, Bilder
 
* Description (deutsch)= Cover, Bilder
 
|-  
 
|-  
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.<br>Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:
+
|colspan="2"|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.<br><br>Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:
 
|-  
 
|-  
 
| '''Alias'''
 
| '''Alias'''
Zeile 132: Zeile 128:
 
* Description (deutsch)=
 
* Description (deutsch)=
 
* Unique values= aktiviert
 
* Unique values= aktiviert
* Alias fields= Titel
+
* Alias Neuerstellung erzwingen = aktiviert<br>(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)
* Force alias regenerating= aktiviert<br>(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)
+
* Aliasfelder = Titel
 
|}
 
|}
  
==MM-Funktion: Ausgabevorgaben==
+
<div>
 +
 
 +
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==
 
[[File:icons_ausgabevorgaben.png|left|32px]]
 
[[File:icons_ausgabevorgaben.png|left|32px]]
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.
+
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.
  
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]
+
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]
  
* Klick hierzu auf '''neu'''
+
* Auf '''neu''' klicken
* Gib den Namen '''BE Listenansicht''' ein
+
* '''BE Listenansicht''' eingeben
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''
+
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.
  
(s. [[MetaModels_Rendersettings|allgemeine Ausgabe-Vorgaben]])
+
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])
  
 
<div style="clear: both"></div>
 
<div style="clear: both"></div>
  
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]
+
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]
  
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.
+
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:
  
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten
+
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''
+
* Die Frage, ob alle Attribute hinzugefügt werden sollen("''Add all attributes to render setting''"), wird mit '''Weiter''' bestätigt.
* Nun siehst alle Attribute, die du bereits unter "...." erfasst hast.
+
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.
  
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.
+
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.
 +
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.
  
 
(( alter Screen, wird ersetzt ))
 
(( alter Screen, wird ersetzt ))
 +
<div style="clear: both"></div>
 +
 +
</div>
  
==MM-Funktion: Paletteneinstellung==
+
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==
  
 
[[File:icons_paletteneinstellungen.png|left|32px]]
 
[[File:icons_paletteneinstellungen.png|left|32px]]
  
Hier legen wir fest wo und wie im BE die Daten zu unserer Musicbox erfasst werden sollen.
+
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.
  
 
===BE-Liste===
 
===BE-Liste===
[[File:mm_paletten_BE_liste.png|thumb|180px]]
+
[[File:mm_paletten_BE_liste.png|thumb|400px]]
Klick auf '''Neue Palette'''. Ein Erfassungsformular öffnet sich. Gib die Werte ein, wie nebenan abgebildet:
+
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:
 
* Name: '''BE Erfassung'''
 
* Name: '''BE Erfassung'''
 
* Option '''Als Standard benutzen'''
 
* Option '''Als Standard benutzen'''
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Sie können auch über das Icon rechts abgerufen werden. Man kann diese optimisch von einander trennen, indem man zwischen die Werte entweder ein Komma (,) oder ein Semikolon (;)  
+
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.
 +
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.
 +
**Komma => Ausgabe in der gleichen Zeile wie der vorhergehende Wert
 +
**Semikolon => Ausgabe in neuer Zeile.
 
* Integration: '''Als Einzeltabelle'''
 
* Integration: '''Als Einzeltabelle'''
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht
+
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.
 
* Sortierung: Auf- oder Absteigend... wie es dir gefällt
 
* Sortierung: Auf- oder Absteigend... wie es dir gefällt
 
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)
 
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)
Zeile 181: Zeile 186:
 
* Backend-Beschreibung: wie abgebildet
 
* Backend-Beschreibung: wie abgebildet
  
Nun habe eine Palette namens '''BE Erfassung''' erstellt. Ich möchte nun das Erfassungs-Formular ein wenig gestalten.
 
  
Im letzten Kapitel '''Die Daten erfassen''' siehst du, wie die Liste/das Formular zwecks Erfassung meiner Musikstücke aussehen.
+
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.<br>
 +
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.
 +
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die MetaModels in einem separaten '''Backend-Bereich''' in der BE-Navigation unterbringen.}}{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}
 +
<div style="clear: both"></div>
  
 
===BE-Formular===
 
===BE-Formular===
[[File:mm_paletten_BE_formular.png|thumb|180px]]
+
[[File:mm_paletten_BE_formular.png|thumb|400px]]
  
Wir fügen nun alle Attribute zur Palette hinzu und klicken hier auf das Icon rechts ''' Paletteneinstellungen'''.
+
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.
* Wir wählen wieder '''Alle hinzufügen''' und bestätigen alle nun folgenden Screens.
+
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.
* Wir erhalten so eine Liste aller Attribute, die wir einzeln bearbeiten können
+
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.
* Auf Wunsch können wir hier auch die Reihenfolge umstellen und so bestimmen, wie wir die Daten erfassen wollen
+
* Auf Wunsch kann man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.
* Wir fangen mit dem ersten Eintrag '''Titel [text]''' an
+
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''
 
<div style="clear: both"></div>
 
<div style="clear: both"></div>
  
[[File:mm_paletten_BE_formular2.png|thumb|180px]]
+
[[File:mm_paletten_BE_formular2.png|thumb|400px]]
  
Als Beispiel zeigen wir, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.<br>
+
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.<br>
Wir klicken auf das Editier-Icon. Die wichtigsten Einstellung wären:
+
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:
* Backend-Class: Damit können wir das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen uns zur Verfügung: w50, clr, long, wizard und m12
+
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''
* Pflichtfeld: Durch Anklicken legen wir fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterix gekennzeichnet
+
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen können wir die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.
+
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.
 
<div style="clear: both"></div>
 
<div style="clear: both"></div>
  
Zeile 208: Zeile 215:
 
[[File:icons_ansichtseinstellungen.png|left|32px]]
 
[[File:icons_ansichtseinstellungen.png|left|32px]]
  
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.
+
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.
 +
 
 +
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]
  
[[File:mm_backend_zugriffsrechte_definieren.png|link=|600px]]
+
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' > 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.
  
 
=Die Daten erfassen=
 
=Die Daten erfassen=
  
[[File:mm_backend_erfassen.png|left|600px]]
+
[[File:mm_backend_erfassen.png|thumb|600px]]
  
Und so sieht's aus: Nun wird in der linken Navigationsüberishct "Backend-Module" ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.
+
Und so sieht's aus:<br>Nun wird in der linken Navigationsübersicht "Backend-Module" ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.
  
 
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer
 
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer
* Klick auf '''Neuer Datensatz'''. Es öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt
+
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt
* Gibt die gewünschten Werte, und bestätige mit '''Speichern und Schliessen'''
+
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen
 
* Nun erscheint der erste Eintrag in der BE Listenansicht
 
* Nun erscheint der erste Eintrag in der BE Listenansicht
* Wiederhole diesen Vorgang so oft du willst
+
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden
* Über der BE Listenansicht stehen dir nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung
+
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung
  
 
<div style="clear: both"></div>
 
<div style="clear: both"></div>
  
 
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]
 
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]

Aktuelle Version vom 26. Januar 2017, 13:16 Uhr

Hinweis.png Hinweis: Die Angaben, Beschreibungen und Screenshot beziehen sich auf MetaModels bis etwa Mitte 2016 und sind nicht aktuell!

Im MetaModels-Handbuch sind aktuelle Angaben zu finden.

Aufgabenstellung: Backend einrichten

Als Beispielprojekt soll eine einfache "Musikbox" gebaut werden, in der Musikstücke mit gewissen Attributen ("Eigenschaften") erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.

Vorgehensschritte

  1. Start: Installation - Download und Installation von MetaModels
  2. Beispiel 1: Backend einrichten - MetaModel erstellen, Daten erfassen
  3. Beispiel 2: Frontend einrichten - Die Inhalte im Frontend anzeigen (Liste und Detail)
  4. Beispiel 3: Weitere Filter einrichten – Inhalte auf Published setzen, einfache Select-Filter
  5. Beispiel 4: Weiteres MetaModels einrichten - komplexe Select-Filter einsetzen

Eine leere Datenbank erstellen

Mm startscreen.png

Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt.

  • Klick auf Neues MetaModel
  • Name: Musicbox
  • TabellenName: mm_musicbox

Anmerkungen

  • In unserem Beispiel aktivieren wir die Mehrsprachigkeit, um nachträglich weitere Sprachen anlegen zu können. Falls man im Vorfeld weiß, dass man keine weiteren Sprachen benötigt, muss der Haken nicht gesetzt werden. MetaModels ist auch ohne Mehrprachigkeit komplett funktionstüchtig.
  • Varianten unterstützen wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.

Auszuführen

  • Übersetzung anhaken
  • mindestens eine unterstützte Sprache auswählen
  • eine Sprache (z.B. Deutsch) zum Fallback machen
  • Varianten aktivieren vorerst nicht anhaken

Man sieht nun ein MetaModel "Musicbox" mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.


MetaModels Backend-Funktionen

Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):

Mm backend funktionen icons.png

Icons bearbeiten.png

Hier gelangt man wieder zurück zum gleichen Screen, wie bei der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den Namen als auch den Tabellennamen des MetaModels ändern.

  1. Attribute (Attribute für MetaModel ID x definieren)
  2. Ausgabevorgaben (Render-Einstellungen für MetaModel ID x definieren)
  3. Eingabemaske (Eingabemaske für das MetaModel ID x definieren)
  4. Filter (Filter für MetaModel ID x definieren)
  5. Paletten- und Ansichtseinstellungen (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)

Das Backend konfigurieren

Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.

  • Datenbank erstellen, benennen, Sprachvariable zuweisen
  • Felder definieren, Attribute festlegen, Erfassungsformular gestalten
  • Übersichtsliste definieren
  • Erfassung (z.B. für Redakteure) freigeben


MM-Funktion: Attribute

Icons attribute.png

Hier erfasst man die benötigen Felder für die Eingabe. s. allgemeine Infos zu den Attributen

Mm attribute erfassen.png

Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut "Titel" dargestellt):

Titel
  • Attribute Type= Text
  • Column name= title
  • Name (deutsch)= Titel
  • Description (deutsch)= Name des Stücks
Interpret
  • Attribute Type= Text
  • Column name= composer
  • Name (deutsch)= Interpret
  • Description (deutsch)= Name der Band, SängerIn oder InterpretIn
Land
  • Attribute Type= Text
  • Column name= country
  • Name (deutsch)= Land
  • Description (deutsch)=
Jahr
  • Attribute Type= Dezimal
  • Column name= year
  • Name (deutsch)= Jahr
  • Description (deutsch)= Erscheinungsjahr
Beschreibung
  • Attribute Type= Langtext
  • Column name= description
  • Name (deutsch)= Beschreibung
  • Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.
Cover
  • Attribute Type= Datei
  • Column name= images
  • Name (deutsch)= Cover
  • Description (deutsch)= Cover, Bilder
Bis jetzt wurde bei keinem der Attribute die Option Unique values aktiviert.

Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:
Alias
  • Attribute Type= Alias
  • Column name= alias
  • Name (deutsch)= Alias
  • Description (deutsch)=
  • Unique values= aktiviert
  • Alias Neuerstellung erzwingen = aktiviert
    (dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)
  • Aliasfelder = Titel

MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)

Icons ausgabevorgaben.png

Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.

Mm ausgabe definieren.png
  • Auf neu klicken
  • BE Listenansicht eingeben
  • Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine Zielseite noch Filter settings.

(s. allgemeine Ausgabe-Vorgaben)

Mm ausgabe attribute definieren.png

Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:

  • Add all fügt alle Felder auf einen Rutsch hinzu. Man kann auch Neu wählen und die Felder einzeln hinzufügen, aber mit Add all gehts am schnellsten.
  • Die Frage, ob alle Attribute hinzugefügt werden sollen("Add all attributes to render setting"), wird mit Weiter bestätigt.
  • Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.

Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen. Für dieses Tutorial wählen wir : Titel, Interpret, Land und Jahr.

(( alter Screen, wird ersetzt ))

MM-Funktion: Eingabemaske (fka Paletteneinstellungen)

Icons paletteneinstellungen.png

Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.

BE-Liste

Mm paletten BE liste.png

Nach Klick auf Neue Eingabemaske öffnet sich ein Erfassungsformular. Hier die Werte eingeben, wie nebenan abgebildet:

  • Name: BE Erfassung
  • Option Als Standard benutzen
  • Panel-Layout: Es stehen 4 Werte (filter, sort, search und limit) zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.
    • Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.
    • Komma => Ausgabe in der gleichen Zeile wie der vorhergehende Wert
    • Semikolon => Ausgabe in neuer Zeile.
  • Integration: Als Einzeltabelle
  • Sortiermodus: 2 Datensätze nach wählbarem Feld sortiert darstellen (Wichtig: Sowohl dieser Wert als auch sort im Panel-Layout müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.
  • Sortierung: Auf- oder Absteigend... wie es dir gefällt
  • Backend-Bereich: Inhalte (oder wo soll es in der Backend-Navigation eingesetzt werden)
  • Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden
  • Backend-Beschreibung: wie abgebildet


Nun wurde eine Eingabemaske namens BE Erfassung erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.
Im letzten Kapitel auf dieser Seite (Die Daten erfassen) sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.

Hinweis.png Hinweis: Mit der Erweiterung MetaModels Boilerplate (Nightly Build) kann man die MetaModels in einem separaten Backend-Bereich in der BE-Navigation unterbringen.
Hinweis.png Hinweis: Die Option Sortierung ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des Backend-Bereichs (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.

BE-Formular

Mm paletten BE formular.png

Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (Die Einstellungen der Palette ID xx bearbeiten) klickt.

  • Alle hinzufügen wählen und alle nun folgenden Screens bestätigen.
  • Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.
  • Auf Wunsch kann man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.
  • Angefangen wird mit dem ersten Eintrag Titel [text]
Mm paletten BE formular2.png

Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs Titel alles einstellen kann.
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:

  • Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: w50, clr, long, wizard und m12
  • Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.
  • Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.

MM-Funktion: Zugriffsrechte definieren

Icons ansichtseinstellungen.png

Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.

Mm neues metamodel ansichtseinstellungen.png

Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' > 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.

Die Daten erfassen

Mm backend erfassen.png

Und so sieht's aus:
Nun wird in der linken Navigationsübersicht "Backend-Module" ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.

  • Mit Klick auf MyMusik gelangt man auf die BE Listenansicht. Diese ist noch leer
  • Mit Klick auf Neuer Datensatz. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt
  • Die gewünschten Werte eingeben und mit Speichern und Schliessen bestätigen
  • Nun erscheint der erste Eintrag in der BE Listenansicht
  • Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden
  • Über der BE Listenansicht stehen nun die Panel-Layout Funktionen Suchen, Sortieren, Filtern und Anzeigen zur Verfügung

Zurück zur Beispiel-Übersicht | Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht

Ansichten
Meine Werkzeuge

Contao Community Documentation

Ich überlege gerade warum Contao Developer einen Hangout mit Bildübertragung machen... abgesehen von TheTril sind wir da alle relativ hässliche Typen wo Audio deutlich reichen würde. *g*

Leo Unglaub
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge