MetaModels Beispielprojekt: Unterschied zwischen den Versionen

Aus Contao Community Documentation

K (Fixed nightly download links)
(Voraussetzungen: added information about alpha version for Contao3)
 
(32 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{stub}}
 
 
[[Category:Admin HOWTOS]]
 
[[Category:Admin HOWTOS]]
 
[[Category:Extensions]]
 
[[Category:Extensions]]
[[Category:MetaModels]]
+
[[Category:MetaModels|B]]
=Beispielprojekt mit MetaModels (aka Catalog 3)=
+
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.<br/>
+
Die Bedienung und Administration von Contao sollte bekannt sein.<br/>
+
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 [https://community.contao.org/de/showthread.php?36679-MetaModels-erste-Versuche-im-Wiki im Community-Forum] gestellt. Sobald eine Lösung gefunden wurde, wird die Frage hier im Wiki durch eine passende Beschreibung ersetzt.}}
+
=MetaModels (aka Catalog 3) lernen an Beispielprojekten=
 +
==Voraussetzungen==
 +
* MetaModels ist der Nachfolger von Catalog. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zu Catalog besteht nicht
 +
* Die Bedienung und Administration von Contao sollte bekannt sein
 +
* <span style="color:red">MetaModels setzt Contao 2.11.x voraus</span>.  
 +
* MetaModels läuft in einer Alpha-Version unter Contao 3.x (Stand Oktober 2013), die auf der Projekt-Webseite zur Verfügung steht
 +
* <span style="color:red">MetaModels benötigt mindestens PHP 5.3</span>
 +
* Bezüglich MetaModels werden keinerlei Vorkenntnisse vorausgesetzt
  
==Die Aufgabenstellung==
+
==Download & Installation==
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.  
+
* MetaModels kann (noch) nicht über die Erweiterungsverwaltung geladen werden
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.
+
* Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten '''Nightly Builds''' zu laden.  
 +
* Die '''Nightly Builds''' werden stündlich mit dem aktuellsten Stand von MetaModels zum Download bereitgestellt
 +
* Detaillierte Infos zum Download und zur Installation findet man unter [[MetaModels|MetaModels]].
  
==Vorbereitungen==
+
==Umsetzungsbeispiele==
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.
+
Wir werden eine Verwaltung unserer Musiksammlung erstellen und uns in mehreren Beispielen schrittweise von einer einfachen zu komplexeren Anwendungen vorarbeiten.
 
+
# [[MetaModels_Beispiel_1|Backend einrichten]] - Eingeben der Sammlung
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.
+
# [[MetaModels_Beispiel_2|Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)
{{Hinweis|Es geht jetzt auch einfacher als im Folgenden beschrieben, da die Entwickler nun den jeweils aktuellen Entwicklungsstand zum Download anbieten:
+
# [[MetaModels_Beispiel_3|Weitere Filter einrichten]] Inhalte auf Published setzen, einfache Select-Filter
als [http://now.metamodel.me/tl_files/metamodels-nightly.zip ZIP],
+
# [[MetaModels_Beispiel_4|Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen
als [http://now.metamodel.me/tl_files/metamodels-nightly.tar.gz TAR GZ]
+
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten
oder als [http://now.metamodel.me/tl_files/metamodels-nightly.tar.bz2 TAR BZ2]
+
 
+
siehe dieser [https://community.contao.org/de/showthread.php?36716-Wo-kann-man-MetaModels-herunterladen&p%61241122&viewfull%611#post241122 Beitrag im Forum]
+
 
+
Das Archiv wird in den Installationsordner von Contao entpackt.}}
+
 
+
'''Die folgende Beschreibung ist veraltet --------------------------'''<br/>
+
... führt allerdings zur noch aktuelleren Version
+
 
+
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.<br/>
+
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.
+
<source lang="bash">
+
cd ~
+
mkdir MetaModels
+
cd MetaModels
+
</source>
+
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:
+
<source lang="bash">
+
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \
+
grep clone_url | \
+
cut -d \" -f4`; do \
+
git clone $i; \
+
done;
+
</source>
+
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. Dazu kann man folgendes Script in eine Datei '''copy2contao.sh''' im MetaModels-Ordner kopieren ('''das_contao_verzeichnis''' ersetzen durch Pfad zum Contao-Installationsordner):
+
<source lang="bash">
+
#!/bin/bash
+
CONTAO=das_contao_verzeichnis/
+
for i in `ls -d *`;
+
do
+
if [ $i = "copy2contao.sh" ]; then
+
continue;
+
fi;
+
if [ $i = "DC_General" ]; then
+
echo copying $i/system to $CONTAO
+
cp -r $i/system $CONTAO;
+
else
+
echo copying $i/src/ to $CONTAO
+
cp -r $i/src/* $CONTAO;
+
fi;
+
done;
+
</source>
+
Schließlich diese Datei ausführbar machen und starten:
+
<source lang="bash">
+
chmod +x ./copy2contao.sh
+
./copy2contao.sh
+
</source>
+
 
+
'''------------------------- Ende der veralteten Beschreibung'''
+
 
+
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.<br/>
+
Für unsere Aufgabenstellung wählen wir<br/>
+
* Name: '''TuneBook'''<br/>
+
* TabellenName: '''mm_tunebook'''
+
 
+
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:<br/>
+
* Übersetzung '''anhaken'''<br/>
+
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.<br/>
+
[[Datei:MetaModels_Screen_TuneBook.png]]
+
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],<br/>
+
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.<br/>
+
Wir aktivieren sie zunächst nicht.}}
+
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.<br/>
+
Klick auf das rot markierte Icon:<br/>
+
[[Datei:MetaModels_Screen_Attribute_definieren.png]]
+
 
+
Gib nun wie unten aufgelistet die neuen Attribute ein:<br/>
+
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]<br/>
+
[[Datei:MetaModels_Screen_Attribute_bearbeiten.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) = Komponist/Urheber
+
* 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.
+
|-
+
|colspan="2"|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:<br/>
+
|-
+
|'''Veröffentlicht'''
+
|
+
* Attribute Type = Checkbox
+
* Column name = published
+
* Name (deutsch) = Veröffentlicht
+
* Description (deutsch) =
+
* check publish = aktiviert<br/>(vermutlich erzeugt diese Option die gewünschte Funktionalität)
+
|-
+
|colspan="2"|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:
+
|-
+
|'''Alias'''
+
|
+
* Attribute Type = Alias
+
* Column name = alias
+
* Name (deutsch) = Alias
+
* Description (deutsch) =
+
* Unique values = aktiviert
+
* Alias fields = Titel
+
* Force alias regenerating = aktiviert<br/>(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)
+
|}
+
 
+
Deine Attributs-Liste sollte nun wie folgt aussehen:<br/>
+
[[Datei:MetaModels_Screen_Attribute_Liste.png]]
+
 
+
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.<br/>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?}}
+
 
+
==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!<br/>
+
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst eine ''Ausgabevorgabe'' angelegt:<br/>[[Datei:MetaModels_Ausgabevorgabe.png]]<br/>
+
{{msgQuestion|''Ausgabevorgaben'' werden an anderen Stellen innerhalb MetaModels auch als ''Renderereinstellungen''(Modul MetaModels-Liste) oder als ''Ansicht''(Paletten- und Ansichtseinstellungen) bezeichnet.
+
 
+
Vielleicht sollte die Nomenklatur vereinheitlicht werden.}}
+
 
+
Auf der neu erscheinenden Backend-Seite <span style="color:blue;">(die leider durch nichts als ''Ausgabevorgabe''-Seite zu erkennen ist)</span> wird per [''Neu''] eine neue ''Ausgabevorgabe'' erzeugt.<br/>
+
[[Datei:MetaModels_Screen_Template_neu.png]]
+
 
+
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.<br/>Mit [''speichern und schließen''] gelangt man zurück zur Liste der Ausgabevorgaben.<br/>
+
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]
+
 
+
Über das rechte Icon gelangt man in den Dialog zur Bearbeitung.<br/>
+
[[Datei:MetaModels_Screen_Template_Liste.png]]
+
 
+
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute der Vorgabe hinzuzufügen. Die Attribute könnten auch gezielt oder in einer speziellen Reihenfolge einzeln hinzugefügt werden.<br/>
+
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]
+
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]
+
 
+
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.[[Datei:MetaModels_Screen_Template_Liste_AddAll_Ende.png]]
+
 
+
Per [''zurück''] kommen wir wieder zur Liste der Ausgabevorgaben. <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.[[Datei:MetaModels_Screen_Palette_neu.png]]
+
 
+
{|
+
|colspan="2"|Wir wählen die folgenden Einstellungen:
+
|-
+
|'''Name'''||Trad.-Liste
+
|-
+
|'''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'''||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...), 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
+
|-
+
|colspan="2"|[''speichern und schließen'']
+
|}.<br/>
+
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]
+
 
+
{{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.<br/>
+
[[Datei:MetaModels_Screen_Palette_Liste.png]]
+
 
+
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.<br/>
+
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]
+
 
+
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.<br/>
+
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]
+
 
+
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.-Liste
+
|-
+
|'''Ansicht wählen'''||Liste Backend<br/>Dies ist die vorhin angelegte Ausgabevorgabe
+
|}
+
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]
+
 
+
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].<br/>
+
Dieser Punkt soll von den Redakteuren verwendet werden.<br/>
+
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)<br/>
+
[[Datei:MetaModels_Screen_Backend_Module.png]]
+
 
+
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.<br/>
+
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]<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.
+
 
+
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.
+
 
+
==Anzeige der Daten im Frontend (Liste)==
+
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst eine Ausgabevorgabe, die wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]<br/>
+
Die neue Vorgabe nennen wir '''Trad-Liste FE'''.<br/>
+
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.
+
Für die Liste im Frontend reicht es in unserem Beispiel aus, nur den '''Titel''', den '''Typ''' und das '''Herkunftsland''' auszugeben. Also wählen wir diese Attribute mit dem 'Auge' aus.
+
 
+
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein
+
[[Datei:MetaModels_Filter.png]]<br/>
+
Der Filter wird per [''Neu''] angelegt und soll '''Published Filter''' heißen. Zur Bearbeitung gelangt man über das rechte Icon. Hier fügen wir eine [''Einfache Abfrage''] hinzu mit folgenden Einstellungen:
+
{|
+
|-
+
|'''Typ'''||Einfache Abfrage
+
|-
+
|'''Aktivieren'''||Haken gesetzt
+
|-
+
|'''Attribut'''||veröffentlicht [checkbox]
+
|-
+
|'''URL-Parameter'''||(kann leer bleiben)
+
|-
+
|'''Allow empty value'''||kein Haken
+
|-
+
|'''Static Parameter'''||Haken gesetzt
+
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]
+
[Speichern und schließen]
+
 
+
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur
+
{|
+
|-
+
|'''MetaModel'''||TuneBook
+
|-
+
|'''Sortieren nach'''||Titel
+
|-
+
|'''Anzuwendende Filtereinstellungen'''||Published Filter
+
|-
+
|'''Filter value for attribute "veröffentlicht"'''||1<br/>dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.
+
|-
+
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE<br/>die ''Ausgabevorgabe''
+
|}
+
[[Datei:MetaModels_Screen_Modul_Liste.png]]
+
[Speichern und schließen]
+
 
+
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.
+
 
+
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.
+
 
+
==Detailseite==
+
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.<br/>
+
Es wird als erstes eina Ausgabevorgabe für die Detailseite angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]<br/>
+
Die neue Vorgabe nennen wir '''Trad-Liste Detail'''.<br/>
+
Es werden wieder alle Attribute eingefügt ([''Add all'']) und diesmal wählen wir mit dem 'Auge' alle Attribute bis auf '''Alias''' und '''veröffentlicht''', da ja die vollständige Information ausgegeben werden soll.
+
 
+
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]<br/>
+
Dort wird eine '''Einfache Abfrage''' eingefügt, die natürlich aktiviert wird, wir wählen als Filter-Attribut '''Alias'''. Der URL-Parameter kann leer bleiben, auch die weiteren Optionen werden nicht ausgewählt.
+
 
+
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:
+
{|
+
|-
+
|'''MetaModel'''||TuneBook
+
|-
+
|'''Elemente pro Seite'''||1
+
|-
+
|'''Sortieren nach'''||-
+
|-
+
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)
+
|-
+
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail
+
|}
+
 
+
[Speichern und schließen]
+
 
+
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.
+
 
+
Schließlich kehren wir zurück zur Ausgabevorgabe '''Trad-Liste FE''' und ändern deren Einstellungen (über das Stift-Symbol):
+
Bei '''Jump to page''' selektieren wir über den kleinen Globus die eben angelegte Detail-Seite, zu der ein Link in der Liste erzeugt werden soll, und stellen bei '''Filter settings''' wieder den '''Tune-Alias Filter''' ein.
+
 
+
[Speichern und schließen]
+
 
+
Wenn alles geklappt hat, dann wird jetzt im Frontend in der Liste bei jedem Eintrag ein Link '''Details''' angezeigt. Dieser Link leitet zur Detailseite weiter, deren URL das Wort '''alias''' und den Alias des angeklickten Stücks enthält.<br/>
+
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.<br/>
+
Hurra!
+
 
+
==Filtern und Sortieren im Frontend==
+

Aktuelle Version vom 26. September 2013, 06:05 Uhr


MetaModels (aka Catalog 3) lernen an Beispielprojekten

Voraussetzungen

  • MetaModels ist der Nachfolger von Catalog. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zu Catalog besteht nicht
  • Die Bedienung und Administration von Contao sollte bekannt sein
  • MetaModels setzt Contao 2.11.x voraus.
  • MetaModels läuft in einer Alpha-Version unter Contao 3.x (Stand Oktober 2013), die auf der Projekt-Webseite zur Verfügung steht
  • MetaModels benötigt mindestens PHP 5.3
  • Bezüglich MetaModels werden keinerlei Vorkenntnisse vorausgesetzt

Download & Installation

  • MetaModels kann (noch) nicht über die Erweiterungsverwaltung geladen werden
  • Unter der URL now.metamodel.me findet sich die Möglichkeit, Installationsarchive in den Formaten tgz, tbz und zip mit so genannten Nightly Builds zu laden.
  • Die Nightly Builds werden stündlich mit dem aktuellsten Stand von MetaModels zum Download bereitgestellt
  • Detaillierte Infos zum Download und zur Installation findet man unter MetaModels.

Umsetzungsbeispiele

Wir werden eine Verwaltung unserer Musiksammlung erstellen und uns in mehreren Beispielen schrittweise von einer einfachen zu komplexeren Anwendungen vorarbeiten.

  1. Backend einrichten - Eingeben der Sammlung
  2. Frontend einrichten - Die Inhalte im Frontend anzeigen (Liste und Detail)
  3. Weitere Filter einrichten – Inhalte auf Published setzen, einfache Select-Filter
  4. Weiteres MetaModels einrichten - komplexe Select-Filter einsetzen
  5. Weiteres Beispiel: Übersetzter select - Mehrsprachiges Select-Attribut einrichten
Ansichten
Meine Werkzeuge

Contao Community Documentation

Ich brauch nen Bier, es ist zwar noch nicht nach 4, aber es ist nach Oli.

Yanick Witschi
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge