MetaModels Beispielprojekt: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Backend für Redakteure einrichten)
(Backend für Redakteure einrichten)
Zeile 149: Zeile 149:
 
Die Einstellungen im Backend unter [''MetaModels''] dienen der Definition unseres Datenmodells und verschiedener Ansichten der Daten. Für einen Redakteur sollte das Backend eher so aussehen, als wenn es genau für seine Aufgabe maßgeschneidert ist: in diesem Fall die Verwaltung von Musikstücken in der Sammlung.
 
Die Einstellungen im Backend unter [''MetaModels''] dienen der Definition unseres Datenmodells und verschiedener Ansichten der Daten. Für einen Redakteur sollte das Backend eher so aussehen, als wenn es genau für seine Aufgabe maßgeschneidert ist: in diesem Fall die Verwaltung von Musikstücken in der Sammlung.
  
Und genau das können die MetaModels leisten!
+
Und genau das können die MetaModels leisten!<br/>
 
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (''Ausgabevorgabe'') angelegt: [[Datei:MetaModels_Ausgabevorgabe.png]]
 
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (''Ausgabevorgabe'') angelegt: [[Datei:MetaModels_Ausgabevorgabe.png]]
  
 
Auf der neuen Backend-Seite <span style="color:blue;">(die leider durch nichts als Template-Seite zu erkennen ist)</span> wird per [''Neu''] ein neues Template erzeugt. Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.<br/>Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.<br/>
 
Auf der neuen Backend-Seite <span style="color:blue;">(die leider durch nichts als Template-Seite zu erkennen ist)</span> wird per [''Neu''] ein neues Template erzeugt. Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.<br/>Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.<br/>
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung. Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen. Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.
+
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung. Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.<br/>
 +
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.
  
Per [''zurück''] kommen wir wieder zur Template-Liste. <span style="color:blue;">Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.</span> Also müssen wir über das Hauptmenü dorthin navigieren.<br/>Dann gelangt man per [[Datei:MetaModels_Paletteneinstellungen.png]] in eine Liste, in der über [''Neue Palette''] den Menü-Eintrag definiert, den die Redakteure benutzen werden.
+
Per [''zurück''] kommen wir wieder zur Template-Liste. <span style="color:blue;">Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.</span> Also müssen wir über das Hauptmenü dorthin navigieren.
 +
 
 +
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:<br/>
 +
Man gelangt per [[Datei:MetaModels_Paletteneinstellungen.png]] in eine Liste, in der über [''Neue Palette''] der Menü-Eintrag definiert wird.
  
 
{|
 
{|
Zeile 162: Zeile 166:
 
|'''Name'''||Trad.-Liste
 
|'''Name'''||Trad.-Liste
 
|-
 
|-
|'''als Standard benutzen'''||aktivieren
+
|'''als Standard benutzen'''||aktivieren <span style="color:blue;">sonst wird der Menüpunkt nicht angezeigt.<br/>vielleicht sollte die Bezeichnung dieser Option geändert werden.</span>
 
|-
 
|-
|'''Panel-Layout'''||search,sort;filter,limit<br/> <span style="color:blue;">was das genau bedeutet, werden wir später sehen</span>
+
|'''Panel-Layout'''||filter;search,limit<br/>Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.
 
|-
 
|-
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...)
+
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.
|-
+
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren
+
 
|-
 
|-
 
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen
 
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen
 +
|-
 +
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren
 
|-
 
|-
 
|'''Backend-Bereich'''||Inhalte
 
|'''Backend-Bereich'''||Inhalte
Zeile 177: Zeile 181:
 
|-
 
|-
 
|'''Backend-Beschreibung'''||
 
|'''Backend-Beschreibung'''||
* Deutsch
+
* '''Sprache''' Deutsch
* Trad.-Sammlung
+
* '''Menütext''' Trad.-Sammlung
* Sammlung traditioneller Folkmusik
+
* '''Beschreibung''' Sammlung traditioneller Folkmusik
 +
|-
 +
|colspan="2"|[''speichern und schließen'']
 
|}
 
|}
 +
{{msgQuestion|Der Hilfsdialog, der über das kleine Symbol rechts neben dem Eingabefeld [''Panel-Layout''] aufgerufen werden kann, fügt kein Komma oder Semikolon ein, was aber im Hilfetext angegeben wird.<br/>
 +
Außerdem erscheint und verschwindet das Eingabefeld [''Sortierung''] unter nicht ganz nachvollziehbaren Randbedingungen. Man würde erwarten, dass es nur angezeigt wird, wenn bei [''Sortiermodus''] ein sortierender Modus gewählt wurde.}}
 +
 +
Über das rechte Icon wird das Backend definiert. Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen. Für jedes der Attribute kann nun eingestellt werden, ob es sich um ein Pflichtfeld handelt, ob nach diesem Attribut filterbar, sortierbar oder durchsuchbar sein soll.
 +
 +
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:<br/>
 +
{|
 +
!Attribut
 +
!Pflichtfeld
 +
!Filterbar
 +
!Sortierbar
 +
!Durchsuchbar
 +
|-
 +
|'''Titel'''||x|| ||x||x
 +
|-
 +
|'''Alias'''|| || || ||
 +
|-
 +
|'''Typ'''|| ||x|| ||
 +
|-
 +
|'''Herkunftsland'''|| ||x|| ||
 +
|-
 +
|'''Region'''|| ||x|| ||
 +
|-
 +
|'''Quelle'''|| || || ||x
 +
|-
 +
|'''Komponist/Urheber'''|| || || ||x
 +
|-
 +
|'''ABC-Notation'''|| || || ||
 +
|-
 +
|'''Zusatz-Informationen'''|| || || ||x
 +
|-
 +
|'''Veröffentlicht'''|| ||x|| ||
 +
|}
 +
 +
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]<br/>
 +
Hier wird zunächst folgendes eingestellt:
 +
{|
 +
|-
 +
|'''FE-Gruppe'''||-
 +
|-
 +
|'''BE-Gruppe'''||Administrator
 +
|-
 +
|'''Palette wählen'''||Trad.-Sammlung
 +
|-
 +
|'''Ansicht wählen'''||Liste Backend<br/>Dies ist das vorhin angelegte Template
 +
|}
 +
 +
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung'']. Dieser Punkt soll von den Redakteuren verwendet werden.
 +
 +
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.<br/>
 +
Oberhalb der Liste erscheinen die Filter- und Sortier-Elemente, die unter [''Panel-Layout''] oben definiert wurden. Es wurde dort auch die Reihenfolge und Position festgelegt.
  
 
==Anzeige-Templates für Frontend und Backend==
 
==Anzeige-Templates für Frontend und Backend==
  
 
==Filter==
 
==Filter==

Version vom 16. Dezember 2012, 00:05 Uhr

MsgError.png Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.

Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis.

Beispielprojekt mit MetaModels (aka Catalog 3)

Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen MetaModels in einem Contao 2.11.6ff.
Die Bedienung und Administration von Contao sollte bekannt sein.
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.

Dieser Beitrag entsteht 'learning by doing'. Er enthält also immer den aktuellen Wissensstand des/der Autoren. Auftretende Fragen werden hier vermerkt und ebenso im Community-Forum gestellt. Sobald eine Lösung gefunden wurde, wird die Frage hier im Wiki durch eine passende Beschreibung ersetzt.

"Information"


Die Aufgabenstellung

Wir möchten eine Sammlung traditioneller Folkmusik aufbauen, die im BE durch Redakteure gepflegt werden kann, (die sich nicht mit MetaModels auseinandersetzen müssen). Im FE soll man die Sammlung nach unterschiedlichen Kriterien filtern und durchsuchen können. In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.

Vorbereitungen

Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.

Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden. Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.
Unter Windows kann dasselbe mit cygwin erreicht werden, oder man verwendet einen Git-Client für Windows und kopiert die erhaltenen Quelldateien in die Contao-Installation.

Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.

cd ~
mkdir MetaModels
cd MetaModels

Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:

for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \
grep clone_url | \
cut -d \" -f4`; do \
git clone $i; \
done;

Die erzeugten Ordnerstrukturen enthalten jeweils (bis auf DC_General) einen Ordner src. Darin befindet sich der Teil der Quellen, die in die Contao-Installation übernommen werden müssen. In DC_General befindet sich direkt der Ordner system.

Die system-Ordner müssen jeweils in die Contao-Installation kopiert werden (contao ersetzen durch Pfad zum Contao-Installationsordner):

for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;
cp -r core/src/* contao/
cp -r DC_General/* contao/

Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: Erweiterungsverwaltung | Datenbank aktualisieren

Unser Datenmodell

Jetzt geht es wirklich los!

Im Backend unter [System] befindet sich ein neuer Eintrag [MetaModels], über den ein neues MetaModel angelegt wird.
Für unsere Aufgabenstellung wählen wir

  • Name: TuneBook
  • TabellenName: mm_tunebook

Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:

  • Übersetzung anhaken
  • Eine Sprache Deutsch legen wir dann auch an und machen sie zum Fallback.


Unter den [Experteneinstellungen] befindet sich noch eine Option [Varianten aktivieren],
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.
Wir aktivieren sie zunächst nicht.

"Frage"


Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: MetaModels Tools Attribute.png

Titel
  • Attribute Type = Text
  • Column name = title
  • Name (deutsch) = Titel
  • Description (deutsch) = Name des Stücks
Typ
  • Attribute Type = Text
  • Column name = type
  • Name (deutsch) = Typ
  • Description (deutsch) = Rhythmus / Tanzart
Herkunftsland
  • Attribute Type = Text
  • Column name = country
  • Name (deutsch) = Herkunftsland
  • Description (deutsch) =
Region
  • Attribute Type = Text
  • Column name = region
  • Name (deutsch) = Region
  • Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland
Quelle
  • Attribute Type = Text
  • Column name = source
  • Name (deutsch) = Quelle
  • Description (deutsch) = Notenbuch / Sammlung / Kurs
Komponist/Urheber
  • Attribute Type = Text
  • Column name = composer
  • Name (deutsch) = Titel
  • Description (deutsch) =
ABC-Notation
  • Attribute Type = Longtext
  • Column name = abc
  • Name (deutsch) = ABC-Notation
  • Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.
Zusatz-Informationen
  • Attribute Type = Übersetzter Longtext
  • Column name = info
  • Name (deutsch) = Zusatz-Informationen
  • Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.
Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:
Veröffentlicht
  • Attribute Type = Checkbox
  • Column name = published
  • Name (deutsch) = Veröffentlicht
  • Description (deutsch) =
  • check publish = aktiviert
    (vermutlich erzeugt diese Option die gewünschte Funktionalität)
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 fields = Titel
  • Force alias regenerating = aktiviert
    (dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)


Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ Text und nicht Übersetzter Text angelegt.
Nur für die Zusatz-Informationen wurde ein übersetztes Attribut gewählt, da die Beschreibung eines Stücks ggf. in eine andere Sprache übersetzt wird.

Ist diese Überlegung richtig?

"Frage"


Backend für Redakteure einrichten

Die Einstellungen im Backend unter [MetaModels] dienen der Definition unseres Datenmodells und verschiedener Ansichten der Daten. Für einen Redakteur sollte das Backend eher so aussehen, als wenn es genau für seine Aufgabe maßgeschneidert ist: in diesem Fall die Verwaltung von Musikstücken in der Sammlung.

Und genau das können die MetaModels leisten!
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (Ausgabevorgabe) angelegt: MetaModels Ausgabevorgabe.png

Auf der neuen Backend-Seite (die leider durch nichts als Template-Seite zu erkennen ist) wird per [Neu] ein neues Template erzeugt. Wir geben ihr den Namen Liste Backend, alle anderen Einstellungen ändern wir nicht.
Mit [speichern und schließen] gelangt man zurück zur Template-Liste.
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung. Am Einfachsten wählt man [Add all] um alle vorhandenen Attribute dem Template hinzuzufügen.
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: Titel, Typ und Herkunftsland.

Per [zurück] kommen wir wieder zur Template-Liste. Ein weiteres [zurück] führt uns leider nicht auf die Grundseite der MetaModels. Also müssen wir über das Hauptmenü dorthin navigieren.

Jetzt soll der Menüpunkt für die Redakteure erstellt werden:
Man gelangt per MetaModels Paletteneinstellungen.png in eine Liste, in der über [Neue Palette] der Menü-Eintrag definiert wird.

Wir wählen die folgenden Einstellungen:
Name Trad.-Liste
als Standard benutzen aktivieren sonst wird der Menüpunkt nicht angezeigt.
vielleicht sollte die Bezeichnung dieser Option geändert werden.
Panel-Layout filter;search,limit
Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.
Integration Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.
Sortiermodus Datensätze nach wählbarem Feld sortiert darstellen
Sortierung Nach erstem Buchstaben absteigend sortieren
Backend-Bereich Inhalte
Backend-Icon hier könnten wir das Icon für das Menü festlegen - erstmal wählen wir nichts und lassen es bei dem automatisch vergebenen Icon.
Backend-Beschreibung
  • Sprache Deutsch
  • Menütext Trad.-Sammlung
  • Beschreibung Sammlung traditioneller Folkmusik
[speichern und schließen]


Der Hilfsdialog, der über das kleine Symbol rechts neben dem Eingabefeld [Panel-Layout] aufgerufen werden kann, fügt kein Komma oder Semikolon ein, was aber im Hilfetext angegeben wird.
Außerdem erscheint und verschwindet das Eingabefeld [Sortierung] unter nicht ganz nachvollziehbaren Randbedingungen. Man würde erwarten, dass es nur angezeigt wird, wenn bei [Sortiermodus] ein sortierender Modus gewählt wurde.

"Frage"


Über das rechte Icon wird das Backend definiert. Man gelangt in eine neue Liste und wählt am Einfachsten [alle hinzufügen] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen. Für jedes der Attribute kann nun eingestellt werden, ob es sich um ein Pflichtfeld handelt, ob nach diesem Attribut filterbar, sortierbar oder durchsuchbar sein soll.

Für unsere Musiksammlung wählen wir die folgenden Einstellungen:

Attribut Pflichtfeld Filterbar Sortierbar Durchsuchbar
Titel x x x
Alias
Typ x
Herkunftsland x
Region x
Quelle x
Komponist/Urheber x
ABC-Notation
Zusatz-Informationen x
Veröffentlicht x

Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. MetaModels Paletten Ansicht.png
Hier wird zunächst folgendes eingestellt:

FE-Gruppe -
BE-Gruppe Administrator
Palette wählen Trad.-Sammlung
Ansicht wählen Liste Backend
Dies ist das vorhin angelegte Template

Jetzt gibt es im Menü [Backend-Module] einen neuen Eintrag im Bereich [Inhalte] mit der von uns gewählten Bezeichnung [Trad.-Sammlung]. Dieser Punkt soll von den Redakteuren verwendet werden.

Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.
Oberhalb der Liste erscheinen die Filter- und Sortier-Elemente, die unter [Panel-Layout] oben definiert wurden. Es wurde dort auch die Reihenfolge und Position festgelegt.

Anzeige-Templates für Frontend und Backend

Filter

Ansichten
Meine Werkzeuge

Contao Community Documentation

Ich habe eine Anpassungsgeschichte angepasst.

Leo Feyer
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge