<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://dev.contaowiki.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://dev.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Folkfreund</id>
		<title>Contao Community Documentation - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Folkfreund"/>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Spezial:Beitr%C3%A4ge/Folkfreund"/>
		<updated>2026-05-13T12:46:18Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels</id>
		<title>MetaModels</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels"/>
				<updated>2013-03-17T12:48:26Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Beispiele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
{{ExtInfo&lt;br /&gt;
| Dev=Metamodels Team&lt;br /&gt;
| DevSite=&lt;br /&gt;
| Version=ab 2.11.X&lt;br /&gt;
| ERLink=&lt;br /&gt;
| VCSLink=https://github.com/MetaModels/core&lt;br /&gt;
| TrackerLink=https://github.com/MetaModels/core/issues&lt;br /&gt;
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Vorwort: Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=&lt;br /&gt;
Die Erweiterung MetaModels ist der Nachfolger der Catalog-Extension. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zum Catalog besteht nicht.&lt;br /&gt;
MetaModels setzt mind. Contao 2.11.6 und PHP 5.3 voraus. MetaModels ist (noch) nicht mit Contao 3.x kompatibel.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Download=&lt;br /&gt;
&lt;br /&gt;
==Download von der Demosite==&lt;br /&gt;
[[Datei:logo-metamodels.png|link=|left|105px]]&lt;br /&gt;
Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Webseite zur Extension mit einer Frontentdemo und der Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten Nightly Builds zu laden. Diese Archive beinhalten die MetaModels-Dateien, Attribute, Filter sowie sämtliche anderen Erweiterungen, die für den Betrieb nötig sind und ansonsten separat heruntergeladen und installiert werden müssen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download aus dem Entwicklungsrepository GitHub==&lt;br /&gt;
&lt;br /&gt;
[[Datei:logo-github.png|link=|left|105px]]&lt;br /&gt;
Zu finden ist die Erweiterung MetaModels auf GitHub:&lt;br /&gt;
[https://github.com/MetaModels github.com/Metamodels]&amp;lt;br&amp;gt;&lt;br /&gt;
Aktuell können das Core, dazu abhängige weitere Erweiterungen und alle weiteren MetaModels Attribute/Filter manuell installiert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Core===&lt;br /&gt;
* [https://github.com/MetaModels/core MetaModels (Das Core-Modul)]&lt;br /&gt;
&lt;br /&gt;
===Abhängigkeiten===&lt;br /&gt;
Benötigt werden folgende Erweiterungen:&lt;br /&gt;
* [https://github.com/MetaModels DC_General]&lt;br /&gt;
* [https://contao.org/de/extension-list/view/MetaPalettes.html MetaPalettes]&lt;br /&gt;
* [http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard]&lt;br /&gt;
* [https://github.com/Discordier/justtextwidgets justtextwidgets]&lt;br /&gt;
* [https://contao.org/de/extension-list/view/geoprotection.de.html geoprotection] (wird nur für das Attribut '''Geoprotection''' benötigt)&lt;br /&gt;
&lt;br /&gt;
===Verfügbare Attribute und Filter===&lt;br /&gt;
Sobald der Core und benötigten sonstigen Erweiterungen installiert sind, werde die weiteren Attributs- und Filterextensions des MetaModels benötigt.&lt;br /&gt;
Dazu gehören:&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Attribute''' !! '''Attribute (translated)''' !! '''Filter'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/attribute_alias Attribut: Alias]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_checkbox Attribut: Checkbox]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_decimal Attribut: Decimal]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_file Attribut: File]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_geoprotection Attribut: Geoprotection (Länderzuordnung)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_langcode Attribut: Langcode (Sprachencode)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_longtext Attribut: Longtext]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_select Attribut: Select]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_numeric Attribut: Numeric]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_tags Attribut: Tags]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_text Attribut: Text]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_timestamp Attribut: Timestamp (Datum)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_url Attribut: URL]&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedalias Attribut: Translated Alias]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedfile Attribut: Translated File]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedlongtext Attribut: Translated Longtext]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedselect Attribut: Translated Select]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedtags Attribut: Translated Tags]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedtext Attribut: Translated Text]&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/filter_checkbox Filter: Checkbox]&lt;br /&gt;
* [https://github.com/MetaModels/filter_fromto Filter: FromTo]&lt;br /&gt;
* [https://github.com/MetaModels/filter_range Filter: Range]&lt;br /&gt;
* [https://github.com/MetaModels/filter_select Filter: Select]&lt;br /&gt;
* [https://github.com/MetaModels/filter_tags Filter: Tags]&lt;br /&gt;
* [https://github.com/MetaModels/filter_text Filter: Text]&lt;br /&gt;
|}&lt;br /&gt;
Attribut- und Filterextensions werden für den Betrieb von MetaModels benötigt. Welche dieser Erweiterungen in einem Projekt zu Einsatz kommen sollen ist abhängig von den benötigten Funktionen.&lt;br /&gt;
&lt;br /&gt;
==Download via git und Kommandozeile==&lt;br /&gt;
In einer bash (Linux Kommandozeile bzw. cygwin Kommandozeile) kann man sich auch alle Unterprojekte der MetaModels via git clonen. Man sollte jedoch vorher in den Ordner wechseln, wohin die Projekte heruntergeladen werden sollen.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Linux'''  !! '''MacOS'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Alle MetaModel Repos holen&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Alle MetaModel Repos holen&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `curl https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die zu installieren Dateien müssen zur Installation im Contao-System wie folgt hochgeladen werden:&lt;br /&gt;
{| style=&amp;quot;width:80%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Module''' (/system/modules) !! '''Drivers''' (/system/drivers)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* generalDriver&lt;br /&gt;
* justtextwidgets&lt;br /&gt;
* metamodels&lt;br /&gt;
* metamodelsattribute_alias&lt;br /&gt;
* metamodelsattribute_checkbox&lt;br /&gt;
* metamodelsattribute_decimal&lt;br /&gt;
* metamodelsattribute_file&lt;br /&gt;
* metamodelsattribute_geoprotection&lt;br /&gt;
* metamodelsattribute_langcode&lt;br /&gt;
* metamodelsattribute_longtext&lt;br /&gt;
* metamodelsattribute_numeric&lt;br /&gt;
* metamodelsattribute_select&lt;br /&gt;
* metamodelsattribute_tags&lt;br /&gt;
* metamodelsattribute_text&lt;br /&gt;
* metamodelsattribute_timestamp&lt;br /&gt;
* metamodelsattribute_translatedalias&lt;br /&gt;
* metamodelsattribute_translatedfile&lt;br /&gt;
* metamodelsattribute_translatedlongtext&lt;br /&gt;
* metamodelsattribute_translatedselect&lt;br /&gt;
* metamodelsattribute_translatedtags&lt;br /&gt;
* metamodelsattribute_translatedtext&lt;br /&gt;
* metamodelsattribute_url&lt;br /&gt;
* metamodelsfilter_checkbox&lt;br /&gt;
* metamodelsfilter_fromto&lt;br /&gt;
* metamodelsfilter_range&lt;br /&gt;
* metamodelsfilter_select&lt;br /&gt;
* metamodelsfilter_tags&lt;br /&gt;
* metamodelsfilter_text&lt;br /&gt;
* metapalettes&lt;br /&gt;
* multicolumnwizard&lt;br /&gt;
|&lt;br /&gt;
* DC_General.php&lt;br /&gt;
|}&lt;br /&gt;
Danach muss mittels des Installtools ein Update der Datenbank gemacht werden.&lt;br /&gt;
&lt;br /&gt;
=Backend Ansichten=&lt;br /&gt;
&lt;br /&gt;
===Leeres MetaModel===&lt;br /&gt;
[[Datei:MetaModels_Backend_System.png|right|600px]]&lt;br /&gt;
Nach Aktualisierung der Datenbank erscheint '''MetaModels''' neu als eigenständige Einstellung unter '''System'''.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Erweiterungsverwaltung===&lt;br /&gt;
[[Datei:MetaModels_Backend_System_ER.png|link=|right|600px]]&lt;br /&gt;
In der Erweiterungsverwaltung findet sich hingegen nicht viel, was auf MetaModels hinweist. Aber das ist gut so (Stand Dez. 2012).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MetaModel mit null Datensätzen===&lt;br /&gt;
[[Datei:MetaModels_Backend_System_Beispiel.png|link=|right|600px]]&lt;br /&gt;
Nachdem ein erstes neues MetaModel erstellt wurde, erscheint folgende Darstellung:&lt;br /&gt;
Weiterführende Informationen zu einem einfachen Praxisbeispiel findet man unter [[MetaModels_Beispielprojekt|MetaModels Beispielprojekt]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Attribute===&lt;br /&gt;
[[File:icons_attribute.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Attribute|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Ausgabevorgaben===&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Ausgabevorgaben|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Paletteneinstellungen===&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Paletteneinstellungen|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Filter===&lt;br /&gt;
[[File:icons_filter.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Filter|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Ansichtseinstellungen===&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Ansichtseinstellungen|hier]].&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
Einführende Beispiele, wie man MetaModels einrichten und konfigurieren kannst, findest du hier:&lt;br /&gt;
# [[MetaModels_Beispiel_1| Backend einrichten]] - am Beispiel einer Musiksammlung, Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2| Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3| Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4| Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Frontendausgabe=&lt;br /&gt;
{{Hinweis|Die Dokumentation sollte in eine andere Seite ausgelagert werden}}&lt;br /&gt;
----&lt;br /&gt;
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)&amp;lt;br&amp;gt;&lt;br /&gt;
completed by [[Benutzer:Luis|Luis]], [[Benutzer:lucina|Lucina]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_4</id>
		<title>MetaModels Beispiel 4</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_4"/>
				<updated>2013-02-21T19:40:03Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MM Funktion: Ansichtseinstellungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Weiteres MetaModel einrichten=&lt;br /&gt;
Wer mit Catalog arbeitet, ist sich gewohnt, Selects einzusetzen, um Datensätze zu kategorisieren. In unserem Fall wäre es z.B. sinnvoll, unsere Musikstücke bestimmten Stilrichtungen zuzuordnen. &amp;lt;br&amp;gt;&lt;br /&gt;
Bei Catalog wurde hierfür die Erweiterung [https://contao.org/de/extension-list/view/taxonomy.10089.de.html Taxonomy] eingesetzt, um Hierarchien von Taxonomie-Bedingungen (oder besser bekannt als Tags) zu erstellen, die dann über ein Select bei der Datensatz-Erfassung abgerufen werden konnten. Im Wesentlichen wurde über Taxonomy eine separate Tabelle mit den später abzurufenden Kategorieren erfasst. &amp;lt;br&amp;gt;&lt;br /&gt;
Mit MetaModels entfällt der Rückgriff auf Taxonomy. Mit MetaModels kann man eigene Tabellen erfassen, die die Einträge der HTML-Selects enthalten.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Neues MetaModel erstellen=&lt;br /&gt;
&lt;br /&gt;
==Leeres MetaModel==&lt;br /&gt;
[[File:mm_neues_metamodel.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Wir beginnen damit, dass wir unter MetaModels ein neues MetaModel anlegen:&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Wir geben dem neuen MetaModel den Namen '''Musicbox - Stilrichtungen''' und den Tabellennamen '''mm_select_style'''&lt;br /&gt;
* Des weiteren aktivieren wir die '''Übersetzung''' setzen als Sprache '''Deutsch''' ein und aktivieren das '''Fallback'''&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:mm_neues_metamodel2.png|link=|left|730px]]&lt;br /&gt;
So. Nun steht uns ein neues, leeres MetaModel (mit null Datensätzen) zur Verfügung, das wir mit den Begriffen der benötigten Stilrichtungen füllen können.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Wir erfassen zuerst die benötigen Attribute für die Eingabe.&lt;br /&gt;
[[File:mm_neues_metamodel_attribute.png|link=|left|730px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein:&lt;br /&gt;
* '''Stilrichtung'''&lt;br /&gt;
** Attribute Type= Text&lt;br /&gt;
** Column name= style&lt;br /&gt;
** Name (deutsch)= Stilrichtung&lt;br /&gt;
** Description (deutsch)= Pop, Rock, New Wave, Jazz, etc.&lt;br /&gt;
&lt;br /&gt;
* '''Alias'''&lt;br /&gt;
** Attribute Type= Alias&lt;br /&gt;
** Column name= alias&lt;br /&gt;
** Name (deutsch)= Alias&lt;br /&gt;
** Description (deutsch)= Wird für URL benötigt.&lt;br /&gt;
** Unique values= aktiviert&lt;br /&gt;
** Alias fields= Titel&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Ausgabevorgaben==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Es wird eine neue Ausgabevorgabe benötigt.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ausgabevorgaben.png|thumb|180px]]&lt;br /&gt;
* Klick auf '''Neu'''&lt;br /&gt;
* Wir geben dem neuen Ausgabevorgabe den Namen '''BE Listenansicht'''&lt;br /&gt;
* Des weiteren fügen wir die Attribute hinzu&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Paletteneinstellung==&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
Es wird eine neue Paletteneinstellung benötigt.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_paletteneinstellungen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neu'''&lt;br /&gt;
* Wir geben dem neuen Ausgabevorgabe den Namen '''BE Erfassung'''&lt;br /&gt;
* Des weiteren fügen wir die Attribute hinzu&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Filter==&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
Es wird kein Filter benötigt.&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Ansichtseinstellungen==&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
Es werden wie gewohnt die Zugriffsberechtigung zugewiesen, damit wir auf die Tabelle über die Backend-Navigation zugreifen können.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|thumb|180px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Neues MetaModel 'MyMusik - Stilrichtungen' steht zum Abfüllen bereit=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_navi.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_navi2.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BE Liste==&lt;br /&gt;
[[File:mm_neues_metamodel_BE_liste.png|thumb|180px]]&lt;br /&gt;
* Über '''Neuer Datensatz''' fangen wir nun an, die Liste zu befüllen&lt;br /&gt;
* In unserem Fall erfassen wir die späteren Kategorien: Pop/Rock, Italo-Rock, New Wave, Fat Beat, Cantautore, Soul/Blues und Jazz&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BE Formular==&lt;br /&gt;
[[File:mm_neues_metamodel_BE_formular.png|thumb|180px]]&lt;br /&gt;
* Das BE Formular sieht ziemlich simpel aus&lt;br /&gt;
* Ein separates Feld &amp;quot;ID&amp;quot; brauchen wir nicht zu erfassen, denn dieses wird im Hintergrund automatisch generiert&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Auswahlfeld bei 'Musicbox' hinzufügen=&lt;br /&gt;
Wir klicken unser altes MetaModel '''Musicbox''' an und wählen dort die MM-Funktion '''Attribute''' an.&lt;br /&gt;
==Neues Attribut 'Stilrichtung'==&lt;br /&gt;
[[File:mm_neues_atribut.png|thumb|180px]]&lt;br /&gt;
* Das neue Attribut ist vom Typ '''Auswahl'''&lt;br /&gt;
* Column name: style&lt;br /&gt;
* Name: Stilrichtung&lt;br /&gt;
* Description:... wie es euch gefällt&lt;br /&gt;
&lt;br /&gt;
Nun kommt der eigentlich wichtige Teil. Wir stellen eine Verbindung zum neu geschaffenen MetaModel her&lt;br /&gt;
&lt;br /&gt;
* select_table: Hier erscheinen alle in der Contao-Installation verfügbaren Tabellen. Wir wählen hier unsere neue Tabelle '''mm_select_style''' aus&lt;br /&gt;
* select_id: Wir wählen '''id''' aus. Standardmässig führt jede Contao-Tabelle eine ID mit&lt;br /&gt;
* select_column: Wir wählen den Namen der Spalte aus... '''style'''&lt;br /&gt;
* select_alias: Wir wählen '''alias''' aus&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_atribut_musicbox.png|thumb|180px]]&lt;br /&gt;
Ab sofort steht uns nun in der BE Erfassung von '''MyMusic''' ein neues Feld '''Stilrichtung''' mit einem Select zur Verfügung. Das Select enthält nun alle Werte, die wir unter '''MyMusic - Stilrichtungen''' erfasst haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Zusätzlichen Select-Filter im Frontend definieren=&lt;br /&gt;
&lt;br /&gt;
==Filter bei MyMusic anpassen==&lt;br /&gt;
Der bereits exisitierende Filter '''FE Filter Published''' wird um weitere Einstellungen ergänzt&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul aktualisieren==&lt;br /&gt;
Das bereits existierende FE-Modul  'MM - MyMusik Filter' muss noch angepasst werden&lt;br /&gt;
&lt;br /&gt;
==weitere==&lt;br /&gt;
... to be continued&lt;br /&gt;
&lt;br /&gt;
=Vorschau=&lt;br /&gt;
...to be continued&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_3|Zurück zum Beispiel 3]] |&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_3</id>
		<title>MetaModels Beispiel 3</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_3"/>
				<updated>2013-02-21T19:37:07Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Neues Frontend-Modul erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Weitere Filter einrichten=&lt;br /&gt;
Wir bauen einen Mechanismus ein, mit dem wir entscheiden können, welcher der im MetaModel '''Musikbox''' erfassten Datensätze im Frontend erscheinen soll und welcher nicht. Mit dem speziellen Attribut &amp;quot;Published State&amp;quot; lässt sich so was einrichten und über einen Filter im Frontend steuern.&lt;br /&gt;
Darüber hinaus möchten wir die Listenansicht im Frontend etwas interaktiver gestalten, indem wir einen Filter als HTML-Select im Frontend zur Verfügung stellen, der die Liste z.B. nach Länder ausfiltert.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Backend einbauen=&lt;br /&gt;
&lt;br /&gt;
==Start==&lt;br /&gt;
[[File:mm_backend_anpassen0.png|thumb|180px]]&lt;br /&gt;
Die Übersichtsliste in unserer Musiksammlung '''MyMusic''' sieht noch wie nebenan aus.&lt;br /&gt;
&lt;br /&gt;
Hier möchten wir das Icon &amp;quot;Auge&amp;quot; einfügen, dass wir von anderen Contao-Backend Funktionen kennen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir das neue Attribut (s. auch [[MetaModels_Backend:_Attribute|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wähle '''New Attribute'''&lt;br /&gt;
* Wähle den Typ '''Checkbox''' aus und gibt die entsprechnden Werte ein&lt;br /&gt;
* Wichtig: '''Check publish''' muss angeklickt sein&lt;br /&gt;
* In deiner Attributsübersicht erscheint dir neu ein Feld '''Veröffentlicht'''&lt;br /&gt;
&lt;br /&gt;
Nun kann man in den entsprechenden anderen MM-Backend-Funktionen, die weiteren Anpassung vornehmen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben anpassen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wir passen die Listendarstellung für das Backend an (s. [[MetaModels_Backend:_Ausgabevorgaben|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir wählen die Attributseinstellungen von &amp;quot;BE Listenansicht&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; aus&lt;br /&gt;
* Es gibt einen automatischen Check welche Attribute bereits in die Rendersettings geladen wurden und welche nicht. Das neue Attribut &amp;quot;Veröffendlicht&amp;quot; wird hinzugefügt&lt;br /&gt;
* Es wird am Ende der Attributsliste hinzugefügt&lt;br /&gt;
&lt;br /&gt;
Damit sind die eigentlichen Anpassungen für das Backend schon abgeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Backendliste &amp;quot;MyMusik&amp;quot; nochmals prüfen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen3.png|thumb|180px]]&lt;br /&gt;
Wenn wir jetzt unsere Übersichtsliste in unserer Musiksammlung &amp;quot;MyMusic&amp;quot; nochmals ansehen, entdecken wir das Icon &amp;quot;Auge&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;Nun können wir im Backend steuern, ob ein Musikstück im Frontend angezeigt werden soll oder nicht.&lt;br /&gt;
&lt;br /&gt;
Damit das geschieht, müssen wir noch einen Filter erstellen, der den jeweiligen Frontend-Ansichten sagt, dass nur markierte Musikstücke veröffentlicht werden sollen.&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen ein paar Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: [[MetaModels_Backend:_Filter|Filter definieren]]==&lt;br /&gt;
Wir erstellen einen neuen Filter: &amp;quot;FE Filter published&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot;, bestätigen mit weiter&lt;br /&gt;
* Wir wählen den Typ &amp;quot;Published state&amp;quot;, wählen hierzu das vorhin erfasste Attribut &amp;quot; Veröffentlicht [checkbox]&amp;quot; und aktivieren diesen neuen Filter &amp;quot;FE Filter published&lt;br /&gt;
* ... und kehren zurück zur Filter-Übersichtsliste&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Select Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen diverse Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir nehmen den neuen Filter, ergänzen diesen und geben ihm einen neuen Namen &amp;quot;FE Filter published/Country&amp;quot;. Dieser angepasste Filter muss zwei Bedingungen erfüllen:&lt;br /&gt;
* Er soll wie bisher nur die publizierten Musikstücke anzeigen&lt;br /&gt;
* Er soll nur die Länder anzeigen, die wir über ein Select anwählen, das über der FE Liste angezeigt wird&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen3.png|thumb|180px]]&lt;br /&gt;
* Wir wählen die Filtereinstellungen des &amp;quot;Filters FE Filter published&amp;quot;&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot; und setzen die neue Einstellung unterhalb der Einstellung &amp;quot;Published State&amp;quot; ein&lt;br /&gt;
* Wir nehmen den Typ &amp;quot;Einfache Auswahl&amp;quot;, weisen das Attribut &amp;quot;Land [text]&amp;quot; zu und aktivieren diesen&lt;br /&gt;
* Optional wählen wir noch die Option &amp;quot;Leerer Wert&amp;quot; an. Dies bewirkt, dass im späteren Select überhalb unserer Länderauswahl ein leerer Eintrag generiert wird&lt;br /&gt;
* Wir &amp;quot;Speichern und schliessen&amp;quot; den Dialog&lt;br /&gt;
&lt;br /&gt;
Nun erscheint uns neu der Filter &amp;quot;FE Filter published&amp;quot; als eine Kombination von 2 Filtereinstellungen. Man kann sich nun leicht vorstellen, wie komplex man sich diesen Filter bauen kann, wenn man will.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen4.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir erstellen hier ein neues Frontend-Modul&lt;br /&gt;
* Wir wählen hierzu den Modultyp &amp;quot;MetaModels Filter&amp;quot; und geben ihm den Namen &amp;quot;MM - MyMusik Filter&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehendes Frontend-Modul anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen5.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir nehmen das &amp;amp;nbsp;Frontend-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
* Wir sortieren nach &amp;quot;Land&amp;quot; und &amp;quot;Aufsteigend&amp;quot;&lt;br /&gt;
* Neu ist nun, dass wir hier unter &amp;quot;anzuwendende Filtereinstellungen&amp;quot; den überarbeiteten Filter &amp;quot;FE Filter published&amp;quot; nehmen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehenden Artikel anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen6.png|thumb|180px]]&lt;br /&gt;
* Wir gehen nun zu unserem Artikel, wo wir einst unser Frontend-Modul &amp;quot;MM - MyMusic Liste&amp;quot; verbaut haben&lt;br /&gt;
* Darüber erstellen wir neu ein weiteres Inhaltselement, ein weiteres Frontend-Modul. Diesmal das neu erstellte FE-Modul &amp;quot;MM - MyMusic Filter&amp;quot;&lt;br /&gt;
* to be continued&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Die FE-Liste erscheint nun neu mit einem HTML-Select. Über die Auswahl lässt sich nun die darunterliegende Liste länderspezifisch verkürzen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel_filter.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_2|Zurück zur Beispiel 2]] | [[MetaModels_Beispiel_4|Weiter Beispiel 4: Weiter MetaModels hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_3</id>
		<title>MetaModels Beispiel 3</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_3"/>
				<updated>2013-02-21T19:36:21Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MM-Funktion: Filter definieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Weitere Filter einrichten=&lt;br /&gt;
Wir bauen einen Mechanismus ein, mit dem wir entscheiden können, welcher der im MetaModel '''Musikbox''' erfassten Datensätze im Frontend erscheinen soll und welcher nicht. Mit dem speziellen Attribut &amp;quot;Published State&amp;quot; lässt sich so was einrichten und über einen Filter im Frontend steuern.&lt;br /&gt;
Darüber hinaus möchten wir die Listenansicht im Frontend etwas interaktiver gestalten, indem wir einen Filter als HTML-Select im Frontend zur Verfügung stellen, der die Liste z.B. nach Länder ausfiltert.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Backend einbauen=&lt;br /&gt;
&lt;br /&gt;
==Start==&lt;br /&gt;
[[File:mm_backend_anpassen0.png|thumb|180px]]&lt;br /&gt;
Die Übersichtsliste in unserer Musiksammlung '''MyMusic''' sieht noch wie nebenan aus.&lt;br /&gt;
&lt;br /&gt;
Hier möchten wir das Icon &amp;quot;Auge&amp;quot; einfügen, dass wir von anderen Contao-Backend Funktionen kennen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir das neue Attribut (s. auch [[MetaModels_Backend:_Attribute|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wähle '''New Attribute'''&lt;br /&gt;
* Wähle den Typ '''Checkbox''' aus und gibt die entsprechnden Werte ein&lt;br /&gt;
* Wichtig: '''Check publish''' muss angeklickt sein&lt;br /&gt;
* In deiner Attributsübersicht erscheint dir neu ein Feld '''Veröffentlicht'''&lt;br /&gt;
&lt;br /&gt;
Nun kann man in den entsprechenden anderen MM-Backend-Funktionen, die weiteren Anpassung vornehmen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben anpassen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wir passen die Listendarstellung für das Backend an (s. [[MetaModels_Backend:_Ausgabevorgaben|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir wählen die Attributseinstellungen von &amp;quot;BE Listenansicht&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; aus&lt;br /&gt;
* Es gibt einen automatischen Check welche Attribute bereits in die Rendersettings geladen wurden und welche nicht. Das neue Attribut &amp;quot;Veröffendlicht&amp;quot; wird hinzugefügt&lt;br /&gt;
* Es wird am Ende der Attributsliste hinzugefügt&lt;br /&gt;
&lt;br /&gt;
Damit sind die eigentlichen Anpassungen für das Backend schon abgeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Backendliste &amp;quot;MyMusik&amp;quot; nochmals prüfen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen3.png|thumb|180px]]&lt;br /&gt;
Wenn wir jetzt unsere Übersichtsliste in unserer Musiksammlung &amp;quot;MyMusic&amp;quot; nochmals ansehen, entdecken wir das Icon &amp;quot;Auge&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;Nun können wir im Backend steuern, ob ein Musikstück im Frontend angezeigt werden soll oder nicht.&lt;br /&gt;
&lt;br /&gt;
Damit das geschieht, müssen wir noch einen Filter erstellen, der den jeweiligen Frontend-Ansichten sagt, dass nur markierte Musikstücke veröffentlicht werden sollen.&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen ein paar Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: [[MetaModels_Backend:_Filter|Filter definieren]]==&lt;br /&gt;
Wir erstellen einen neuen Filter: &amp;quot;FE Filter published&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot;, bestätigen mit weiter&lt;br /&gt;
* Wir wählen den Typ &amp;quot;Published state&amp;quot;, wählen hierzu das vorhin erfasste Attribut &amp;quot; Veröffentlicht [checkbox]&amp;quot; und aktivieren diesen neuen Filter &amp;quot;FE Filter published&lt;br /&gt;
* ... und kehren zurück zur Filter-Übersichtsliste&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Select Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen diverse Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir nehmen den neuen Filter, ergänzen diesen und geben ihm einen neuen Namen &amp;quot;FE Filter published/Country&amp;quot;. Dieser angepasste Filter muss zwei Bedingungen erfüllen:&lt;br /&gt;
* Er soll wie bisher nur die publizierten Musikstücke anzeigen&lt;br /&gt;
* Er soll nur die Länder anzeigen, die wir über ein Select anwählen, das über der FE Liste angezeigt wird&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen3.png|thumb|180px]]&lt;br /&gt;
* Wir wählen die Filtereinstellungen des &amp;quot;Filters FE Filter published&amp;quot;&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot; und setzen die neue Einstellung unterhalb der Einstellung &amp;quot;Published State&amp;quot; ein&lt;br /&gt;
* Wir nehmen den Typ &amp;quot;Einfache Auswahl&amp;quot;, weisen das Attribut &amp;quot;Land [text]&amp;quot; zu und aktivieren diesen&lt;br /&gt;
* Optional wählen wir noch die Option &amp;quot;Leerer Wert&amp;quot; an. Dies bewirkt, dass im späteren Select überhalb unserer Länderauswahl ein leerer Eintrag generiert wird&lt;br /&gt;
* Wir &amp;quot;Speichern und schliessen&amp;quot; den Dialog&lt;br /&gt;
&lt;br /&gt;
Nun erscheint uns neu der Filter &amp;quot;FE Filter published&amp;quot; als eine Kombination von 2 Filtereinstellungen. Man kann sich nun leicht vorstellen, wie komplex man sich diesen Filter bauen kann, wenn man will.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen4.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir erstellen hier ein neues Frontend-Modul&lt;br /&gt;
* Wir wählen hierzu den Modultyp &amp;quot;MetaModels Filter&amp;quot; und geben ihm den Nahmen &amp;quot;MM - MyMusik Filter&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehendes Frontend-Modul anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen5.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir nehmen das &amp;amp;nbsp;Frontend-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
* Wir sortieren nach &amp;quot;Land&amp;quot; und &amp;quot;Aufsteigend&amp;quot;&lt;br /&gt;
* Neu ist nun, dass wir hier unter &amp;quot;anzuwendende Filtereinstellungen&amp;quot; den überarbeiteten Filter &amp;quot;FE Filter published&amp;quot; nehmen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehenden Artikel anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen6.png|thumb|180px]]&lt;br /&gt;
* Wir gehen nun zu unserem Artikel, wo wir einst unser Frontend-Modul &amp;quot;MM - MyMusic Liste&amp;quot; verbaut haben&lt;br /&gt;
* Darüber erstellen wir neu ein weiteres Inhaltselement, ein weiteres Frontend-Modul. Diesmal das neu erstellte FE-Modul &amp;quot;MM - MyMusic Filter&amp;quot;&lt;br /&gt;
* to be continued&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Die FE-Liste erscheint nun neu mit einem HTML-Select. Über die Auswahl lässt sich nun die darunterliegende Liste länderspezifisch verkürzen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel_filter.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_2|Zurück zur Beispiel 2]] | [[MetaModels_Beispiel_4|Weiter Beispiel 4: Weiter MetaModels hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_3</id>
		<title>MetaModels Beispiel 3</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_3"/>
				<updated>2013-02-21T19:32:45Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MM-Funktion: Filter definieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Weitere Filter einrichten=&lt;br /&gt;
Wir bauen einen Mechanismus ein, mit dem wir entscheiden können, welcher der im MetaModel '''Musikbox''' erfassten Datensätze im Frontend erscheinen soll und welcher nicht. Mit dem speziellen Attribut &amp;quot;Published State&amp;quot; lässt sich so was einrichten und über einen Filter im Frontend steuern.&lt;br /&gt;
Darüber hinaus möchten wir die Listenansicht im Frontend etwas interaktiver gestalten, indem wir einen Filter als HTML-Select im Frontend zur Verfügung stellen, der die Liste z.B. nach Länder ausfiltert.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Backend einbauen=&lt;br /&gt;
&lt;br /&gt;
==Start==&lt;br /&gt;
[[File:mm_backend_anpassen0.png|thumb|180px]]&lt;br /&gt;
Die Übersichtsliste in unserer Musiksammlung '''MyMusic''' sieht noch wie nebenan aus.&lt;br /&gt;
&lt;br /&gt;
Hier möchten wir das Icon &amp;quot;Auge&amp;quot; einfügen, dass wir von anderen Contao-Backend Funktionen kennen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir das neue Attribut (s. auch [[MetaModels_Backend:_Attribute|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wähle '''New Attribute'''&lt;br /&gt;
* Wähle den Typ '''Checkbox''' aus und gibt die entsprechnden Werte ein&lt;br /&gt;
* Wichtig: '''Check publish''' muss angeklickt sein&lt;br /&gt;
* In deiner Attributsübersicht erscheint dir neu ein Feld '''Veröffentlicht'''&lt;br /&gt;
&lt;br /&gt;
Nun kann man in den entsprechenden anderen MM-Backend-Funktionen, die weiteren Anpassung vornehmen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben anpassen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wir passen die Listendarstellung für das Backend an (s. [[MetaModels_Backend:_Ausgabevorgaben|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir wählen die Attributseinstellungen von &amp;quot;BE Listenansicht&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; aus&lt;br /&gt;
* Es gibt einen automatischen Check welche Attribute bereits in die Rendersettings geladen wurden und welche nicht. Das neue Attribut &amp;quot;Veröffendlicht&amp;quot; wird hinzugefügt&lt;br /&gt;
* Es wird am Ende der Attributsliste hinzugefügt&lt;br /&gt;
&lt;br /&gt;
Damit sind die eigentlichen Anpassungen für das Backend schon abgeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Backendliste &amp;quot;MyMusik&amp;quot; nochmals prüfen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen3.png|thumb|180px]]&lt;br /&gt;
Wenn wir jetzt unsere Übersichtsliste in unserer Musiksammlung &amp;quot;MyMusic&amp;quot; nochmals ansehen, entdecken wir das Icon &amp;quot;Auge&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;Nun können wir im Backend steuern, ob ein Musikstück im Frontend angezeigt werden soll oder nicht.&lt;br /&gt;
&lt;br /&gt;
Damit das geschieht, müssen wir noch einen Filter erstellen, der den jeweiligen Frontend-Ansichten sagt, dass nur markierte Musikstücke veröffentlicht werden sollen.&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen ein paar Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: [[MetaModels_Backend:_Filter|Filter definieren]]==&lt;br /&gt;
Wir erstellen einen neuen Filter: &amp;quot;FE Filter published&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot;, bestätigen mit weiter&lt;br /&gt;
* Wir wählen den Typ &amp;quot;Published state&amp;quot;, wählen hierzu das vorhin erfasste Attribut &amp;quot; Veröffentlicht [checkbox]&amp;quot; und aktivieren diesen neuen Filter &amp;quot;FE Filter published&lt;br /&gt;
* ... und kehren zurück zur Filter-Übersichtsliste&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Select Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen diverse Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir nehmen den neuen Filter, ergänzen diesen und geben ihm einen neuen Namen &amp;quot;FE Filter published/Country&amp;quot;. Dieser angepasste Filter muss zwei Bedingungen erfüllen:&lt;br /&gt;
* Er soll wie bisher nur die publizierten Musikstücke anzeigen&lt;br /&gt;
* Er soll nur die Länder anzeigen, wir wir über ein Select anwählen, das über der FE Liste angezeigt wird&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen3.png|thumb|180px]]&lt;br /&gt;
* Wir wähen die Filtereinstellungen des &amp;quot;Filters FE Filter published&amp;quot;&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot; und setzen die neue Einstellung unterhalb der Einstellung &amp;quot;Published State&amp;quot; ein&lt;br /&gt;
* Wir nehmen den Typ &amp;quot;Einfache Auswahl&amp;quot;, weisen das Attribut &amp;quot;Land [text]&amp;quot; zu und aktivieren diesen&lt;br /&gt;
* Optional wählen wir noch die Option &amp;quot;Leerer Wert&amp;quot; an. Dies bewirkt, dass im späteren Select überhalb unserer Länderauswahl ein leerer Eintrag generiert wird&lt;br /&gt;
* Wir &amp;quot;Speicher und schliessen&amp;quot; den Dialog&lt;br /&gt;
&lt;br /&gt;
Nun erscheint uns neu der Filter &amp;quot;FE Filter published&amp;quot; als eine Kombination von 2 Filtereinstellungen. Man kann sich nun leicht vorstellen, wie komplex man sich diesen Filter bauen kann, wenn man will.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen4.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir erstellen hier ein neues Frontend-Modul&lt;br /&gt;
* Wir wählen hierzu den Modultyp &amp;quot;MetaModels Filter&amp;quot; und geben ihm den Nahmen &amp;quot;MM - MyMusik Filter&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehendes Frontend-Modul anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen5.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir nehmen das &amp;amp;nbsp;Frontend-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
* Wir sortieren nach &amp;quot;Land&amp;quot; und &amp;quot;Aufsteigend&amp;quot;&lt;br /&gt;
* Neu ist nun, dass wir hier unter &amp;quot;anzuwendende Filtereinstellungen&amp;quot; den überarbeiteten Filter &amp;quot;FE Filter published&amp;quot; nehmen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehenden Artikel anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen6.png|thumb|180px]]&lt;br /&gt;
* Wir gehen nun zu unserem Artikel, wo wir einst unser Frontend-Modul &amp;quot;MM - MyMusic Liste&amp;quot; verbaut haben&lt;br /&gt;
* Darüber erstellen wir neu ein weiteres Inhaltselement, ein weiteres Frontend-Modul. Diesmal das neu erstellte FE-Modul &amp;quot;MM - MyMusic Filter&amp;quot;&lt;br /&gt;
* to be continued&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Die FE-Liste erscheint nun neu mit einem HTML-Select. Über die Auswahl lässt sich nun die darunterliegende Liste länderspezifisch verkürzen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel_filter.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_2|Zurück zur Beispiel 2]] | [[MetaModels_Beispiel_4|Weiter Beispiel 4: Weiter MetaModels hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_3</id>
		<title>MetaModels Beispiel 3</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_3"/>
				<updated>2013-02-21T19:31:36Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MM-Funktion: Ausgabevorgaben anpassen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Weitere Filter einrichten=&lt;br /&gt;
Wir bauen einen Mechanismus ein, mit dem wir entscheiden können, welcher der im MetaModel '''Musikbox''' erfassten Datensätze im Frontend erscheinen soll und welcher nicht. Mit dem speziellen Attribut &amp;quot;Published State&amp;quot; lässt sich so was einrichten und über einen Filter im Frontend steuern.&lt;br /&gt;
Darüber hinaus möchten wir die Listenansicht im Frontend etwas interaktiver gestalten, indem wir einen Filter als HTML-Select im Frontend zur Verfügung stellen, der die Liste z.B. nach Länder ausfiltert.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Backend einbauen=&lt;br /&gt;
&lt;br /&gt;
==Start==&lt;br /&gt;
[[File:mm_backend_anpassen0.png|thumb|180px]]&lt;br /&gt;
Die Übersichtsliste in unserer Musiksammlung '''MyMusic''' sieht noch wie nebenan aus.&lt;br /&gt;
&lt;br /&gt;
Hier möchten wir das Icon &amp;quot;Auge&amp;quot; einfügen, dass wir von anderen Contao-Backend Funktionen kennen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir das neue Attribut (s. auch [[MetaModels_Backend:_Attribute|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wähle '''New Attribute'''&lt;br /&gt;
* Wähle den Typ '''Checkbox''' aus und gibt die entsprechnden Werte ein&lt;br /&gt;
* Wichtig: '''Check publish''' muss angeklickt sein&lt;br /&gt;
* In deiner Attributsübersicht erscheint dir neu ein Feld '''Veröffentlicht'''&lt;br /&gt;
&lt;br /&gt;
Nun kann man in den entsprechenden anderen MM-Backend-Funktionen, die weiteren Anpassung vornehmen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben anpassen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wir passen die Listendarstellung für das Backend an (s. [[MetaModels_Backend:_Ausgabevorgaben|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir wählen die Attributseinstellungen von &amp;quot;BE Listenansicht&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; aus&lt;br /&gt;
* Es gibt einen automatischen Check welche Attribute bereits in die Rendersettings geladen wurden und welche nicht. Das neue Attribut &amp;quot;Veröffendlicht&amp;quot; wird hinzugefügt&lt;br /&gt;
* Es wird am Ende der Attributsliste hinzugefügt&lt;br /&gt;
&lt;br /&gt;
Damit sind die eigentlichen Anpassungen für das Backend schon abgeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Backendliste &amp;quot;MyMusik&amp;quot; nochmals prüfen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen3.png|thumb|180px]]&lt;br /&gt;
Wenn wir jetzt unsere Übersichtsliste in unserer Musiksammlung &amp;quot;MyMusic&amp;quot; nochmals ansehen, entdecken wir das Icon &amp;quot;Auge&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;Nun können wir im Backend steuern, ob ein Musikstück im Frontend angezeigt werden soll oder nicht.&lt;br /&gt;
&lt;br /&gt;
Damit das geschieht, müssen wir noch einen Filter erstellen, der den jeweiligen Frontend-Ansichten sagt, dass nur markierte Musikstücke veröffentlicht werden sollen.&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen ein paar Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir erstellen einen neuen Filter: &amp;quot;FE Filter published&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot;, bestätigen mit weiter&lt;br /&gt;
* Wir wählen den Typ &amp;quot;Published state&amp;quot;, wählen hierzu das vorhin erfasste Attribut &amp;quot; Veröffentlicht [checkbox]&amp;quot; und aktivieren diesen neuen Filter &amp;quot;FE Filter published&lt;br /&gt;
* ... und kehren zurück zur Filter-Übersichtsliste&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Select Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen diverse Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir nehmen den neuen Filter, ergänzen diesen und geben ihm einen neuen Namen &amp;quot;FE Filter published/Country&amp;quot;. Dieser angepasste Filter muss zwei Bedingungen erfüllen:&lt;br /&gt;
* Er soll wie bisher nur die publizierten Musikstücke anzeigen&lt;br /&gt;
* Er soll nur die Länder anzeigen, wir wir über ein Select anwählen, das über der FE Liste angezeigt wird&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen3.png|thumb|180px]]&lt;br /&gt;
* Wir wähen die Filtereinstellungen des &amp;quot;Filters FE Filter published&amp;quot;&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot; und setzen die neue Einstellung unterhalb der Einstellung &amp;quot;Published State&amp;quot; ein&lt;br /&gt;
* Wir nehmen den Typ &amp;quot;Einfache Auswahl&amp;quot;, weisen das Attribut &amp;quot;Land [text]&amp;quot; zu und aktivieren diesen&lt;br /&gt;
* Optional wählen wir noch die Option &amp;quot;Leerer Wert&amp;quot; an. Dies bewirkt, dass im späteren Select überhalb unserer Länderauswahl ein leerer Eintrag generiert wird&lt;br /&gt;
* Wir &amp;quot;Speicher und schliessen&amp;quot; den Dialog&lt;br /&gt;
&lt;br /&gt;
Nun erscheint uns neu der Filter &amp;quot;FE Filter published&amp;quot; als eine Kombination von 2 Filtereinstellungen. Man kann sich nun leicht vorstellen, wie komplex man sich diesen Filter bauen kann, wenn man will.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen4.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir erstellen hier ein neues Frontend-Modul&lt;br /&gt;
* Wir wählen hierzu den Modultyp &amp;quot;MetaModels Filter&amp;quot; und geben ihm den Nahmen &amp;quot;MM - MyMusik Filter&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehendes Frontend-Modul anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen5.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir nehmen das &amp;amp;nbsp;Frontend-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
* Wir sortieren nach &amp;quot;Land&amp;quot; und &amp;quot;Aufsteigend&amp;quot;&lt;br /&gt;
* Neu ist nun, dass wir hier unter &amp;quot;anzuwendende Filtereinstellungen&amp;quot; den überarbeiteten Filter &amp;quot;FE Filter published&amp;quot; nehmen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehenden Artikel anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen6.png|thumb|180px]]&lt;br /&gt;
* Wir gehen nun zu unserem Artikel, wo wir einst unser Frontend-Modul &amp;quot;MM - MyMusic Liste&amp;quot; verbaut haben&lt;br /&gt;
* Darüber erstellen wir neu ein weiteres Inhaltselement, ein weiteres Frontend-Modul. Diesmal das neu erstellte FE-Modul &amp;quot;MM - MyMusic Filter&amp;quot;&lt;br /&gt;
* to be continued&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Die FE-Liste erscheint nun neu mit einem HTML-Select. Über die Auswahl lässt sich nun die darunterliegende Liste länderspezifisch verkürzen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel_filter.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_2|Zurück zur Beispiel 2]] | [[MetaModels_Beispiel_4|Weiter Beispiel 4: Weiter MetaModels hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_3</id>
		<title>MetaModels Beispiel 3</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_3"/>
				<updated>2013-02-21T19:30:45Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MM-Funktion: Attribute anpassen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Weitere Filter einrichten=&lt;br /&gt;
Wir bauen einen Mechanismus ein, mit dem wir entscheiden können, welcher der im MetaModel '''Musikbox''' erfassten Datensätze im Frontend erscheinen soll und welcher nicht. Mit dem speziellen Attribut &amp;quot;Published State&amp;quot; lässt sich so was einrichten und über einen Filter im Frontend steuern.&lt;br /&gt;
Darüber hinaus möchten wir die Listenansicht im Frontend etwas interaktiver gestalten, indem wir einen Filter als HTML-Select im Frontend zur Verfügung stellen, der die Liste z.B. nach Länder ausfiltert.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Backend einbauen=&lt;br /&gt;
&lt;br /&gt;
==Start==&lt;br /&gt;
[[File:mm_backend_anpassen0.png|thumb|180px]]&lt;br /&gt;
Die Übersichtsliste in unserer Musiksammlung '''MyMusic''' sieht noch wie nebenan aus.&lt;br /&gt;
&lt;br /&gt;
Hier möchten wir das Icon &amp;quot;Auge&amp;quot; einfügen, dass wir von anderen Contao-Backend Funktionen kennen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir das neue Attribut (s. auch [[MetaModels_Backend:_Attribute|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wähle '''New Attribute'''&lt;br /&gt;
* Wähle den Typ '''Checkbox''' aus und gibt die entsprechnden Werte ein&lt;br /&gt;
* Wichtig: '''Check publish''' muss angeklickt sein&lt;br /&gt;
* In deiner Attributsübersicht erscheint dir neu ein Feld '''Veröffentlicht'''&lt;br /&gt;
&lt;br /&gt;
Nun kann man in den entsprechenden anderen MM-Backend-Funktionen, die weiteren Anpassung vornehmen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben anpassen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wir passen die Listendarstellung für das Backend an&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir wählen die Attributseinstellungen von &amp;quot;BE Listenansicht&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; aus&lt;br /&gt;
* Es gibt einen automatischen Check welche Attribute bereits in die Rendersettings geladen wurden und welche nicht. Das neue Attribut &amp;quot;Veröffendlicht&amp;quot; wird hinzugefügt&lt;br /&gt;
* Es wird am Ende der Attributsliste hinzugefügt&lt;br /&gt;
&lt;br /&gt;
Damit sind die eigentlichen Anpassungen für das Backend schon abgeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Backendliste &amp;quot;MyMusik&amp;quot; nochmals prüfen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen3.png|thumb|180px]]&lt;br /&gt;
Wenn wir jetzt unsere Übersichtsliste in unserer Musiksammlung &amp;quot;MyMusic&amp;quot; nochmals ansehen, entdecken wir das Icon &amp;quot;Auge&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;Nun können wir im Backend steuern, ob ein Musikstück im Frontend angezeigt werden soll oder nicht.&lt;br /&gt;
&lt;br /&gt;
Damit das geschieht, müssen wir noch einen Filter erstellen, der den jeweiligen Frontend-Ansichten sagt, dass nur markierte Musikstücke veröffentlicht werden sollen.&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen ein paar Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir erstellen einen neuen Filter: &amp;quot;FE Filter published&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen1.png|thumb|180px]]&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot;, bestätigen mit weiter&lt;br /&gt;
* Wir wählen den Typ &amp;quot;Published state&amp;quot;, wählen hierzu das vorhin erfasste Attribut &amp;quot; Veröffentlicht [checkbox]&amp;quot; und aktivieren diesen neuen Filter &amp;quot;FE Filter published&lt;br /&gt;
* ... und kehren zurück zur Filter-Übersichtsliste&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgenden Stellen zwei Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
* Als Filter Value für das Attribut &amp;quot;Veröffentlicht&amp;quot; wählen wir den Wert &amp;quot;1&amp;quot; ( 1 steht bei Checkboxen ganz allgemein für &amp;quot;angeklickt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Select Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen diverse Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir nehmen den neuen Filter, ergänzen diesen und geben ihm einen neuen Namen &amp;quot;FE Filter published/Country&amp;quot;. Dieser angepasste Filter muss zwei Bedingungen erfüllen:&lt;br /&gt;
* Er soll wie bisher nur die publizierten Musikstücke anzeigen&lt;br /&gt;
* Er soll nur die Länder anzeigen, wir wir über ein Select anwählen, das über der FE Liste angezeigt wird&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen3.png|thumb|180px]]&lt;br /&gt;
* Wir wähen die Filtereinstellungen des &amp;quot;Filters FE Filter published&amp;quot;&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot; und setzen die neue Einstellung unterhalb der Einstellung &amp;quot;Published State&amp;quot; ein&lt;br /&gt;
* Wir nehmen den Typ &amp;quot;Einfache Auswahl&amp;quot;, weisen das Attribut &amp;quot;Land [text]&amp;quot; zu und aktivieren diesen&lt;br /&gt;
* Optional wählen wir noch die Option &amp;quot;Leerer Wert&amp;quot; an. Dies bewirkt, dass im späteren Select überhalb unserer Länderauswahl ein leerer Eintrag generiert wird&lt;br /&gt;
* Wir &amp;quot;Speicher und schliessen&amp;quot; den Dialog&lt;br /&gt;
&lt;br /&gt;
Nun erscheint uns neu der Filter &amp;quot;FE Filter published&amp;quot; als eine Kombination von 2 Filtereinstellungen. Man kann sich nun leicht vorstellen, wie komplex man sich diesen Filter bauen kann, wenn man will.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen4.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir erstellen hier ein neues Frontend-Modul&lt;br /&gt;
* Wir wählen hierzu den Modultyp &amp;quot;MetaModels Filter&amp;quot; und geben ihm den Nahmen &amp;quot;MM - MyMusik Filter&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehendes Frontend-Modul anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen5.png|thumb|180px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir nehmen das &amp;amp;nbsp;Frontend-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
* Wir sortieren nach &amp;quot;Land&amp;quot; und &amp;quot;Aufsteigend&amp;quot;&lt;br /&gt;
* Neu ist nun, dass wir hier unter &amp;quot;anzuwendende Filtereinstellungen&amp;quot; den überarbeiteten Filter &amp;quot;FE Filter published&amp;quot; nehmen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehenden Artikel anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen6.png|thumb|180px]]&lt;br /&gt;
* Wir gehen nun zu unserem Artikel, wo wir einst unser Frontend-Modul &amp;quot;MM - MyMusic Liste&amp;quot; verbaut haben&lt;br /&gt;
* Darüber erstellen wir neu ein weiteres Inhaltselement, ein weiteres Frontend-Modul. Diesmal das neu erstellte FE-Modul &amp;quot;MM - MyMusic Filter&amp;quot;&lt;br /&gt;
* to be continued&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Die FE-Liste erscheint nun neu mit einem HTML-Select. Über die Auswahl lässt sich nun die darunterliegende Liste länderspezifisch verkürzen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel_filter.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_2|Zurück zur Beispiel 2]] | [[MetaModels_Beispiel_4|Weiter Beispiel 4: Weiter MetaModels hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_2</id>
		<title>MetaModels Beispiel 2</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_2"/>
				<updated>2013-02-21T19:28:26Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Detailansicht erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Frontend einrichten=&lt;br /&gt;
&lt;br /&gt;
Wir haben im Backend bereits ein paar Daten (Musikstücke) erfasst und möchten diese nun im Frontend anzeigen lassen. Hierfür benötigen wir eine Übersichtseite (Liste) und eine Detailsansicht. Plus noch eine minimale Navigation, um zwischen Liste und Detailansicht hin- und herklicken zu können.&lt;br /&gt;
Hierbei werden wir auch die Filtertechnik von MetaModels einsetzen.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Seiterstruktur anpassen=&lt;br /&gt;
== In der Seitenstruktur zwei leere Seiten einrichten==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_seitenstruktur_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst richten wir in der Seitenstruktur zwei neue (leere) Seiten ein.&lt;br /&gt;
&lt;br /&gt;
* '''Musicbox''' (diese Seite wird die Listenansicht aufnehmen)&lt;br /&gt;
* '''Music''' (diese Seite wird für die Darstellung der Detailansicht verantwortlich sein)&lt;br /&gt;
&lt;br /&gt;
Sowohl MetaModels als auch die später benötigten Frontend-Module werden auf diese Seiten zugreifen müssen, deswegen richten wir diese vorab ein, auch wenn noch kein Inhalt definiert ist.&lt;br /&gt;
&lt;br /&gt;
==Einfachen Filter erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Wir steigen nun wieder bei MetaModels bei '''Musicbox''' ein und gehen zur [[MetaModels_Backend:_Filter|MM-Backend Funktion: Filter]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hier müssen wir thematisch etwas vorausgreifen, und ein Instrument MetaModels bereitstellen, das bei der Einrichtung der Frontend-Ansichten in MetaModels benötigt wird: Wir brauchen einen Filter.&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung, sowohl im Backend als auch im Frontend.&amp;amp;nbsp;Aus der Sicht MetaModels gibt es nicht eine Listen- und eine separate Archivansicht, wie man das z.B. von News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Es ist der Filter, der bestimmt ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird.&lt;br /&gt;
Mit anderen Worten: Möchte man mit MetaModels aus einer Liste von Einträgen einen einzigen anzeigen lassen und diese Einzelansicht vielleicht auch noch leicht anders anzeigen lassen, benötigt man einen Filter.&lt;br /&gt;
&lt;br /&gt;
* Die Filterübersicht ist noch leer (Keine Einträge gefunden). Klick auf '''neu'''&lt;br /&gt;
* Gib einen Namen ein, z.B. &amp;quot;FE Link Detail&amp;quot; (FE steht für Frontend)&lt;br /&gt;
* Die Filterübersicht zeigt nun einen ersten Eintrag. Wähle das rechte Icon &amp;quot;Filter einrichten&amp;quot;&lt;br /&gt;
* Klick auf '''neu''' und wähle das Icon (mit Pfeil) für '''einsetzen'''&lt;br /&gt;
* Nun kannst du den Typ auswählen. Wir wählen '''Einfache Abfrage'''&lt;br /&gt;
* Als Attribut wählen wir &amp;quot;Alias&amp;quot; und geben noch die URL-Parameter &amp;quot;auto_item&amp;quot; mit&lt;br /&gt;
* Alle weiteren Optionen bleiben leer oder nicht angeklickt. Als Template nehmen wir was vorgegeben wird: &amp;quot;mm_filteritem_default&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Der Filter &amp;quot;FE Link Detail&amp;quot; besteht nun aus einer einzigen Definition. Wir werden in einem späteren Beispiel sehen, dass ein Filter auch aus mehreren Definitionen bestehen. Das ist eine weitere Neuerung in MetaModels, nämlich, dass man sich im Wesentlichen seine eigenen Filter zusammenbauen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listenansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion [[MetaModels_Backend:_Ausgabevorgaben|&amp;quot;Ausgabevorgaben&amp;quot;]]&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Listenansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* Als Zielseite geben wir die vorhin definierte Seite &amp;quot;Music&amp;quot; an. Klick hierzu auf das Icon &amp;quot;Globus&amp;quot;, wähle die Seite aus dem Pulldown-Menu aus, automatisch wird dann die link_url::ID eingesetzt&lt;br /&gt;
* Als Filtersettting wählen wir den vorhin definierten Filter &amp;quot;FE Link Detail&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun zwei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen legen wir grob fest, welches Aussehen (Template) die Seite haben, wohin die Reise gehen (Zielseite) und was bei dieser Zielseite angezeigt werden soll (was durch den Filter bestimmt wird).&lt;br /&gt;
Hinweis: Wenn wir hier keinen Filter angeben, wird später im Frontend keine &amp;quot;Detail&amp;quot;-Link erscheinen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Listenansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf das Icon rechts &amp;quot;Attribute hinzufügen&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; (geht schneller und einfacher als alle über &amp;quot;neu&amp;quot; hinzufügen)&lt;br /&gt;
* Bestätige die folgenden Screens&lt;br /&gt;
* Lege fest, welche Attribute in der Listenansicht angezeigt werden sollen (Icon &amp;quot;Auge&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Man kann auch die Einstellung der Attribute anschauen, wie im letzten Screen angezeigt. Standardmäßig wird jedem Attribut zusätzlich ein Template mitgegeben. In unserem Beispiel analog dem Typ das Template &amp;quot;mm_attr_text (global scope)&amp;quot;.&lt;br /&gt;
Man erkennt hier schon im Ansatz, dass in MetaModels praktisch jedes Detail über ein Template gesteuert wird. Was für eine mögliche Individualisierung letztlich heißt, dass man in der freien Gestaltung potentiell unendliche viele Möglichkeiten zur Verfügung gestellt bekommt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Detailansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion [[MetaModels_Backend:_Ausgabevorgaben|&amp;quot;Ausgabevorgaben&amp;quot;]]&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; und &amp;quot;FE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Detailansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* In diesem Fall brauchen wir weder eine Zielseite noch ein Filtersettting anzugeben, denn bis hierher und nicht weiter wollen wir gelangen&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun drei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Detailansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Das Vorgehen ist analog zum Punkt 4 zu verstehen. Einzig, dass wir hier am Ende alle Attribute anzeigen lassen (inkl. Bild und Beschreibung).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Liste.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Frontend-Modul für Listenansicht einrichten:&lt;br /&gt;
&lt;br /&gt;
* Wähle den Modultyp &amp;quot;MetaModels-Liste&amp;quot; aus&lt;br /&gt;
* Wähle das entsprechend MetaModel aus, in unserem Fall &amp;quot;Musicbox&amp;quot;&lt;br /&gt;
* Bei &amp;quot;Sortieren nach&amp;quot; und &amp;quot;Sortierreihenfolge&amp;quot; das gewünschte Attribut bzw. ob auf- oder absteigend sortiert werden soll&lt;br /&gt;
* &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; bleibt vorläuftig leer. Das heißt soviel wie, dass wir in unserer Liste alle Datensätze (Musikstücke), die wir in unserer Musicbox erfasst haben, in der Liste anzeigen möchten&lt;br /&gt;
* Bei &amp;quot;Eigenes Template für Datensatzliste auswählen&amp;quot; den vorgegebenen Default &amp;quot;mod_metamodel_list&amp;quot; nehmen&lt;br /&gt;
* Bei Anzunehmende Rendereinstellung nehmen wir nun die zuvor definierte Ausgabevoreinstellung &amp;quot;FE Listenansicht&amp;quot;. Damit werden nur die Daten der Felder ausgegeben, die wir unter Punkt 9 als sichtbar gekennzeichnet haben, und zwar in der dort definierten Reihenfolge&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Detail.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Dieses FE-Modul richten wir analog dem FE-Modul der Listenansicht ein, allerdings mit zwei wichtigen Unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; muss nun der Filter &amp;quot;FE Link Detail&amp;quot; angewählt werden. Dieser bewirkt, dass man hier, in der Detailansicht, auch nur den Datenansatz angezeigt bekommt, den man in der Listenansicht angeklickt hatte.&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Rendereinstellungen&amp;quot; wählen wir die Ansichtsdarstellung definierte Einstellung &amp;quot;FE Detailansicht&amp;quot;. Hier werden alle Daten angezeigt, die wir unter Punkt ... als sichtbar angegeben haben. In diesem Falle alle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module einbinden und Seitenvorschau==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_einsetzen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zum Schluss bindet man die beiden Frontend-Module in den gewünschten Artikel ein.&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Mögliches Endresultat=&lt;br /&gt;
&lt;br /&gt;
==Frontend Ansicht==&lt;br /&gt;
Und so könnte es aussehen&lt;br /&gt;
* links: Die Daten werden standardmässig in kompakter Form ausgegeben&lt;br /&gt;
* rechts: mit etwas CSS lassen sich die Daten sowohl in der Listen- wie Detailsicht gut formatieren&lt;br /&gt;
[[File:mm_frontend_beispiel.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
==HTML-Konstrukt==&lt;br /&gt;
Die Daten werden über das Template &amp;quot;metamodel_prerendered.html5&amp;quot; ausgegeben. Jeder Datensatz wird als '''item''' ausgegeben, dieser besteht aus den Attributen, die wir in den Rendereinstellungen definiert haben. Bei jedem Attribut wird standardmässig '''label''' und '''value''' ausgegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attributs1&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut1&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut3&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_1|Zurück zur Beispiel 1]] | [[MetaModels_Beispiel_3|Weiter zum Beispiel 3: Weitere Filter hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_2</id>
		<title>MetaModels Beispiel 2</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_2"/>
				<updated>2013-02-21T19:27:53Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Listenansicht erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Frontend einrichten=&lt;br /&gt;
&lt;br /&gt;
Wir haben im Backend bereits ein paar Daten (Musikstücke) erfasst und möchten diese nun im Frontend anzeigen lassen. Hierfür benötigen wir eine Übersichtseite (Liste) und eine Detailsansicht. Plus noch eine minimale Navigation, um zwischen Liste und Detailansicht hin- und herklicken zu können.&lt;br /&gt;
Hierbei werden wir auch die Filtertechnik von MetaModels einsetzen.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Seiterstruktur anpassen=&lt;br /&gt;
== In der Seitenstruktur zwei leere Seiten einrichten==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_seitenstruktur_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst richten wir in der Seitenstruktur zwei neue (leere) Seiten ein.&lt;br /&gt;
&lt;br /&gt;
* '''Musicbox''' (diese Seite wird die Listenansicht aufnehmen)&lt;br /&gt;
* '''Music''' (diese Seite wird für die Darstellung der Detailansicht verantwortlich sein)&lt;br /&gt;
&lt;br /&gt;
Sowohl MetaModels als auch die später benötigten Frontend-Module werden auf diese Seiten zugreifen müssen, deswegen richten wir diese vorab ein, auch wenn noch kein Inhalt definiert ist.&lt;br /&gt;
&lt;br /&gt;
==Einfachen Filter erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Wir steigen nun wieder bei MetaModels bei '''Musicbox''' ein und gehen zur [[MetaModels_Backend:_Filter|MM-Backend Funktion: Filter]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hier müssen wir thematisch etwas vorausgreifen, und ein Instrument MetaModels bereitstellen, das bei der Einrichtung der Frontend-Ansichten in MetaModels benötigt wird: Wir brauchen einen Filter.&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung, sowohl im Backend als auch im Frontend.&amp;amp;nbsp;Aus der Sicht MetaModels gibt es nicht eine Listen- und eine separate Archivansicht, wie man das z.B. von News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Es ist der Filter, der bestimmt ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird.&lt;br /&gt;
Mit anderen Worten: Möchte man mit MetaModels aus einer Liste von Einträgen einen einzigen anzeigen lassen und diese Einzelansicht vielleicht auch noch leicht anders anzeigen lassen, benötigt man einen Filter.&lt;br /&gt;
&lt;br /&gt;
* Die Filterübersicht ist noch leer (Keine Einträge gefunden). Klick auf '''neu'''&lt;br /&gt;
* Gib einen Namen ein, z.B. &amp;quot;FE Link Detail&amp;quot; (FE steht für Frontend)&lt;br /&gt;
* Die Filterübersicht zeigt nun einen ersten Eintrag. Wähle das rechte Icon &amp;quot;Filter einrichten&amp;quot;&lt;br /&gt;
* Klick auf '''neu''' und wähle das Icon (mit Pfeil) für '''einsetzen'''&lt;br /&gt;
* Nun kannst du den Typ auswählen. Wir wählen '''Einfache Abfrage'''&lt;br /&gt;
* Als Attribut wählen wir &amp;quot;Alias&amp;quot; und geben noch die URL-Parameter &amp;quot;auto_item&amp;quot; mit&lt;br /&gt;
* Alle weiteren Optionen bleiben leer oder nicht angeklickt. Als Template nehmen wir was vorgegeben wird: &amp;quot;mm_filteritem_default&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Der Filter &amp;quot;FE Link Detail&amp;quot; besteht nun aus einer einzigen Definition. Wir werden in einem späteren Beispiel sehen, dass ein Filter auch aus mehreren Definitionen bestehen. Das ist eine weitere Neuerung in MetaModels, nämlich, dass man sich im Wesentlichen seine eigenen Filter zusammenbauen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listenansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion [[MetaModels_Backend:_Ausgabevorgaben|&amp;quot;Ausgabevorgaben&amp;quot;]]&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Listenansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* Als Zielseite geben wir die vorhin definierte Seite &amp;quot;Music&amp;quot; an. Klick hierzu auf das Icon &amp;quot;Globus&amp;quot;, wähle die Seite aus dem Pulldown-Menu aus, automatisch wird dann die link_url::ID eingesetzt&lt;br /&gt;
* Als Filtersettting wählen wir den vorhin definierten Filter &amp;quot;FE Link Detail&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun zwei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen legen wir grob fest, welches Aussehen (Template) die Seite haben, wohin die Reise gehen (Zielseite) und was bei dieser Zielseite angezeigt werden soll (was durch den Filter bestimmt wird).&lt;br /&gt;
Hinweis: Wenn wir hier keinen Filter angeben, wird später im Frontend keine &amp;quot;Detail&amp;quot;-Link erscheinen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Listenansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf das Icon rechts &amp;quot;Attribute hinzufügen&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; (geht schneller und einfacher als alle über &amp;quot;neu&amp;quot; hinzufügen)&lt;br /&gt;
* Bestätige die folgenden Screens&lt;br /&gt;
* Lege fest, welche Attribute in der Listenansicht angezeigt werden sollen (Icon &amp;quot;Auge&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Man kann auch die Einstellung der Attribute anschauen, wie im letzten Screen angezeigt. Standardmäßig wird jedem Attribut zusätzlich ein Template mitgegeben. In unserem Beispiel analog dem Typ das Template &amp;quot;mm_attr_text (global scope)&amp;quot;.&lt;br /&gt;
Man erkennt hier schon im Ansatz, dass in MetaModels praktisch jedes Detail über ein Template gesteuert wird. Was für eine mögliche Individualisierung letztlich heißt, dass man in der freien Gestaltung potentiell unendliche viele Möglichkeiten zur Verfügung gestellt bekommt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Detailansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; und &amp;quot;FE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Detailansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* In diesem Fall brauchen wir weder eine Zielseite noch ein Filtersettting anzugeben, denn bis hierher und nicht weiter wollen wir gelangen&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun drei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Detailansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Das Vorgehen ist analog zum Punkt 4 zu verstehen. Einzig, dass wir hier am Ende alle Attribute anzeigen lassen (inkl. Bild und Beschreibung).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Liste.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Frontend-Modul für Listenansicht einrichten:&lt;br /&gt;
&lt;br /&gt;
* Wähle den Modultyp &amp;quot;MetaModels-Liste&amp;quot; aus&lt;br /&gt;
* Wähle das entsprechend MetaModel aus, in unserem Fall &amp;quot;Musicbox&amp;quot;&lt;br /&gt;
* Bei &amp;quot;Sortieren nach&amp;quot; und &amp;quot;Sortierreihenfolge&amp;quot; das gewünschte Attribut bzw. ob auf- oder absteigend sortiert werden soll&lt;br /&gt;
* &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; bleibt vorläuftig leer. Das heißt soviel wie, dass wir in unserer Liste alle Datensätze (Musikstücke), die wir in unserer Musicbox erfasst haben, in der Liste anzeigen möchten&lt;br /&gt;
* Bei &amp;quot;Eigenes Template für Datensatzliste auswählen&amp;quot; den vorgegebenen Default &amp;quot;mod_metamodel_list&amp;quot; nehmen&lt;br /&gt;
* Bei Anzunehmende Rendereinstellung nehmen wir nun die zuvor definierte Ausgabevoreinstellung &amp;quot;FE Listenansicht&amp;quot;. Damit werden nur die Daten der Felder ausgegeben, die wir unter Punkt 9 als sichtbar gekennzeichnet haben, und zwar in der dort definierten Reihenfolge&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Detail.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Dieses FE-Modul richten wir analog dem FE-Modul der Listenansicht ein, allerdings mit zwei wichtigen Unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; muss nun der Filter &amp;quot;FE Link Detail&amp;quot; angewählt werden. Dieser bewirkt, dass man hier, in der Detailansicht, auch nur den Datenansatz angezeigt bekommt, den man in der Listenansicht angeklickt hatte.&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Rendereinstellungen&amp;quot; wählen wir die Ansichtsdarstellung definierte Einstellung &amp;quot;FE Detailansicht&amp;quot;. Hier werden alle Daten angezeigt, die wir unter Punkt ... als sichtbar angegeben haben. In diesem Falle alle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module einbinden und Seitenvorschau==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_einsetzen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zum Schluss bindet man die beiden Frontend-Module in den gewünschten Artikel ein.&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Mögliches Endresultat=&lt;br /&gt;
&lt;br /&gt;
==Frontend Ansicht==&lt;br /&gt;
Und so könnte es aussehen&lt;br /&gt;
* links: Die Daten werden standardmässig in kompakter Form ausgegeben&lt;br /&gt;
* rechts: mit etwas CSS lassen sich die Daten sowohl in der Listen- wie Detailsicht gut formatieren&lt;br /&gt;
[[File:mm_frontend_beispiel.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
==HTML-Konstrukt==&lt;br /&gt;
Die Daten werden über das Template &amp;quot;metamodel_prerendered.html5&amp;quot; ausgegeben. Jeder Datensatz wird als '''item''' ausgegeben, dieser besteht aus den Attributen, die wir in den Rendereinstellungen definiert haben. Bei jedem Attribut wird standardmässig '''label''' und '''value''' ausgegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attributs1&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut1&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut3&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_1|Zurück zur Beispiel 1]] | [[MetaModels_Beispiel_3|Weiter zum Beispiel 3: Weitere Filter hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_2</id>
		<title>MetaModels Beispiel 2</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_2"/>
				<updated>2013-02-21T19:27:00Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Einfachen Filter erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Frontend einrichten=&lt;br /&gt;
&lt;br /&gt;
Wir haben im Backend bereits ein paar Daten (Musikstücke) erfasst und möchten diese nun im Frontend anzeigen lassen. Hierfür benötigen wir eine Übersichtseite (Liste) und eine Detailsansicht. Plus noch eine minimale Navigation, um zwischen Liste und Detailansicht hin- und herklicken zu können.&lt;br /&gt;
Hierbei werden wir auch die Filtertechnik von MetaModels einsetzen.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Seiterstruktur anpassen=&lt;br /&gt;
== In der Seitenstruktur zwei leere Seiten einrichten==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_seitenstruktur_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst richten wir in der Seitenstruktur zwei neue (leere) Seiten ein.&lt;br /&gt;
&lt;br /&gt;
* '''Musicbox''' (diese Seite wird die Listenansicht aufnehmen)&lt;br /&gt;
* '''Music''' (diese Seite wird für die Darstellung der Detailansicht verantwortlich sein)&lt;br /&gt;
&lt;br /&gt;
Sowohl MetaModels als auch die später benötigten Frontend-Module werden auf diese Seiten zugreifen müssen, deswegen richten wir diese vorab ein, auch wenn noch kein Inhalt definiert ist.&lt;br /&gt;
&lt;br /&gt;
==Einfachen Filter erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Wir steigen nun wieder bei MetaModels bei '''Musicbox''' ein und gehen zur [[MetaModels_Backend:_Filter|MM-Backend Funktion: Filter]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hier müssen wir thematisch etwas vorausgreifen, und ein Instrument MetaModels bereitstellen, das bei der Einrichtung der Frontend-Ansichten in MetaModels benötigt wird: Wir brauchen einen Filter.&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung, sowohl im Backend als auch im Frontend.&amp;amp;nbsp;Aus der Sicht MetaModels gibt es nicht eine Listen- und eine separate Archivansicht, wie man das z.B. von News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Es ist der Filter, der bestimmt ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird.&lt;br /&gt;
Mit anderen Worten: Möchte man mit MetaModels aus einer Liste von Einträgen einen einzigen anzeigen lassen und diese Einzelansicht vielleicht auch noch leicht anders anzeigen lassen, benötigt man einen Filter.&lt;br /&gt;
&lt;br /&gt;
* Die Filterübersicht ist noch leer (Keine Einträge gefunden). Klick auf '''neu'''&lt;br /&gt;
* Gib einen Namen ein, z.B. &amp;quot;FE Link Detail&amp;quot; (FE steht für Frontend)&lt;br /&gt;
* Die Filterübersicht zeigt nun einen ersten Eintrag. Wähle das rechte Icon &amp;quot;Filter einrichten&amp;quot;&lt;br /&gt;
* Klick auf '''neu''' und wähle das Icon (mit Pfeil) für '''einsetzen'''&lt;br /&gt;
* Nun kannst du den Typ auswählen. Wir wählen '''Einfache Abfrage'''&lt;br /&gt;
* Als Attribut wählen wir &amp;quot;Alias&amp;quot; und geben noch die URL-Parameter &amp;quot;auto_item&amp;quot; mit&lt;br /&gt;
* Alle weiteren Optionen bleiben leer oder nicht angeklickt. Als Template nehmen wir was vorgegeben wird: &amp;quot;mm_filteritem_default&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Der Filter &amp;quot;FE Link Detail&amp;quot; besteht nun aus einer einzigen Definition. Wir werden in einem späteren Beispiel sehen, dass ein Filter auch aus mehreren Definitionen bestehen. Das ist eine weitere Neuerung in MetaModels, nämlich, dass man sich im Wesentlichen seine eigenen Filter zusammenbauen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listenansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Listenansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* Als Zielseite geben wir die vorhin definierte Seite &amp;quot;Music&amp;quot; an. Klick hierzu auf das Icon &amp;quot;Globus&amp;quot;, wähle die Seite aus dem Pulldown-Menu aus, automatisch wird dann die link_url::ID eingesetzt&lt;br /&gt;
* Als Filtersettting wählen wir den vorhin definierten Filter &amp;quot;FE Link Detail&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun zwei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen legen wir grob fest, welches Aussehen (Template) die Seite haben, wohin die Reise gehen (Zielseite) und was bei dieser Zielseite angezeigt werden soll (was durch den Filter bestimmt wird).&lt;br /&gt;
Hinweis: Wenn wir hier keinen Filter angeben, wird später im Frontend keine &amp;quot;Detail&amp;quot;-Link erscheinen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Listenansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf das Icon rechts &amp;quot;Attribute hinzufügen&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; (geht schneller und einfacher als alle über &amp;quot;neu&amp;quot; hinzufügen)&lt;br /&gt;
* Bestätige die folgenden Screens&lt;br /&gt;
* Lege fest, welche Attribute in der Listenansicht angezeigt werden sollen (Icon &amp;quot;Auge&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Man kann auch die Einstellung der Attribute anschauen, wie im letzten Screen angezeigt. Standardmäßig wird jedem Attribut zusätzlich ein Template mitgegeben. In unserem Beispiel analog dem Typ das Template &amp;quot;mm_attr_text (global scope)&amp;quot;.&lt;br /&gt;
Man erkennt hier schon im Ansatz, dass in MetaModels praktisch jedes Detail über ein Template gesteuert wird. Was für eine mögliche Individualisierung letztlich heißt, dass man in der freien Gestaltung potentiell unendliche viele Möglichkeiten zur Verfügung gestellt bekommt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Detailansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; und &amp;quot;FE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Detailansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* In diesem Fall brauchen wir weder eine Zielseite noch ein Filtersettting anzugeben, denn bis hierher und nicht weiter wollen wir gelangen&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun drei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Detailansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Das Vorgehen ist analog zum Punkt 4 zu verstehen. Einzig, dass wir hier am Ende alle Attribute anzeigen lassen (inkl. Bild und Beschreibung).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Liste.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Frontend-Modul für Listenansicht einrichten:&lt;br /&gt;
&lt;br /&gt;
* Wähle den Modultyp &amp;quot;MetaModels-Liste&amp;quot; aus&lt;br /&gt;
* Wähle das entsprechend MetaModel aus, in unserem Fall &amp;quot;Musicbox&amp;quot;&lt;br /&gt;
* Bei &amp;quot;Sortieren nach&amp;quot; und &amp;quot;Sortierreihenfolge&amp;quot; das gewünschte Attribut bzw. ob auf- oder absteigend sortiert werden soll&lt;br /&gt;
* &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; bleibt vorläuftig leer. Das heißt soviel wie, dass wir in unserer Liste alle Datensätze (Musikstücke), die wir in unserer Musicbox erfasst haben, in der Liste anzeigen möchten&lt;br /&gt;
* Bei &amp;quot;Eigenes Template für Datensatzliste auswählen&amp;quot; den vorgegebenen Default &amp;quot;mod_metamodel_list&amp;quot; nehmen&lt;br /&gt;
* Bei Anzunehmende Rendereinstellung nehmen wir nun die zuvor definierte Ausgabevoreinstellung &amp;quot;FE Listenansicht&amp;quot;. Damit werden nur die Daten der Felder ausgegeben, die wir unter Punkt 9 als sichtbar gekennzeichnet haben, und zwar in der dort definierten Reihenfolge&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Detail.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Dieses FE-Modul richten wir analog dem FE-Modul der Listenansicht ein, allerdings mit zwei wichtigen Unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; muss nun der Filter &amp;quot;FE Link Detail&amp;quot; angewählt werden. Dieser bewirkt, dass man hier, in der Detailansicht, auch nur den Datenansatz angezeigt bekommt, den man in der Listenansicht angeklickt hatte.&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Rendereinstellungen&amp;quot; wählen wir die Ansichtsdarstellung definierte Einstellung &amp;quot;FE Detailansicht&amp;quot;. Hier werden alle Daten angezeigt, die wir unter Punkt ... als sichtbar angegeben haben. In diesem Falle alle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module einbinden und Seitenvorschau==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_einsetzen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zum Schluss bindet man die beiden Frontend-Module in den gewünschten Artikel ein.&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Mögliches Endresultat=&lt;br /&gt;
&lt;br /&gt;
==Frontend Ansicht==&lt;br /&gt;
Und so könnte es aussehen&lt;br /&gt;
* links: Die Daten werden standardmässig in kompakter Form ausgegeben&lt;br /&gt;
* rechts: mit etwas CSS lassen sich die Daten sowohl in der Listen- wie Detailsicht gut formatieren&lt;br /&gt;
[[File:mm_frontend_beispiel.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
==HTML-Konstrukt==&lt;br /&gt;
Die Daten werden über das Template &amp;quot;metamodel_prerendered.html5&amp;quot; ausgegeben. Jeder Datensatz wird als '''item''' ausgegeben, dieser besteht aus den Attributen, die wir in den Rendereinstellungen definiert haben. Bei jedem Attribut wird standardmässig '''label''' und '''value''' ausgegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attributs1&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut1&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut3&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_1|Zurück zur Beispiel 1]] | [[MetaModels_Beispiel_3|Weiter zum Beispiel 3: Weitere Filter hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-21T19:25:35Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MM-Funktion: Zugriffsrechte definieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Das Backend vorbereiten=&lt;br /&gt;
Wir bauen eine einfache Musikbox, wo wir Musikstücke mit gewissen Attribute (&amp;quot;Eigenschaften&amp;quot;) erfassen möchten. Zu diesem Zweck bauen wir zuerst das Backend auf. Hierzu brauchen wir eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
* '''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Paletteneinstellungen|'''Paletteneinstellungen''']] (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: MetaModel bearbeiten==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest wo und wie im BE die Daten zu unserer Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|180px]]&lt;br /&gt;
Klick auf '''Neue Palette'''. Ein [[MetaModels_Backend:_Paletteneinstellungen|Erfassungsformular]] öffnet sich. Gib die Werte ein, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* 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 (;) &lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* 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&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
Nun habe eine Palette namens '''BE Erfassung''' erstellt. Ich möchte nun das Erfassungs-Formular ein wenig gestalten.&lt;br /&gt;
&lt;br /&gt;
Im letzten Kapitel '''Die Daten erfassen''' siehst du, wie die Liste/das Formular zwecks Erfassung meiner Musikstücke aussehen.&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Wir fügen nun alle Attribute zur Palette hinzu und klicken hier auf das Icon rechts ''' Paletteneinstellungen'''.&lt;br /&gt;
* Wir wählen wieder '''Alle hinzufügen''' und bestätigen alle nun folgenden Screens.&lt;br /&gt;
* Wir erhalten so eine Liste aller Attribute, die wir einzeln bearbeiten können&lt;br /&gt;
* Auf Wunsch können wir hier auch die Reihenfolge umstellen und so bestimmen, wie wir die Daten erfassen wollen&lt;br /&gt;
* Wir fangen mit dem ersten Eintrag '''Titel [text]''' an&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Als Beispiel zeigen wir, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir klicken auf das Editier-Icon. Die wichtigsten Einstellung wären:&lt;br /&gt;
* 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&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legen wir fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterix gekennzeichnet&lt;br /&gt;
* 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.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_zugriffsrechte_definieren.png|link=MetaModels_Backend:_Ansichtseinstellungen|600px]]&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf '''Neuer Datensatz'''. Es öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Gibt die gewünschten Werte, und bestätige mit '''Speichern und Schliessen'''&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Wiederhole diesen Vorgang so oft du willst&lt;br /&gt;
* Über der BE Listenansicht stehen dir nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-21T19:21:04Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MM-Funktion: Paletteneinstellung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Das Backend vorbereiten=&lt;br /&gt;
Wir bauen eine einfache Musikbox, wo wir Musikstücke mit gewissen Attribute (&amp;quot;Eigenschaften&amp;quot;) erfassen möchten. Zu diesem Zweck bauen wir zuerst das Backend auf. Hierzu brauchen wir eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
* '''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Paletteneinstellungen|'''Paletteneinstellungen''']] (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: MetaModel bearbeiten==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest wo und wie im BE die Daten zu unserer Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|180px]]&lt;br /&gt;
Klick auf '''Neue Palette'''. Ein [[MetaModels_Backend:_Paletteneinstellungen|Erfassungsformular]] öffnet sich. Gib die Werte ein, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* 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 (;) &lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* 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&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
Nun habe eine Palette namens '''BE Erfassung''' erstellt. Ich möchte nun das Erfassungs-Formular ein wenig gestalten.&lt;br /&gt;
&lt;br /&gt;
Im letzten Kapitel '''Die Daten erfassen''' siehst du, wie die Liste/das Formular zwecks Erfassung meiner Musikstücke aussehen.&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Wir fügen nun alle Attribute zur Palette hinzu und klicken hier auf das Icon rechts ''' Paletteneinstellungen'''.&lt;br /&gt;
* Wir wählen wieder '''Alle hinzufügen''' und bestätigen alle nun folgenden Screens.&lt;br /&gt;
* Wir erhalten so eine Liste aller Attribute, die wir einzeln bearbeiten können&lt;br /&gt;
* Auf Wunsch können wir hier auch die Reihenfolge umstellen und so bestimmen, wie wir die Daten erfassen wollen&lt;br /&gt;
* Wir fangen mit dem ersten Eintrag '''Titel [text]''' an&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Als Beispiel zeigen wir, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir klicken auf das Editier-Icon. Die wichtigsten Einstellung wären:&lt;br /&gt;
* 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&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legen wir fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterix gekennzeichnet&lt;br /&gt;
* 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.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_zugriffsrechte_definieren.png|link=|600px]]&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf '''Neuer Datensatz'''. Es öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Gibt die gewünschten Werte, und bestätige mit '''Speichern und Schliessen'''&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Wiederhole diesen Vorgang so oft du willst&lt;br /&gt;
* Über der BE Listenansicht stehen dir nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-21T19:20:02Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MM-Funktion: Ausgabevorgaben */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Das Backend vorbereiten=&lt;br /&gt;
Wir bauen eine einfache Musikbox, wo wir Musikstücke mit gewissen Attribute (&amp;quot;Eigenschaften&amp;quot;) erfassen möchten. Zu diesem Zweck bauen wir zuerst das Backend auf. Hierzu brauchen wir eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
* '''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Paletteneinstellungen|'''Paletteneinstellungen''']] (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: MetaModel bearbeiten==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest wo und wie im BE die Daten zu unserer Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|180px]]&lt;br /&gt;
Klick auf '''Neue Palette'''. Ein Erfassungsformular öffnet sich. Gib die Werte ein, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* 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 (;) &lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* 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&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
Nun habe eine Palette namens '''BE Erfassung''' erstellt. Ich möchte nun das Erfassungs-Formular ein wenig gestalten.&lt;br /&gt;
&lt;br /&gt;
Im letzten Kapitel '''Die Daten erfassen''' siehst du, wie die Liste/das Formular zwecks Erfassung meiner Musikstücke aussehen.&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Wir fügen nun alle Attribute zur Palette hinzu und klicken hier auf das Icon rechts ''' Paletteneinstellungen'''.&lt;br /&gt;
* Wir wählen wieder '''Alle hinzufügen''' und bestätigen alle nun folgenden Screens.&lt;br /&gt;
* Wir erhalten so eine Liste aller Attribute, die wir einzeln bearbeiten können&lt;br /&gt;
* Auf Wunsch können wir hier auch die Reihenfolge umstellen und so bestimmen, wie wir die Daten erfassen wollen&lt;br /&gt;
* Wir fangen mit dem ersten Eintrag '''Titel [text]''' an&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Als Beispiel zeigen wir, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir klicken auf das Editier-Icon. Die wichtigsten Einstellung wären:&lt;br /&gt;
* 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&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legen wir fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterix gekennzeichnet&lt;br /&gt;
* 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.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_zugriffsrechte_definieren.png|link=|600px]]&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf '''Neuer Datensatz'''. Es öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Gibt die gewünschten Werte, und bestätige mit '''Speichern und Schliessen'''&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Wiederhole diesen Vorgang so oft du willst&lt;br /&gt;
* Über der BE Listenansicht stehen dir nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-21T19:19:29Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MM-Funktion: Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Das Backend vorbereiten=&lt;br /&gt;
Wir bauen eine einfache Musikbox, wo wir Musikstücke mit gewissen Attribute (&amp;quot;Eigenschaften&amp;quot;) erfassen möchten. Zu diesem Zweck bauen wir zuerst das Backend auf. Hierzu brauchen wir eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
* '''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Paletteneinstellungen|'''Paletteneinstellungen''']] (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: MetaModel bearbeiten==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Rendersettings|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest wo und wie im BE die Daten zu unserer Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|180px]]&lt;br /&gt;
Klick auf '''Neue Palette'''. Ein Erfassungsformular öffnet sich. Gib die Werte ein, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* 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 (;) &lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* 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&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
Nun habe eine Palette namens '''BE Erfassung''' erstellt. Ich möchte nun das Erfassungs-Formular ein wenig gestalten.&lt;br /&gt;
&lt;br /&gt;
Im letzten Kapitel '''Die Daten erfassen''' siehst du, wie die Liste/das Formular zwecks Erfassung meiner Musikstücke aussehen.&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Wir fügen nun alle Attribute zur Palette hinzu und klicken hier auf das Icon rechts ''' Paletteneinstellungen'''.&lt;br /&gt;
* Wir wählen wieder '''Alle hinzufügen''' und bestätigen alle nun folgenden Screens.&lt;br /&gt;
* Wir erhalten so eine Liste aller Attribute, die wir einzeln bearbeiten können&lt;br /&gt;
* Auf Wunsch können wir hier auch die Reihenfolge umstellen und so bestimmen, wie wir die Daten erfassen wollen&lt;br /&gt;
* Wir fangen mit dem ersten Eintrag '''Titel [text]''' an&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Als Beispiel zeigen wir, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir klicken auf das Editier-Icon. Die wichtigsten Einstellung wären:&lt;br /&gt;
* 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&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legen wir fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterix gekennzeichnet&lt;br /&gt;
* 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.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_zugriffsrechte_definieren.png|link=|600px]]&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf '''Neuer Datensatz'''. Es öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Gibt die gewünschten Werte, und bestätige mit '''Speichern und Schliessen'''&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Wiederhole diesen Vorgang so oft du willst&lt;br /&gt;
* Über der BE Listenansicht stehen dir nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-21T19:18:29Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* MetaModels Backend-Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Das Backend vorbereiten=&lt;br /&gt;
Wir bauen eine einfache Musikbox, wo wir Musikstücke mit gewissen Attribute (&amp;quot;Eigenschaften&amp;quot;) erfassen möchten. Zu diesem Zweck bauen wir zuerst das Backend auf. Hierzu brauchen wir eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
* '''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Paletteneinstellungen|'''Paletteneinstellungen''']] (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: MetaModel bearbeiten==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Rendersettings|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest wo und wie im BE die Daten zu unserer Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|180px]]&lt;br /&gt;
Klick auf '''Neue Palette'''. Ein Erfassungsformular öffnet sich. Gib die Werte ein, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* 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 (;) &lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* 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&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
Nun habe eine Palette namens '''BE Erfassung''' erstellt. Ich möchte nun das Erfassungs-Formular ein wenig gestalten.&lt;br /&gt;
&lt;br /&gt;
Im letzten Kapitel '''Die Daten erfassen''' siehst du, wie die Liste/das Formular zwecks Erfassung meiner Musikstücke aussehen.&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Wir fügen nun alle Attribute zur Palette hinzu und klicken hier auf das Icon rechts ''' Paletteneinstellungen'''.&lt;br /&gt;
* Wir wählen wieder '''Alle hinzufügen''' und bestätigen alle nun folgenden Screens.&lt;br /&gt;
* Wir erhalten so eine Liste aller Attribute, die wir einzeln bearbeiten können&lt;br /&gt;
* Auf Wunsch können wir hier auch die Reihenfolge umstellen und so bestimmen, wie wir die Daten erfassen wollen&lt;br /&gt;
* Wir fangen mit dem ersten Eintrag '''Titel [text]''' an&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Als Beispiel zeigen wir, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Wir klicken auf das Editier-Icon. Die wichtigsten Einstellung wären:&lt;br /&gt;
* 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&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legen wir fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterix gekennzeichnet&lt;br /&gt;
* 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.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_zugriffsrechte_definieren.png|link=|600px]]&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf '''Neuer Datensatz'''. Es öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Gibt die gewünschten Werte, und bestätige mit '''Speichern und Schliessen'''&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Wiederhole diesen Vorgang so oft du willst&lt;br /&gt;
* Über der BE Listenansicht stehen dir nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-20T06:46:05Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Voraussetzung: [[MetaModels_Install|MetaModels installieren]]=&lt;br /&gt;
&lt;br /&gt;
Eine detaillierte Beschreibung findest du [[MetaModels|hier]]. Wenn du gemäss Beschreibung alle Module installiert hast, komm wieder hierher zurück.&lt;br /&gt;
&lt;br /&gt;
=Die Aufgabenstellung: Das Backend vorbereiten=&lt;br /&gt;
Wir bauen eine einfache Musikbox. Zu diesem Zweck bauen wir zuerst das Backend auf.&lt;br /&gt;
&lt;br /&gt;
==Eine leere Datenbank erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
* '''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
# '''Attribute''' (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
# '''Ausgabevorgaben''' (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
# '''Paletteneinstellungen''' (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
# '''Filter''' (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
# '''Paletten- und Ansichtseinstellungen''' (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: MetaModel bearbeiten==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Rendersettings|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest a) welche Funktionen die Listendarstellung im BE haben sollen (z.B sortierbar, filterbar, etc.) und wo diese im in der BE-Navigation erscheinen soll. Und b) wie das Erfassungsformular in etwa aussehen soll&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
((Screens zeigen))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_zugriffsrechte_definieren.png|730px]]&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:all-empty.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf &amp;quot;MyMusik&amp;quot; gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf &amp;quot;Neuen Datensatz&amp;quot;. Es öffnet sich ein Formular mit dem sich nun der erste Datensatz erfassen lässt.&lt;br /&gt;
* Gibt die gewünschten Werte, und klick auf &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht.&lt;br /&gt;
* Wiederhole nun diesen Vorgang so oft du willst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[MetaModels_Beispiel_2|Weiter zur Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-20T06:24:07Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Die Daten erfassen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
'''Voraussetzung: [[MetaModels_Install|MetaModels installieren]]'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine detaillierte Beschreibung findest du [[MetaModels|hier]]. Wenn du gemäss Beschreibung alle Module installiert hast, komm wieder hierher zurück.&lt;br /&gt;
&lt;br /&gt;
=Die Aufgabenstellung: Das Backend vorbereiten=&lt;br /&gt;
Wir bauen eine einfache Musikbox. Zu diesem Zweck bauen wir zuerst das Backend auf.&lt;br /&gt;
&lt;br /&gt;
==Eine leere Datenbank erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
* '''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
# '''Attribute''' (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
# '''Ausgabevorgaben''' (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
# '''Paletteneinstellungen''' (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
# '''Filter''' (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
# '''Paletten- und Ansichtseinstellungen''' (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: MetaModel bearbeiten==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Rendersettings|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest a) welche Funktionen die Listendarstellung im BE haben sollen (z.B sortierbar, filterbar, etc.) und wo diese im in der BE-Navigation erscheinen soll. Und b) wie das Erfassungsformular in etwa aussehen soll&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
((Screens zeigen))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_zugriffsrechte_definieren.png|730px]]&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:all-empty.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf &amp;quot;MyMusik&amp;quot; gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf &amp;quot;Neuen Datensatz&amp;quot;. Es öffnet sich ein Formular mit dem sich nun der erste Datensatz erfassen lässt.&lt;br /&gt;
* Gibt die gewünschten Werte, und klick auf &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht.&lt;br /&gt;
* Wiederhole nun diesen Vorgang so oft du willst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[MetaModels_Beispiel_2|Weiter zur Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-20T06:23:23Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Die Daten erfassen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
'''Voraussetzung: [[MetaModels_Install|MetaModels installieren]]'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine detaillierte Beschreibung findest du [[MetaModels|hier]]. Wenn du gemäss Beschreibung alle Module installiert hast, komm wieder hierher zurück.&lt;br /&gt;
&lt;br /&gt;
=Die Aufgabenstellung: Das Backend vorbereiten=&lt;br /&gt;
Wir bauen eine einfache Musikbox. Zu diesem Zweck bauen wir zuerst das Backend auf.&lt;br /&gt;
&lt;br /&gt;
==Eine leere Datenbank erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
* '''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
# '''Attribute''' (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
# '''Ausgabevorgaben''' (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
# '''Paletteneinstellungen''' (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
# '''Filter''' (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
# '''Paletten- und Ansichtseinstellungen''' (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: MetaModel bearbeiten==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Rendersettings|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest a) welche Funktionen die Listendarstellung im BE haben sollen (z.B sortierbar, filterbar, etc.) und wo diese im in der BE-Navigation erscheinen soll. Und b) wie das Erfassungsformular in etwa aussehen soll&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
((Screens zeigen))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_zugriffsrechte_definieren.png|730px]]&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:all-empty.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf &amp;quot;MyMusik&amp;quot; gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf &amp;quot;Neuen Datensatz&amp;quot;. Es öffnet sich ein Formular mit dem sich nun der erste Datensatz erfassen lässt.&lt;br /&gt;
* Gibt die gewünschten Werte, und klick auf &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht.&lt;br /&gt;
* Wiederhole nun diesen Vorgang so oft du willst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&lt;br /&gt;
[[MetaModels_Beispiel_2|Weiter zur Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-20T06:21:11Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
'''Voraussetzung: [[MetaModels_Install|MetaModels installieren]]'''&amp;lt;br&amp;gt;&lt;br /&gt;
Eine detaillierte Beschreibung findest du [[MetaModels|hier]]. Wenn du gemäss Beschreibung alle Module installiert hast, komm wieder hierher zurück.&lt;br /&gt;
&lt;br /&gt;
=Die Aufgabenstellung: Das Backend vorbereiten=&lt;br /&gt;
Wir bauen eine einfache Musikbox. Zu diesem Zweck bauen wir zuerst das Backend auf.&lt;br /&gt;
&lt;br /&gt;
==Eine leere Datenbank erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
* '''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
# '''Attribute''' (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
# '''Ausgabevorgaben''' (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
# '''Paletteneinstellungen''' (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
# '''Filter''' (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
# '''Paletten- und Ansichtseinstellungen''' (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: MetaModel bearbeiten==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen2.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; eigentlich ein MUSS. Denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und allenfalls zu einem späteren Zeitpunkt erläutert&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn für die BE Listenansicht brauchen wir wieder eine '''Zielseite''' noch '''Filter settings'''&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Rendersettings|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle '''Add all'''. Du kannst auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit '''Weiter'''&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest a) welche Funktionen die Listendarstellung im BE haben sollen (z.B sortierbar, filterbar, etc.) und wo diese im in der BE-Navigation erscheinen soll. Und b) wie das Erfassungsformular in etwa aussehen soll&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
((Screens zeigen))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_zugriffsrechte_definieren.png|730px]]&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:all-empty.png|thumb|180px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf &amp;quot;MyMusik&amp;quot; gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf &amp;quot;Neuen Datensatz&amp;quot;. Es öffnet sich ein Formular mit dem sich nun der erste Datensatz erfassen lässt.&lt;br /&gt;
* Gibt die gewünschten Werte, und klick auf &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht.&lt;br /&gt;
* Wiederhole nun diesen Vorgang so oft du willst.&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_2</id>
		<title>MetaModels Beispiel 2</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_2"/>
				<updated>2013-02-19T22:05:20Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
'''Voraussetzung: [[MetaModels_Beispiel_1|Backend ist eingerichtet]]'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wir gehen davon aus, dass du das weisst, wie man MetaModel-Module installiert und bereits ein Backend analog zu [[MetaModels_Beispiel_1|unserem 1. Beispiel]] eingerichtet hast.&lt;br /&gt;
Wir setzen auch voraus, dass du schon einmal einfache Anpassungen an einem Template vorgenommen hast, und weißt wo diese zu finden sind.&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Frontend einrichten=&lt;br /&gt;
&lt;br /&gt;
Wir haben im Backend bereits ein paar Daten (Musikstücke) erfasst und möchten diese nun im Frontend anzeigen lassen. Hierfür benötigen wir eine Übersichtseite (Liste) und eine Detailsansicht. Plus noch eine minimale Navigation, um zwischen Liste und Detailansicht hin- und herklicken zu können.&lt;br /&gt;
Hierbei werden wir auch die Filtertechnik von MetaModels einsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==1. In der Seitenstruktur zwei leere Seiten einrichten==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_seitenstruktur_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst richten wir in der Seitenstruktur zwei neue (leere) Seiten ein.&lt;br /&gt;
&lt;br /&gt;
* Musicbox (diese Seite wird die Listenansicht aufnehmen)&lt;br /&gt;
* Music (diese Seite wird für die Darstellung der Detailansicht verantwortlich sein)&lt;br /&gt;
&lt;br /&gt;
Sowohl MetaModels als auch die später benötigten Frontend-Module werden auf diese Seiten zugreifen müssen, deswegen richten wir diese vorab ein, auch wenn noch kein Inhalt definiert ist.&lt;br /&gt;
&lt;br /&gt;
==2. Einfachen Filter erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Hier müssen wir thematisch etwas vorausgreifen, und ein Instrument MetaModels bereitstellen, das bei der Einrichtung der Frontend-Ansichten in MetaModels benötigt wird: Wir brauchen einen Filter.&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung, sowohl im Backend als auch im Frontend.&amp;amp;nbsp;Aus der Sicht MetaModels gibt es nicht eine Listen- und eine separate Archivansicht, wie man das z.B. von News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Es ist der Filter, der bestimmt ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird.&lt;br /&gt;
Mit anderen Worten: Möchte man mit MetaModels aus einer Liste von Einträgen einen einzigen anzeigen lassen und diese Einzelansicht vielleicht auch noch leicht anders anzeigen lassen, benötigt man einen Filter.&lt;br /&gt;
&lt;br /&gt;
* Bei MetaModels wähle die Backend-Funktion &amp;quot;Filter definieren&amp;quot;&lt;br /&gt;
* Die Filterübersicht ist noch leer (Keine Einträge gefunden). Klick auf '''neu'''&lt;br /&gt;
* Gib einen Namen ein, z.B. &amp;quot;FE Link Detail&amp;quot; (FE steht für Frontend)&lt;br /&gt;
* Die Filterübersicht zeigt nun einen ersten Eintrag. Wähle das rechte Icon &amp;quot;Filter einrichten&amp;quot;&lt;br /&gt;
* Klick auf '''neu''' und wähle das Icon (mit Pfeil) für '''einsetzen'''&lt;br /&gt;
* Nun kannst du den Typ auswählen. Wir wählen '''Einfache Abfrage'''&lt;br /&gt;
* Als Attribut wählen wir &amp;quot;Alias&amp;quot; und geben noch die URL-Parameter &amp;quot;auto_item&amp;quot; mit&lt;br /&gt;
* Alle weiteren Optionen bleiben leer oder nicht angeklickt. Als Template nehmen wir was vorgegeben wird: &amp;quot;mm_filteritem_default&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Der Filter &amp;quot;FE Link Detail&amp;quot; besteht nun aus einer einzigen Definition. Wir werden in einem späteren Beispiel sehen, dass ein Filter auch aus mehreren Definitionen bestehen. Das ist eine weitere Neuerung in MetaModels, nämlich, dass man sich im Wesentlichen seine eigenen Filter zusammenbauen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3. Listenansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Listenansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* Als Zielseite geben wir die vorhin definierte Seite &amp;quot;Music&amp;quot; an. Klick hierzu auf das Icon &amp;quot;Globus&amp;quot;, wähle die Seite aus dem Pulldown-Menu aus, automatisch wird dann die link_url::ID eingesetzt&lt;br /&gt;
* Als Filtersettting wählen wir den vorhin definierten Filter &amp;quot;FE Link Detail&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun zwei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen legen wir grob fest, welches Aussehen (Template) die Seite haben, wohin die Reise gehen (Zielseite) und was bei dieser Zielseite angezeigt werden soll (was durch den Filter bestimmt wird).&lt;br /&gt;
Hinweis: Wenn wir hier keinen Filter angeben, wird später im Frontend keine &amp;quot;Detail&amp;quot;-Link erscheinen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==4. Attribute zur Listenansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten2.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf das Icon rechts &amp;quot;Attribute hinzufügen&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; (geht schneller und einfacher als alle über &amp;quot;neu&amp;quot; hinzufügen)&lt;br /&gt;
* Bestätige die folgenden Screens&lt;br /&gt;
* Lege fest, welche Attribute in der Listenansicht angezeigt werden sollen (Icon &amp;quot;Auge&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Man kann auch die Einstellung der Attribute anschauen, wie im letzten Screen angezeigt. Standardmäßig wird jedem Attribut zusätzlich ein Template mitgegeben. In unserem Beispiel analog dem Typ das Template &amp;quot;mm_attr_text (global scope)&amp;quot;.&lt;br /&gt;
Man erkennt hier schon im Ansatz, dass in MetaModels praktisch jedes Detail über ein Template gesteuert wird. Was für eine mögliche Individualisierung letztlich heißt, dass man in der freien Gestaltung potentiell unendliche viele Möglichkeiten zur Verfügung gestellt bekommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==5. Detailansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; und &amp;quot;FE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Detailansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* In diesem Fall brauchen wir weder eine Zielseite noch ein Filtersettting anzugeben, denn bis hierher und nicht weiter wollen wir gelangen&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun drei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6. Attribute zur Detailansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten2.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Das Vorgehen ist analog zum Punkt 4 zu verstehen. Einzig, dass wir hier am Ende alle Attribute anzeigen lassen (inkl. Bild und Beschreibung).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==7. Frontend-Module erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Liste.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Frontend-Modul für Listenansicht einrichten:&lt;br /&gt;
&lt;br /&gt;
* Wähle den Modultyp &amp;quot;MetaModels-Liste&amp;quot; aus&lt;br /&gt;
* Wähle das entsprechend MetaModel aus, in unserem Fall &amp;quot;Musicbox&amp;quot;&lt;br /&gt;
* Bei &amp;quot;Sortieren nach&amp;quot; und &amp;quot;Sortierreihenfolge&amp;quot; das gewünschte Attribut bzw. ob auf- oder absteigend sortiert werden soll&lt;br /&gt;
* &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; bleibt vorläuftig leer. Das heißt soviel wie, dass wir in unserer Liste alle Datensätze (Musikstücke), die wir in unserer Musicbox erfasst haben, in der Liste anzeigen möchten&lt;br /&gt;
* Bei &amp;quot;Eigenes Template für Datensatzliste auswählen&amp;quot; den vorgegebenen Default &amp;quot;mod_metamodel_list&amp;quot; nehmen&lt;br /&gt;
* Bei Anzunehmende Rendereinstellung nehmen wir nun die zuvor definierte Ausgabevoreinstellung &amp;quot;FE Listenansicht&amp;quot;. Damit werden nur die Daten der Felder ausgegeben, die wir unter Punkt 9 als sichtbar gekennzeichnet haben, und zwar in der dort definierten Reihenfolge&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Detail.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Dieses FE-Modul richten wir analog dem FE-Modul der Listenansicht ein, allerdings mit zwei wichtigen Unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; muss nun der Filter &amp;quot;FE Link Detail&amp;quot; angewählt werden. Dieser bewirkt, dass man hier, in der Detailansicht, auch nur den Datenansatz angezeigt bekommt, den man in der Listenansicht angeklickt hatte.&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Rendereinstellungen&amp;quot; wählen wir die Ansichtsdarstellung definierte Einstellung &amp;quot;FE Detailansicht&amp;quot;. Hier werden alle Daten angezeigt, die wir unter Punkt ... als sichtbar angegeben haben. In diesem Falle alle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==8. Frontend-Module einbinden und Seitenvorschau==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_einsetzen.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Zum Schluss bindet man die beiden Frontend-Module in den gewünschten Artikel ein.&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Mögliches Endresultat=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Und so könnte es aussehen (ohne CSS-Bearbeitung).&lt;br /&gt;
links: Die Daten werden standardmässig in kompakter Form ausgegeben.&lt;br /&gt;
rechts: mit etwas CSS lassen sich die Daten gut darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&lt;br /&gt;
[[MetaModels_Beispiel_3|Weiter zum nächsten Beispiel]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_2</id>
		<title>MetaModels Beispiel 2</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_2"/>
				<updated>2013-02-19T22:01:57Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Voraussetzung: Backend ist eingerichtet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
==Voraussetzung: [[MetaModels_Beispiel_1|Backend ist eingerichtet]]==&lt;br /&gt;
&lt;br /&gt;
Wir gehen davon aus, dass du das weisst, wie man MetaModel-Module installiert und bereits ein Backend analog zu [[MetaModels_Beispiel_1|unserem 1. Beispiel]] eingerichtet hast.&lt;br /&gt;
Wir setzen auch voraus, dass du schon einmal einfache Anpassungen an einem Template vorgenommen hast, und weißt wo diese zu finden sind.&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Frontend einrichten=&lt;br /&gt;
&lt;br /&gt;
Wir haben im Backend bereits ein paar Daten (Musikstücke) erfasst und möchten diese nun im Frontend anzeigen lassen. Hierfür benötigen wir eine Übersichtseite (Liste) und eine Detailsansicht. Plus noch eine minimale Navigation, um zwischen Liste und Detailansicht hin- und herklicken zu können.&lt;br /&gt;
Hierbei werden wir auch die Filtertechnik von MetaModels einsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==1. In der Seitenstruktur zwei leere Seiten einrichten==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_seitenstruktur_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst richten wir in der Seitenstruktur zwei neue (leere) Seiten ein.&lt;br /&gt;
&lt;br /&gt;
* Musicbox (diese Seite wird die Listenansicht aufnehmen)&lt;br /&gt;
* Music (diese Seite wird für die Darstellung der Detailansicht verantwortlich sein)&lt;br /&gt;
&lt;br /&gt;
Sowohl MetaModels als auch die später benötigten Frontend-Module werden auf diese Seiten zugreifen müssen, deswegen richten wir diese vorab ein, auch wenn noch kein Inhalt definiert ist.&lt;br /&gt;
&lt;br /&gt;
==2. Einfachen Filter erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Hier müssen wir thematisch etwas vorausgreifen, und ein Instrument MetaModels bereitstellen, das bei der Einrichtung der Frontend-Ansichten in MetaModels benötigt wird: Wir brauchen einen Filter.&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung, sowohl im Backend als auch im Frontend.&amp;amp;nbsp;Aus der Sicht MetaModels gibt es nicht eine Listen- und eine separate Archivansicht, wie man das z.B. von News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Es ist der Filter, der bestimmt ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird.&lt;br /&gt;
Mit anderen Worten: Möchte man mit MetaModels aus einer Liste von Einträgen einen einzigen anzeigen lassen und diese Einzelansicht vielleicht auch noch leicht anders anzeigen lassen, benötigt man einen Filter.&lt;br /&gt;
&lt;br /&gt;
* Bei MetaModels wähle die Backend-Funktion &amp;quot;Filter definieren&amp;quot;&lt;br /&gt;
* Die Filterübersicht ist noch leer (Keine Einträge gefunden). Klick auf '''neu'''&lt;br /&gt;
* Gib einen Namen ein, z.B. &amp;quot;FE Link Detail&amp;quot; (FE steht für Frontend)&lt;br /&gt;
* Die Filterübersicht zeigt nun einen ersten Eintrag. Wähle das rechte Icon &amp;quot;Filter einrichten&amp;quot;&lt;br /&gt;
* Klick auf '''neu''' und wähle das Icon (mit Pfeil) für '''einsetzen'''&lt;br /&gt;
* Nun kannst du den Typ auswählen. Wir wählen '''Einfache Abfrage'''&lt;br /&gt;
* Als Attribut wählen wir &amp;quot;Alias&amp;quot; und geben noch die URL-Parameter &amp;quot;auto_item&amp;quot; mit&lt;br /&gt;
* Alle weiteren Optionen bleiben leer oder nicht angeklickt. Als Template nehmen wir was vorgegeben wird: &amp;quot;mm_filteritem_default&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Der Filter &amp;quot;FE Link Detail&amp;quot; besteht nun aus einer einzigen Definition. Wir werden in einem späteren Beispiel sehen, dass ein Filter auch aus mehreren Definitionen bestehen. Das ist eine weitere Neuerung in MetaModels, nämlich, dass man sich im Wesentlichen seine eigenen Filter zusammenbauen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3. Listenansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Listenansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* Als Zielseite geben wir die vorhin definierte Seite &amp;quot;Music&amp;quot; an. Klick hierzu auf das Icon &amp;quot;Globus&amp;quot;, wähle die Seite aus dem Pulldown-Menu aus, automatisch wird dann die link_url::ID eingesetzt&lt;br /&gt;
* Als Filtersettting wählen wir den vorhin definierten Filter &amp;quot;FE Link Detail&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun zwei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen legen wir grob fest, welches Aussehen (Template) die Seite haben, wohin die Reise gehen (Zielseite) und was bei dieser Zielseite angezeigt werden soll (was durch den Filter bestimmt wird).&lt;br /&gt;
Hinweis: Wenn wir hier keinen Filter angeben, wird später im Frontend keine &amp;quot;Detail&amp;quot;-Link erscheinen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==4. Attribute zur Listenansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten2.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf das Icon rechts &amp;quot;Attribute hinzufügen&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; (geht schneller und einfacher als alle über &amp;quot;neu&amp;quot; hinzufügen)&lt;br /&gt;
* Bestätige die folgenden Screens&lt;br /&gt;
* Lege fest, welche Attribute in der Listenansicht angezeigt werden sollen (Icon &amp;quot;Auge&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Man kann auch die Einstellung der Attribute anschauen, wie im letzten Screen angezeigt. Standardmäßig wird jedem Attribut zusätzlich ein Template mitgegeben. In unserem Beispiel analog dem Typ das Template &amp;quot;mm_attr_text (global scope)&amp;quot;.&lt;br /&gt;
Man erkennt hier schon im Ansatz, dass in MetaModels praktisch jedes Detail über ein Template gesteuert wird. Was für eine mögliche Individualisierung letztlich heißt, dass man in der freien Gestaltung potentiell unendliche viele Möglichkeiten zur Verfügung gestellt bekommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==5. Detailansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; und &amp;quot;FE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Detailansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* In diesem Fall brauchen wir weder eine Zielseite noch ein Filtersettting anzugeben, denn bis hierher und nicht weiter wollen wir gelangen&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun drei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6. Attribute zur Detailansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten2.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Das Vorgehen ist analog zum Punkt 4 zu verstehen. Einzig, dass wir hier am Ende alle Attribute anzeigen lassen (inkl. Bild und Beschreibung).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==7. Frontend-Module erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Liste.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Frontend-Modul für Listenansicht einrichten:&lt;br /&gt;
&lt;br /&gt;
* Wähle den Modultyp &amp;quot;MetaModels-Liste&amp;quot; aus&lt;br /&gt;
* Wähle das entsprechend MetaModel aus, in unserem Fall &amp;quot;Musicbox&amp;quot;&lt;br /&gt;
* Bei &amp;quot;Sortieren nach&amp;quot; und &amp;quot;Sortierreihenfolge&amp;quot; das gewünschte Attribut bzw. ob auf- oder absteigend sortiert werden soll&lt;br /&gt;
* &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; bleibt vorläuftig leer. Das heißt soviel wie, dass wir in unserer Liste alle Datensätze (Musikstücke), die wir in unserer Musicbox erfasst haben, in der Liste anzeigen möchten&lt;br /&gt;
* Bei &amp;quot;Eigenes Template für Datensatzliste auswählen&amp;quot; den vorgegebenen Default &amp;quot;mod_metamodel_list&amp;quot; nehmen&lt;br /&gt;
* Bei Anzunehmende Rendereinstellung nehmen wir nun die zuvor definierte Ausgabevoreinstellung &amp;quot;FE Listenansicht&amp;quot;. Damit werden nur die Daten der Felder ausgegeben, die wir unter Punkt 9 als sichtbar gekennzeichnet haben, und zwar in der dort definierten Reihenfolge&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Detail.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Dieses FE-Modul richten wir analog dem FE-Modul der Listenansicht ein, allerdings mit zwei wichtigen Unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; muss nun der Filter &amp;quot;FE Link Detail&amp;quot; angewählt werden. Dieser bewirkt, dass man hier, in der Detailansicht, auch nur den Datenansatz angezeigt bekommt, den man in der Listenansicht angeklickt hatte.&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Rendereinstellungen&amp;quot; wählen wir die Ansichtsdarstellung definierte Einstellung &amp;quot;FE Detailansicht&amp;quot;. Hier werden alle Daten angezeigt, die wir unter Punkt ... als sichtbar angegeben haben. In diesem Falle alle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==8. Frontend-Module einbinden und Seitenvorschau==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_einsetzen.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Zum Schluss bindet man die beiden Frontend-Module in den gewünschten Artikel ein.&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Mögliches Endresultat=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Und so könnte es aussehen (ohne CSS-Bearbeitung).&lt;br /&gt;
links: Die Daten werden standardmässig in kompakter Form ausgegeben.&lt;br /&gt;
rechts: mit etwas CSS lassen sich die Daten gut darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&lt;br /&gt;
[[MetaModels_Beispiel_3|Weiter zum nächsten Beispiel]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_2</id>
		<title>MetaModels Beispiel 2</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_2"/>
				<updated>2013-02-19T22:01:03Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
==Voraussetzung: [[MetaModels_Beispiel_1|Backend ist eingerichtet]]==&lt;br /&gt;
&lt;br /&gt;
Wir gehen davon aus, dass du das weisst, wie man MetaModel-Module installiert und bereits ein Backend analog zu [[MetaModels_Beispiel_1|unserem 1. Beispiel]] eingerichtet hast.&lt;br /&gt;
Wir setzen auch voraus, dass du schon einmal einfache Anpassungen an einem Template vorgenommen hast, und weißt wo diese zu finden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Frontend einrichten=&lt;br /&gt;
&lt;br /&gt;
Wir haben im Backend bereits ein paar Daten (Musikstücke) erfasst und möchten diese nun im Frontend anzeigen lassen. Hierfür benötigen wir eine Übersichtseite (Liste) und eine Detailsansicht. Plus noch eine minimale Navigation, um zwischen Liste und Detailansicht hin- und herklicken zu können.&lt;br /&gt;
Hierbei werden wir auch die Filtertechnik von MetaModels einsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==1. In der Seitenstruktur zwei leere Seiten einrichten==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_seitenstruktur_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst richten wir in der Seitenstruktur zwei neue (leere) Seiten ein.&lt;br /&gt;
&lt;br /&gt;
* Musicbox (diese Seite wird die Listenansicht aufnehmen)&lt;br /&gt;
* Music (diese Seite wird für die Darstellung der Detailansicht verantwortlich sein)&lt;br /&gt;
&lt;br /&gt;
Sowohl MetaModels als auch die später benötigten Frontend-Module werden auf diese Seiten zugreifen müssen, deswegen richten wir diese vorab ein, auch wenn noch kein Inhalt definiert ist.&lt;br /&gt;
&lt;br /&gt;
==2. Einfachen Filter erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Hier müssen wir thematisch etwas vorausgreifen, und ein Instrument MetaModels bereitstellen, das bei der Einrichtung der Frontend-Ansichten in MetaModels benötigt wird: Wir brauchen einen Filter.&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung, sowohl im Backend als auch im Frontend.&amp;amp;nbsp;Aus der Sicht MetaModels gibt es nicht eine Listen- und eine separate Archivansicht, wie man das z.B. von News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Es ist der Filter, der bestimmt ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird.&lt;br /&gt;
Mit anderen Worten: Möchte man mit MetaModels aus einer Liste von Einträgen einen einzigen anzeigen lassen und diese Einzelansicht vielleicht auch noch leicht anders anzeigen lassen, benötigt man einen Filter.&lt;br /&gt;
&lt;br /&gt;
* Bei MetaModels wähle die Backend-Funktion &amp;quot;Filter definieren&amp;quot;&lt;br /&gt;
* Die Filterübersicht ist noch leer (Keine Einträge gefunden). Klick auf '''neu'''&lt;br /&gt;
* Gib einen Namen ein, z.B. &amp;quot;FE Link Detail&amp;quot; (FE steht für Frontend)&lt;br /&gt;
* Die Filterübersicht zeigt nun einen ersten Eintrag. Wähle das rechte Icon &amp;quot;Filter einrichten&amp;quot;&lt;br /&gt;
* Klick auf '''neu''' und wähle das Icon (mit Pfeil) für '''einsetzen'''&lt;br /&gt;
* Nun kannst du den Typ auswählen. Wir wählen '''Einfache Abfrage'''&lt;br /&gt;
* Als Attribut wählen wir &amp;quot;Alias&amp;quot; und geben noch die URL-Parameter &amp;quot;auto_item&amp;quot; mit&lt;br /&gt;
* Alle weiteren Optionen bleiben leer oder nicht angeklickt. Als Template nehmen wir was vorgegeben wird: &amp;quot;mm_filteritem_default&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Der Filter &amp;quot;FE Link Detail&amp;quot; besteht nun aus einer einzigen Definition. Wir werden in einem späteren Beispiel sehen, dass ein Filter auch aus mehreren Definitionen bestehen. Das ist eine weitere Neuerung in MetaModels, nämlich, dass man sich im Wesentlichen seine eigenen Filter zusammenbauen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3. Listenansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Listenansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* Als Zielseite geben wir die vorhin definierte Seite &amp;quot;Music&amp;quot; an. Klick hierzu auf das Icon &amp;quot;Globus&amp;quot;, wähle die Seite aus dem Pulldown-Menu aus, automatisch wird dann die link_url::ID eingesetzt&lt;br /&gt;
* Als Filtersettting wählen wir den vorhin definierten Filter &amp;quot;FE Link Detail&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun zwei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen legen wir grob fest, welches Aussehen (Template) die Seite haben, wohin die Reise gehen (Zielseite) und was bei dieser Zielseite angezeigt werden soll (was durch den Filter bestimmt wird).&lt;br /&gt;
Hinweis: Wenn wir hier keinen Filter angeben, wird später im Frontend keine &amp;quot;Detail&amp;quot;-Link erscheinen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==4. Attribute zur Listenansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten2.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf das Icon rechts &amp;quot;Attribute hinzufügen&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; (geht schneller und einfacher als alle über &amp;quot;neu&amp;quot; hinzufügen)&lt;br /&gt;
* Bestätige die folgenden Screens&lt;br /&gt;
* Lege fest, welche Attribute in der Listenansicht angezeigt werden sollen (Icon &amp;quot;Auge&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Man kann auch die Einstellung der Attribute anschauen, wie im letzten Screen angezeigt. Standardmäßig wird jedem Attribut zusätzlich ein Template mitgegeben. In unserem Beispiel analog dem Typ das Template &amp;quot;mm_attr_text (global scope)&amp;quot;.&lt;br /&gt;
Man erkennt hier schon im Ansatz, dass in MetaModels praktisch jedes Detail über ein Template gesteuert wird. Was für eine mögliche Individualisierung letztlich heißt, dass man in der freien Gestaltung potentiell unendliche viele Möglichkeiten zur Verfügung gestellt bekommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==5. Detailansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; und &amp;quot;FE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Detailansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* In diesem Fall brauchen wir weder eine Zielseite noch ein Filtersettting anzugeben, denn bis hierher und nicht weiter wollen wir gelangen&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun drei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6. Attribute zur Detailansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten2.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Das Vorgehen ist analog zum Punkt 4 zu verstehen. Einzig, dass wir hier am Ende alle Attribute anzeigen lassen (inkl. Bild und Beschreibung).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==7. Frontend-Module erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Liste.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Frontend-Modul für Listenansicht einrichten:&lt;br /&gt;
&lt;br /&gt;
* Wähle den Modultyp &amp;quot;MetaModels-Liste&amp;quot; aus&lt;br /&gt;
* Wähle das entsprechend MetaModel aus, in unserem Fall &amp;quot;Musicbox&amp;quot;&lt;br /&gt;
* Bei &amp;quot;Sortieren nach&amp;quot; und &amp;quot;Sortierreihenfolge&amp;quot; das gewünschte Attribut bzw. ob auf- oder absteigend sortiert werden soll&lt;br /&gt;
* &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; bleibt vorläuftig leer. Das heißt soviel wie, dass wir in unserer Liste alle Datensätze (Musikstücke), die wir in unserer Musicbox erfasst haben, in der Liste anzeigen möchten&lt;br /&gt;
* Bei &amp;quot;Eigenes Template für Datensatzliste auswählen&amp;quot; den vorgegebenen Default &amp;quot;mod_metamodel_list&amp;quot; nehmen&lt;br /&gt;
* Bei Anzunehmende Rendereinstellung nehmen wir nun die zuvor definierte Ausgabevoreinstellung &amp;quot;FE Listenansicht&amp;quot;. Damit werden nur die Daten der Felder ausgegeben, die wir unter Punkt 9 als sichtbar gekennzeichnet haben, und zwar in der dort definierten Reihenfolge&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Detail.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Dieses FE-Modul richten wir analog dem FE-Modul der Listenansicht ein, allerdings mit zwei wichtigen Unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; muss nun der Filter &amp;quot;FE Link Detail&amp;quot; angewählt werden. Dieser bewirkt, dass man hier, in der Detailansicht, auch nur den Datenansatz angezeigt bekommt, den man in der Listenansicht angeklickt hatte.&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Rendereinstellungen&amp;quot; wählen wir die Ansichtsdarstellung definierte Einstellung &amp;quot;FE Detailansicht&amp;quot;. Hier werden alle Daten angezeigt, die wir unter Punkt ... als sichtbar angegeben haben. In diesem Falle alle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==8. Frontend-Module einbinden und Seitenvorschau==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_einsetzen.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Zum Schluss bindet man die beiden Frontend-Module in den gewünschten Artikel ein.&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Mögliches Endresultat=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Und so könnte es aussehen (ohne CSS-Bearbeitung).&lt;br /&gt;
links: Die Daten werden standardmässig in kompakter Form ausgegeben.&lt;br /&gt;
rechts: mit etwas CSS lassen sich die Daten gut darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&lt;br /&gt;
[[MetaModels_Beispiel_3|Weiter zum nächsten Beispiel]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_2</id>
		<title>MetaModels Beispiel 2</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_2"/>
				<updated>2013-02-19T21:39:30Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: Die Seite wurde neu angelegt: „{{stub}} Category:Admin HOWTOS Category:Extensions Category:MetaModels  ==Voraussetzung: Backend ist eingerichtet  Wir gehen…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
==Voraussetzung: [[MetaModels_Beispiel_1|Backend ist eingerichtet]]&lt;br /&gt;
&lt;br /&gt;
Wir gehen davon aus, dass du das weisst, wie man MetaModel-Module installiert und bereits ein Backend analog zu [[MetaModels_Beispiel_1|unserem 1. Beispiel]] eingerichtet hast.&lt;br /&gt;
Wir setzen auch voraus, dass du schon einmal einfache Anpassungen an einem Template vorgenommen hast, und weißt wo diese zu finden sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Frontend einrichten=&lt;br /&gt;
&lt;br /&gt;
Wir haben im Backend bereits ein paar Daten (Musikstücke) erfasst und möchten diese nun im Frontend anzeigen lassen. Hierfür benötigen wir eine Übersichtseite (Liste) und eine Detailsansicht. Plus noch eine minimale Navigation, um zwischen Liste und Detailansicht hin- und herklicken zu können.&lt;br /&gt;
Hierbei werden wir auch die Filtertechnik von MetaModels einsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==1. In der Seitenstruktur zwei leere Seiten einrichten==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_seitenstruktur_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst richten wir in der Seitenstruktur zwei neue (leere) Seiten ein.&lt;br /&gt;
&lt;br /&gt;
* Musicbox (diese Seite wird die Listenansicht aufnehmen)&lt;br /&gt;
* Music (diese Seite wird für die Darstellung der Detailansicht verantwortlich sein)&lt;br /&gt;
&lt;br /&gt;
Sowohl MetaModels als auch die später benötigten Frontend-Module werden auf diese Seiten zugreifen müssen, deswegen richten wir diese vorab ein, auch wenn noch kein Inhalt definiert ist.&lt;br /&gt;
&lt;br /&gt;
==2. Einfachen Filter erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Hier müssen wir thematisch etwas vorausgreifen, und ein Instrument MetaModels bereitstellen, das bei der Einrichtung der Frontend-Ansichten in MetaModels benötigt wird: Wir brauchen einen Filter.&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung, sowohl im Backend als auch im Frontend.&amp;amp;nbsp;Aus der Sicht MetaModels gibt es nicht eine Listen- und eine separate Archivansicht, wie man das z.B. von News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Es ist der Filter, der bestimmt ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird.&lt;br /&gt;
Mit anderen Worten: Möchte man mit MetaModels aus einer Liste von Einträgen einen einzigen anzeigen lassen und diese Einzelansicht vielleicht auch noch leicht anders anzeigen lassen, benötigt man einen Filter.&lt;br /&gt;
&lt;br /&gt;
* Bei MetaModels wähle die Backend-Funktion &amp;quot;Filter definieren&amp;quot;&lt;br /&gt;
* Die Filterübersicht ist noch leer (Keine Einträge gefunden). Klick auf '''neu'''&lt;br /&gt;
* Gib einen Namen ein, z.B. &amp;quot;FE Link Detail&amp;quot; (FE steht für Frontend)&lt;br /&gt;
* Die Filterübersicht zeigt nun einen ersten Eintrag. Wähle das rechte Icon &amp;quot;Filter einrichten&amp;quot;&lt;br /&gt;
* Klick auf '''neu''' und wähle das Icon (mit Pfeil) für '''einsetzen'''&lt;br /&gt;
* Nun kannst du den Typ auswählen. Wir wählen '''Einfache Abfrage'''&lt;br /&gt;
* Als Attribut wählen wir &amp;quot;Alias&amp;quot; und geben noch die URL-Parameter &amp;quot;auto_item&amp;quot; mit&lt;br /&gt;
* Alle weiteren Optionen bleiben leer oder nicht angeklickt. Als Template nehmen wir was vorgegeben wird: &amp;quot;mm_filteritem_default&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Der Filter &amp;quot;FE Link Detail&amp;quot; besteht nun aus einer einzigen Definition. Wir werden in einem späteren Beispiel sehen, dass ein Filter auch aus mehreren Definitionen bestehen. Das ist eine weitere Neuerung in MetaModels, nämlich, dass man sich im Wesentlichen seine eigenen Filter zusammenbauen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3. Listenansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Listenansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* Als Zielseite geben wir die vorhin definierte Seite &amp;quot;Music&amp;quot; an. Klick hierzu auf das Icon &amp;quot;Globus&amp;quot;, wähle die Seite aus dem Pulldown-Menu aus, automatisch wird dann die link_url::ID eingesetzt&lt;br /&gt;
* Als Filtersettting wählen wir den vorhin definierten Filter &amp;quot;FE Link Detail&amp;quot;&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun zwei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen legen wir grob fest, welches Aussehen (Template) die Seite haben, wohin die Reise gehen (Zielseite) und was bei dieser Zielseite angezeigt werden soll (was durch den Filter bestimmt wird).&lt;br /&gt;
Hinweis: Wenn wir hier keinen Filter angeben, wird später im Frontend keine &amp;quot;Detail&amp;quot;-Link erscheinen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==4. Attribute zur Listenansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten2.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf das Icon rechts &amp;quot;Attribute hinzufügen&amp;quot;&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot; (geht schneller und einfacher als alle über &amp;quot;neu&amp;quot; hinzufügen)&lt;br /&gt;
* Bestätige die folgenden Screens&lt;br /&gt;
* Lege fest, welche Attribute in der Listenansicht angezeigt werden sollen (Icon &amp;quot;Auge&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Man kann auch die Einstellung der Attribute anschauen, wie im letzten Screen angezeigt. Standardmäßig wird jedem Attribut zusätzlich ein Template mitgegeben. In unserem Beispiel analog dem Typ das Template &amp;quot;mm_attr_text (global scope)&amp;quot;.&lt;br /&gt;
Man erkennt hier schon im Ansatz, dass in MetaModels praktisch jedes Detail über ein Template gesteuert wird. Was für eine mögliche Individualisierung letztlich heißt, dass man in der freien Gestaltung potentiell unendliche viele Möglichkeiten zur Verfügung gestellt bekommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==5. Detailansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Wähle die MM-Backend-Funktion &amp;quot;Ausgabevorgaben&amp;quot;&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; und &amp;quot;FE Listenansicht&amp;quot; an. Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Detailansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* In diesem Fall brauchen wir weder eine Zielseite noch ein Filtersettting anzugeben, denn bis hierher und nicht weiter wollen wir gelangen&lt;br /&gt;
* &amp;quot;Speichern und schliessen&amp;quot;&lt;br /&gt;
* Neu erscheinen nun drei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==6. Attribute zur Detailansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten2.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Das Vorgehen ist analog zum Punkt 4 zu verstehen. Einzig, dass wir hier am Ende alle Attribute anzeigen lassen (inkl. Bild und Beschreibung).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==7. Frontend-Module erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Liste.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Frontend-Modul für Listenansicht einrichten:&lt;br /&gt;
&lt;br /&gt;
* Wähle den Modultyp &amp;quot;MetaModels-Liste&amp;quot; aus&lt;br /&gt;
* Wähle das entsprechend MetaModel aus, in unserem Fall &amp;quot;Musicbox&amp;quot;&lt;br /&gt;
* Bei &amp;quot;Sortieren nach&amp;quot; und &amp;quot;Sortierreihenfolge&amp;quot; das gewünschte Attribut bzw. ob auf- oder absteigend sortiert werden soll&lt;br /&gt;
* &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; bleibt vorläuftig leer. Das heißt soviel wie, dass wir in unserer Liste alle Datensätze (Musikstücke), die wir in unserer Musicbox erfasst haben, in der Liste anzeigen möchten&lt;br /&gt;
* Bei &amp;quot;Eigenes Template für Datensatzliste auswählen&amp;quot; den vorgegebenen Default &amp;quot;mod_metamodel_list&amp;quot; nehmen&lt;br /&gt;
* Bei Anzunehmende Rendereinstellung nehmen wir nun die zuvor definierte Ausgabevoreinstellung &amp;quot;FE Listenansicht&amp;quot;. Damit werden nur die Daten der Felder ausgegeben, die wir unter Punkt 9 als sichtbar gekennzeichnet haben, und zwar in der dort definierten Reihenfolge&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Detail.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Dieses FE-Modul richten wir analog dem FE-Modul der Listenansicht ein, allerdings mit zwei wichtigen Unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; muss nun der Filter &amp;quot;FE Link Detail&amp;quot; angewählt werden. Dieser bewirkt, dass man hier, in der Detailansicht, auch nur den Datenansatz angezeigt bekommt, den man in der Listenansicht angeklickt hatte.&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Rendereinstellungen&amp;quot; wählen wir die Ansichtsdarstellung definierte Einstellung &amp;quot;FE Detailansicht&amp;quot;. Hier werden alle Daten angezeigt, die wir unter Punkt ... als sichtbar angegeben haben. In diesem Falle alle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==8. Frontend-Module einbinden und Seitenvorschau==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_einsetzen.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Zum Schluss bindet man die beiden Frontend-Module in den gewünschten Artikel ein.&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Mögliches Endresultat=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Und so könnte es aussehen (ohne CSS-Bearbeitung).&lt;br /&gt;
links: Die Daten werden standardmässig in kompakter Form ausgegeben.&lt;br /&gt;
rechts: mit etwas CSS lassen sich die Daten gut darstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&lt;br /&gt;
[[MetaModels_Beispiel_3|Weiter zum nächsten Beispiel]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-19T21:21:07Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* 1. Eine leere Datenbank erstellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Voraussetzung: MetaModels installieren=&lt;br /&gt;
Eine detaillierte Beschreibung findest du [[MetaModels|hier]]. Wenn du gemäss Beschreibung alle Module installiert hast, komm wieder hierher zurück.&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung: Das Backend vorbereiten==&lt;br /&gt;
Wir bauen eine einfache Musikbox. Zu diesem Zweck bauen wir zuerst das Backend auf.&lt;br /&gt;
&lt;br /&gt;
=1. Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
*Klick auf '''Neues MetaModel'''&lt;br /&gt;
*Name: '''Musicbox'''&lt;br /&gt;
*TabellenName: '''mm_musicbox'''&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
*'''Übersetzung''' anhaken&lt;br /&gt;
*Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
*'''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
===MetaModels Backend-Funktionen===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
* '''Attribute''' (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
* '''Ausgabevorgaben''' (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
* '''Paletteneinstellungen''' (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
* '''Filter''' (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
* '''Paletten- und Ansichtseinstellungen''' (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
==2. Das Backend konfigurieren==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: MetaModel bearbeiten===&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Sceen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den Namen als auch den Tabellennamen des MetaModels ändern.&lt;br /&gt;
'''Anmerkungen'''&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre &amp;quot;Übersetzung&amp;quot; eine frei wählbare Option, ist es eigentlich ein MUSS. Ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* &amp;quot;Varianten unterstützen&amp;quot; wird nicht benötigt.&amp;lt;span style=&amp;quot;background-color: #ffff00;&amp;quot;&amp;gt;.. hier vielleicht noch ein paar Sätze warum nicht? Oder wofür könnte man das brauchen?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: Attribute definieren===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_icons_fields.png]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Attribute|allgemeine Infos]] zu den Attributen&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
| * Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| ''''''Interpret''''''&lt;br /&gt;
| * Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| * Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| * Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| * Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| * Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| * Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: Ausgabevorgaben definieren===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_icons_rendersettings.png]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn blabla.........&lt;br /&gt;
&lt;br /&gt;
Allenfalls noch Kommentar schreiben wieso man keinen Standard, kein Template, keine Zielseite und keinen Filter braucht&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Rendersettings|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot;. Du kannst auch &amp;quot;Neu&amp;quot; wählen und die Felder einzeln hinzufügen, aber mit &amp;quot;Add all&amp;quot; gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit &amp;quot;Weiter&amp;quot;&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: Paletteneinstellung definieren===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_icons_palettes.png]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest a) welche Funktionen die Listendarstellung im BE haben sollen (z.B sortierbar, filterbar, etc.) und wo diese im in der BE-Navigation erscheinen soll. Und b) wie das Erfassungsformular in etwa aussehen soll&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
((Screens zeigen))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: Zugriffsrechte definieren===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_icons_dca_combine.png]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und editieren darf.&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
((Screens zeigen))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3. Die Daten erfassen==&lt;br /&gt;
&lt;br /&gt;
[[File:all-empty.png|right|thumb|150px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf &amp;quot;MyMusik&amp;quot; gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf &amp;quot;Neuen Datensatz&amp;quot;. Es öffnet sich ein Formular mit dem sich nun der erste Datensatz erfassen lässt.&lt;br /&gt;
* Gibt die gewünschten Werte, und klick auf &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht.&lt;br /&gt;
* Wiederhole nun diesen Vorgang so oft du willst.&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-02-19T21:15:24Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: Die Seite wurde neu angelegt: „{{stub}} Category:Admin HOWTOS Category:Extensions Category:MetaModels  =Voraussetzung: MetaModels installieren= Eine detaillierte Beschreibung findes…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
&lt;br /&gt;
=Voraussetzung: MetaModels installieren=&lt;br /&gt;
Eine detaillierte Beschreibung findest du [[MetaModels|hier]]. Wenn du gemäss Beschreibung alle Module installiert hast, komm wieder hierher zurück.&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung: Das Backend vorbereiten==&lt;br /&gt;
Wir bauen eine einfache Musikbox. Zu diesem Zweck bauen wir zuerst das Backend auf.&lt;br /&gt;
&lt;br /&gt;
=1. Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|link=|right|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst brauchen wir ein MetaModel. Technischen gesehen werden wir dabei in der Contao-Datenbank eine leere Tabelle anlegen. &lt;br /&gt;
&lt;br /&gt;
*Klick auf '''Neues MetaModel'''&lt;br /&gt;
*Name: '''Musicbox'''&lt;br /&gt;
*TabellenName: '''mm_musicbox'''&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&lt;br /&gt;
&lt;br /&gt;
*'''Übersetzung''' anhaken&lt;br /&gt;
*Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
*'''Varianten aktivieren''' lassen wir mal aus&lt;br /&gt;
 Du siehst nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die wir nun zur Weiterbearbeitung nutzen.&lt;br /&gt;
&lt;br /&gt;
===MetaModels Backend-Funktionen===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|right|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Kurz erklärt, was diese bedeuten (in Klammern, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
* '''Attribute''' (Definieren Sie die Attribute in MetaModel)&lt;br /&gt;
* '''Ausgabevorgaben''' (Definieren Sie Ausgabevorgaben für das MetaModel)&lt;br /&gt;
* '''Paletteneinstellungen''' (Paletteneinstellungen für das MetaModel definieren)&lt;br /&gt;
* '''Filter''' (Definieren Sie Filter für das MetaModel)&lt;br /&gt;
* '''Paletten- und Ansichtseinstellungen''' (Paletten- und Ansichtseinstellungen für MetaModel festlegen)&lt;br /&gt;
&lt;br /&gt;
==2. Das Backend konfigurieren==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: MetaModel bearbeiten===&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Sceen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den Namen als auch den Tabellennamen des MetaModels ändern.&lt;br /&gt;
'''Anmerkungen'''&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht als wäre &amp;quot;Übersetzung&amp;quot; eine frei wählbare Option, ist es eigentlich ein MUSS. Ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht.&lt;br /&gt;
* &amp;quot;Varianten unterstützen&amp;quot; wird nicht benötigt.&amp;lt;span style=&amp;quot;background-color: #ffff00;&amp;quot;&amp;gt;.. hier vielleicht noch ein paar Sätze warum nicht? Oder wofür könnte man das brauchen?&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: Attribute definieren===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_icons_fields.png]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Attribute|allgemeine Infos]] zu den Attributen&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|link=|right|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein (im Screen nebenan für das Beispiel &amp;quot;Titel&amp;quot;):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
| * Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| ''''''Interpret''''''&lt;br /&gt;
| * Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Name&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| * Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| * Attribute Type= Decimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| * Attribute Type= Longtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| * Attribute Type= File&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Bilder&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
| Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| * Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias fields= Titel&lt;br /&gt;
* Force alias regenerating= aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: Ausgabevorgaben definieren===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_icons_rendersettings.png]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir unsere Ansicht: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|link=|right|border|500px]]&lt;br /&gt;
&lt;br /&gt;
* Klick hierzu auf '''neu'''&lt;br /&gt;
* Gib den Namen '''BE Listenansicht''' ein&lt;br /&gt;
* Den Rest kannst du so stehen lassen, denn blabla.........&lt;br /&gt;
&lt;br /&gt;
Allenfalls noch Kommentar schreiben wieso man keinen Standard, kein Template, keine Zielseite und keinen Filter braucht&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Rendersettings|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|link=|right|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Gib nun an, welche Felder in der BE Listenansicht angezeigt werden soll. Klick hierzu auf das Icon rechts.&lt;br /&gt;
&lt;br /&gt;
* Wähle &amp;quot;Add all&amp;quot;. Du kannst auch &amp;quot;Neu&amp;quot; wählen und die Felder einzeln hinzufügen, aber mit &amp;quot;Add all&amp;quot; gehts am schnellsten&lt;br /&gt;
* Du wirst gefragt, ob alle Attribute hinzugefügt werden sollen. Bestätige mit &amp;quot;Weiter&amp;quot;&lt;br /&gt;
* Nun siehst alle Attribute, die du bereits unter &amp;quot;....&amp;quot; erfasst hast.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Interpret''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: Paletteneinstellung definieren===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_icons_palettes.png]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest a) welche Funktionen die Listendarstellung im BE haben sollen (z.B sortierbar, filterbar, etc.) und wo diese im in der BE-Navigation erscheinen soll. Und b) wie das Erfassungsformular in etwa aussehen soll&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|link=|right|border|500px]]&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
((Screens zeigen))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MM-Funktion: Zugriffsrechte definieren===&lt;br /&gt;
&lt;br /&gt;
[[File:mm_icons_dca_combine.png]]&lt;br /&gt;
&lt;br /&gt;
Hier legen wir fest, wer im Backend auf die Daten von MetaModel zugreifen und editieren darf.&lt;br /&gt;
&lt;br /&gt;
* blabla&lt;br /&gt;
&lt;br /&gt;
((Screens zeigen))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3. Die Daten erfassen==&lt;br /&gt;
&lt;br /&gt;
[[File:all-empty.png|link=|right|border|500px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus: Nun wird in der linken Navigationsüberishct &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt. Nun kann man mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf &amp;quot;MyMusik&amp;quot; gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Klick auf &amp;quot;Neuen Datensatz&amp;quot;. Es öffnet sich ein Formular mit dem sich nun der erste Datensatz erfassen lässt.&lt;br /&gt;
* Gibt die gewünschten Werte, und klick auf &amp;quot;Speichern und Schliessen&amp;quot;&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht.&lt;br /&gt;
* Wiederhole nun diesen Vorgang so oft du willst.&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2013-02-19T21:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=MetaModels (aka Catalog 3) lernen an Beispielprojekten=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand von Beispielprojekten die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.}}&lt;br /&gt;
&lt;br /&gt;
Wir werden eine Verwaltung unserer Musiksammlung erstellen und uns in mehreren Beispielen schrittweise von einer einfachen zu komplexeren Anwendungen vorarbeiten.&lt;br /&gt;
&lt;br /&gt;
Die Beschreibungen zeigen die für das Beispiel notwendigen Einstellungen, verweisen jedoch an den entsprechenden Stellen auf die allgemeinen Doku-Seiten der [[MetaModels|MetaModels]]&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Install|Installation der MetaModels]]&lt;br /&gt;
# [[MetaModels_Beispiel_1|Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Frontend einrichten]] - die Inhalte anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Weitere Filter einrichten]]&lt;br /&gt;
# [[MetaModels_Beispiel_4|Um ein weiteres MM erweitern]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2013-02-19T19:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: Umbau des ursprünglichen Beispiels auf mehrere Teilbeispiele auf mehreren Seiten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=MetaModels (aka Catalog 3) lernen an Beispielprojekten=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand von Beispielprojekten die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.}}&lt;br /&gt;
&lt;br /&gt;
Wir werden eine Verwaltung unserer Musiksammlung erstellen und uns in mehreren Beispielen schrittweise von einer einfachen zu komplexeren Anwendungen vorarbeiten.&lt;br /&gt;
&lt;br /&gt;
Die Beschreibungen zeigen die für das Beispiel notwendigen Einstellungen, verweisen jedoch an den entsprechenden Stellen auf die allgemeinen Doku-Seiten der [[MetaModels|MetaModels]]&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Install|Installation der MetaModels]]&lt;br /&gt;
# [[MetaModels_Bsp1|Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Bsp2|Frontend einrichten]] - die Inhalte anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Bsp3|Weitere Filter einrichten]]&lt;br /&gt;
# [[MetaModels_Bsp4|Um ein weiteres MM erweitern]]&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2013-01-21T22:34:04Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Vorbereitungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
{{Hinweis|Es geht jetzt auch einfacher als im Folgenden beschrieben, da die Entwickler nun den jeweils aktuellen Entwicklungsstand zum Download anbieten:&lt;br /&gt;
als [http://now.metamodel.me/tl_files/metamodels-nightly.zip ZIP],&lt;br /&gt;
als [http://now.metamodel.me/tl_files/met...nightly.tar.gz TAR GZ] &lt;br /&gt;
oder als [http://now.metamodel.me/tl_files/met...ightly.tar.bz2 TAR BZ2]&lt;br /&gt;
&lt;br /&gt;
siehe dieser [https://community.contao.org/de/showthread.php?36716-Wo-kann-man-MetaModels-herunterladen&amp;amp;p%61241122&amp;amp;viewfull%611#post241122 Beitrag im Forum]&lt;br /&gt;
&lt;br /&gt;
Das Archiv wird in den Installationsordner von Contao entpackt.}}&lt;br /&gt;
&lt;br /&gt;
'''Die folgende Beschreibung ist veraltet --------------------------'''&amp;lt;br/&amp;gt;&lt;br /&gt;
... führt allerdings zur noch aktuelleren Version&lt;br /&gt;
&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
CONTAO=das_contao_verzeichnis/&lt;br /&gt;
for i in `ls -d *`; &lt;br /&gt;
do&lt;br /&gt;
	if [ $i = &amp;quot;copy2contao.sh&amp;quot; ]; then &lt;br /&gt;
		continue;&lt;br /&gt;
	fi;&lt;br /&gt;
	if [ $i = &amp;quot;DC_General&amp;quot; ]; then &lt;br /&gt;
		echo copying $i/system to $CONTAO&lt;br /&gt;
		cp -r $i/system $CONTAO;&lt;br /&gt;
	else&lt;br /&gt;
		echo copying $i/src/ to $CONTAO&lt;br /&gt;
		cp -r $i/src/* $CONTAO;&lt;br /&gt;
	fi;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Schließlich diese Datei ausführbar machen und starten:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x ./copy2contao.sh&lt;br /&gt;
./copy2contao.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''------------------------- Ende der veralteten Beschreibung'''&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst eine ''Ausgabevorgabe'' angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
{{msgQuestion|''Ausgabevorgaben'' werden an anderen Stellen innerhalb MetaModels auch als ''Renderereinstellungen''(Modul MetaModels-Liste) oder als ''Ansicht''(Paletten- und Ansichtseinstellungen) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte die Nomenklatur vereinheitlicht werden.}}&lt;br /&gt;
&lt;br /&gt;
Auf der neu erscheinenden Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als ''Ausgabevorgabe''-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] eine neue ''Ausgabevorgabe'' erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Liste der Ausgabevorgaben.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Liste der Ausgabevorgaben. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist die vorhin angelegte Ausgabevorgabe&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst eine Ausgabevorgabe, die wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&amp;lt;br/&amp;gt;die ''Ausgabevorgabe''&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes eina Ausgabevorgabe für die Detailseite angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zur Ausgabevorgabe '''Trad-Liste FE''' und ändern deren Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2013-01-20T19:51:33Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Vorbereitungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
{{Hinweis|Es geht jetzt auch einfacher als im Folgenden beschrieben, da die Entwickler nun den jeweils aktuellen Entwicklungsstand zum Download anbieten:&lt;br /&gt;
als [http://now.metamodel.me/tl_files/metamodels-nightly.zip ZIP],&lt;br /&gt;
als [http://now.metamodel.me/tl_files/met...nightly.tar.gz TAR GZ] &lt;br /&gt;
oder als [http://now.metamodel.me/tl_files/met...ightly.tar.bz2 TAR BZ2]&lt;br /&gt;
&lt;br /&gt;
siehe dieser [https://community.contao.org/de/showthread.php?36716-Wo-kann-man-MetaModels-herunterladen&amp;amp;p%61241122&amp;amp;viewfull%611#post241122 Beitrag im Forum]&lt;br /&gt;
&lt;br /&gt;
Das Archiv wird in den Installationsordner von Contao entpackt.}}&lt;br /&gt;
&lt;br /&gt;
'''Die folgende Beschreibung ist veraltet --------------------------'''&amp;lt;br/&amp;gt;&lt;br /&gt;
... führt allerdings zur noch aktuelleren Version&lt;br /&gt;
&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
CONTAO=das_contao_verzeichnis/&lt;br /&gt;
for i in `ls -d *_*`; &lt;br /&gt;
do&lt;br /&gt;
	echo $i&lt;br /&gt;
	if [ $i = &amp;quot;DC_General&amp;quot; ]; then &lt;br /&gt;
		cp -r $i/system $CONTAO;&lt;br /&gt;
	else&lt;br /&gt;
		cp -r $i/src/* $CONTAO;&lt;br /&gt;
	fi;&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Schließlich diese Datei ausführbar machen und starten:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod +x ./copy2contao.sh&lt;br /&gt;
./copy2contao.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''------------------------- Ende der veralteten Beschreibung'''&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst eine ''Ausgabevorgabe'' angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
{{msgQuestion|''Ausgabevorgaben'' werden an anderen Stellen innerhalb MetaModels auch als ''Renderereinstellungen''(Modul MetaModels-Liste) oder als ''Ansicht''(Paletten- und Ansichtseinstellungen) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte die Nomenklatur vereinheitlicht werden.}}&lt;br /&gt;
&lt;br /&gt;
Auf der neu erscheinenden Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als ''Ausgabevorgabe''-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] eine neue ''Ausgabevorgabe'' erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Liste der Ausgabevorgaben.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Liste der Ausgabevorgaben. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist die vorhin angelegte Ausgabevorgabe&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst eine Ausgabevorgabe, die wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&amp;lt;br/&amp;gt;die ''Ausgabevorgabe''&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes eina Ausgabevorgabe für die Detailseite angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zur Ausgabevorgabe '''Trad-Liste FE''' und ändern deren Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2013-01-12T20:54:15Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Vorbereitungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
{{Hinweis|Es geht jetzt auch einfacher als im Folgenden beschrieben, da die Entwickler nun den jeweils aktuellen Entwicklungsstand zum Download anbieten:&lt;br /&gt;
als [http://now.metamodel.me/tl_files/metamodels-nightly.zip ZIP],&lt;br /&gt;
als [http://now.metamodel.me/tl_files/met...nightly.tar.gz TAR GZ] &lt;br /&gt;
oder als [http://now.metamodel.me/tl_files/met...ightly.tar.bz2 TAR BZ2]&lt;br /&gt;
&lt;br /&gt;
siehe dieser [https://community.contao.org/de/showthread.php?36716-Wo-kann-man-MetaModels-herunterladen&amp;amp;p%61241122&amp;amp;viewfull%611#post241122 Beitrag im Forum]&lt;br /&gt;
&lt;br /&gt;
Das Archiv wird in den Installationsordner von Contao entpackt.}}&lt;br /&gt;
&lt;br /&gt;
'''Die folgende Beschreibung ist veraltet --------------------------'''&lt;br /&gt;
&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''------------------------- Ende der veralteten Beschreibung'''&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst eine ''Ausgabevorgabe'' angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
{{msgQuestion|''Ausgabevorgaben'' werden an anderen Stellen innerhalb MetaModels auch als ''Renderereinstellungen''(Modul MetaModels-Liste) oder als ''Ansicht''(Paletten- und Ansichtseinstellungen) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte die Nomenklatur vereinheitlicht werden.}}&lt;br /&gt;
&lt;br /&gt;
Auf der neu erscheinenden Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als ''Ausgabevorgabe''-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] eine neue ''Ausgabevorgabe'' erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Liste der Ausgabevorgaben.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Liste der Ausgabevorgaben. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist die vorhin angelegte Ausgabevorgabe&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst eine Ausgabevorgabe, die wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&amp;lt;br/&amp;gt;die ''Ausgabevorgabe''&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes eina Ausgabevorgabe für die Detailseite angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zur Ausgabevorgabe '''Trad-Liste FE''' und ändern deren Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2013-01-12T20:03:27Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Vorbereitungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
{{Hinweis|Es geht jetzt auch einfacher als im Folgenden beschrieben, da die Entwickler nun den jeweils aktuellen Entwicklungsstand zum Download anbieten:&lt;br /&gt;
als [http://now.metamodel.me/tl_files/metamodels-nightly.zip ZIP],&lt;br /&gt;
als [http://now.metamodel.me/tl_files/met...nightly.tar.gz TAR GZ] &lt;br /&gt;
oder als [http://now.metamodel.me/tl_files/met...ightly.tar.bz2 TAR BZ2]&lt;br /&gt;
&lt;br /&gt;
Das Archiv wird in den Installationsordner von Contao entpackt.}}&lt;br /&gt;
&lt;br /&gt;
'''Die folgende Beschreibung ist veraltet --------------------------'''&lt;br /&gt;
&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''------------------------- Ende der veralteten Beschreibung'''&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst eine ''Ausgabevorgabe'' angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
{{msgQuestion|''Ausgabevorgaben'' werden an anderen Stellen innerhalb MetaModels auch als ''Renderereinstellungen''(Modul MetaModels-Liste) oder als ''Ansicht''(Paletten- und Ansichtseinstellungen) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte die Nomenklatur vereinheitlicht werden.}}&lt;br /&gt;
&lt;br /&gt;
Auf der neu erscheinenden Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als ''Ausgabevorgabe''-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] eine neue ''Ausgabevorgabe'' erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Liste der Ausgabevorgaben.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Liste der Ausgabevorgaben. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist die vorhin angelegte Ausgabevorgabe&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst eine Ausgabevorgabe, die wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&amp;lt;br/&amp;gt;die ''Ausgabevorgabe''&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes eina Ausgabevorgabe für die Detailseite angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zur Ausgabevorgabe '''Trad-Liste FE''' und ändern deren Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-23T16:11:50Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Detailseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst eine ''Ausgabevorgabe'' angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
{{msgQuestion|''Ausgabevorgaben'' werden an anderen Stellen innerhalb MetaModels auch als ''Renderereinstellungen''(Modul MetaModels-Liste) oder als ''Ansicht''(Paletten- und Ansichtseinstellungen) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte die Nomenklatur vereinheitlicht werden.}}&lt;br /&gt;
&lt;br /&gt;
Auf der neu erscheinenden Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als ''Ausgabevorgabe''-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] eine neue ''Ausgabevorgabe'' erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Liste der Ausgabevorgaben.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Liste der Ausgabevorgaben. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist die vorhin angelegte Ausgabevorgabe&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst eine Ausgabevorgabe, die wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&amp;lt;br/&amp;gt;die ''Ausgabevorgabe''&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes eina Ausgabevorgabe für die Detailseite angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zur Ausgabevorgabe '''Trad-Liste FE''' und ändern deren Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-23T16:06:53Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Anzeige der Daten im Frontend (Liste) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst eine ''Ausgabevorgabe'' angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
{{msgQuestion|''Ausgabevorgaben'' werden an anderen Stellen innerhalb MetaModels auch als ''Renderereinstellungen''(Modul MetaModels-Liste) oder als ''Ansicht''(Paletten- und Ansichtseinstellungen) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte die Nomenklatur vereinheitlicht werden.}}&lt;br /&gt;
&lt;br /&gt;
Auf der neu erscheinenden Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als ''Ausgabevorgabe''-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] eine neue ''Ausgabevorgabe'' erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Liste der Ausgabevorgaben.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Liste der Ausgabevorgaben. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist die vorhin angelegte Ausgabevorgabe&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst eine Ausgabevorgabe, die wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Die neue Vorgabe nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&amp;lt;br/&amp;gt;die ''Ausgabevorgabe''&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-23T16:04:58Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Backend für Redakteure einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst eine ''Ausgabevorgabe'' angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
{{msgQuestion|''Ausgabevorgaben'' werden an anderen Stellen innerhalb MetaModels auch als ''Renderereinstellungen''(Modul MetaModels-Liste) oder als ''Ansicht''(Paletten- und Ansichtseinstellungen) bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte die Nomenklatur vereinheitlicht werden.}}&lt;br /&gt;
&lt;br /&gt;
Auf der neu erscheinenden Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als ''Ausgabevorgabe''-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] eine neue ''Ausgabevorgabe'' erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Liste der Ausgabevorgaben.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Liste der Ausgabevorgaben. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist die vorhin angelegte Ausgabevorgabe&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-23T15:53:10Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Backend für Redakteure einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst eine ''Ausgabevorgabe'' angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
{{msgQuestion|''Ausgabevorgaben'' werden an anderen Stellen innerhalb MetaModels auch als ''Renderereinstellungen'' bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Vielleicht sollte die Nomenklatur vereinheitlicht werden.}}&lt;br /&gt;
&lt;br /&gt;
Auf der neu erscheinenden Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als ''Ausgabevorgabe''-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] eine neue ''Ausgabevorgabe'' erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-23T14:15:58Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Detailseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (''Ausgabevorgabe'') angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-21T10:07:07Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Backend für Redakteure einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (''Ausgabevorgabe'') angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Der Filter wird natürlich aktiviert, wir wählen als Filter-Attribut '''Alias'''.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-20T22:41:22Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Detailseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (''Ausgabevorgabe'') angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Der Filter wird natürlich aktiviert, wir wählen als Filter-Attribut '''Alias'''.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;br /&gt;
&lt;br /&gt;
==Filtern und Sortieren im Frontend==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-20T22:40:11Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Detailseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (''Ausgabevorgabe'') angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|} [[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Modul_Liste.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Weiterhin legen wir einen neuen Filter namens '''Tune-Alias Filter''' an. [[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Der Filter wird natürlich aktiviert, wir wählen als Filter-Attribut '''Alias'''.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Tune-Alias Filter (der eben angelegte Filter)&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Schließlich kehren wir zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Auf der Detailseite werde alle eingegebenen Informationen des jeweiligen Stücks ausgegeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
Hurra!&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-20T20:45:28Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Detailseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (''Ausgabevorgabe'') angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Wir kehren zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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 '''Published Filter''' ein.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat, dann wird jetzt im Frontend in der Liste bei jedem Eintrag ein Link '''Details''' angezeigt.&lt;br /&gt;
&lt;br /&gt;
...bald mehr...&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-20T18:39:36Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Anzeige der Daten im Frontend (Liste) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (''Ausgabevorgabe'') angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es werden wieder alle Attribute eingefügt ([''Add all'']) und diesmal wählen wir mit dem 'Auge' alle Attribute bis auf '''Alias''', da ja die vollständige Information ausgegeben werden soll.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Wir kehren zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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 '''Published Filter''' ein.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat, dann wird jetzt im Frontend in der Liste bei jedem Eintrag ein Link '''Details''' angezeigt.&lt;br /&gt;
&lt;br /&gt;
...bald mehr...&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-20T18:37:56Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Backend für Redakteure einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
Zunächst definieren wir, welche Attribute in der Backend-Liste angezeigt werden sollen. Dazu wird zunächst ein Template (''Ausgabevorgabe'') angelegt:&amp;lt;br/&amp;gt;[[Datei:MetaModels_Ausgabevorgabe.png]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Jetzt gibt es im Menü [''Backend-Module''] einen neuen Eintrag im Bereich [''Inhalte''] mit der von uns gewählten Bezeichnung [''Trad.-Sammlung''].&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieser Punkt soll von den Redakteuren verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es werden wieder alle Attribute eingefügt ([''Add all'']) und diesmal wählen wir mit dem 'Auge' alle Attribute bis auf '''Alias''', da ja die vollständige Information ausgegeben werden soll.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Wir kehren zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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 '''Published Filter''' ein.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat, dann wird jetzt im Frontend in der Liste bei jedem Eintrag ein Link '''Details''' angezeigt.&lt;br /&gt;
&lt;br /&gt;
...bald mehr...&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-20T18:30:17Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Unser Datenmodell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_TuneBook.png]]&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen.&amp;lt;br/&amp;gt;&lt;br /&gt;
Klick auf das rot markierte Icon:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_definieren.png]]&lt;br /&gt;
&lt;br /&gt;
Gib nun wie unten aufgelistet die neuen Attribute ein:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_hizufuegen.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Komponist/Urheber&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Deine Attributs-Liste sollte nun wie folgt aussehen:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Datei:MetaModels_Screen_Attribute_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt. [[Datei:MetaModels_Screen_Template_neu.png]]&lt;br /&gt;
&lt;br /&gt;
Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste. [[Datei:MetaModels_Screen_Template_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon gelangt man in den Dialog zur Template-Bearbeitung. [[Datei:MetaModels_Screen_Template_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Am Einfachsten wählt man [''Add all''] um alle vorhandenen Attribute dem Template hinzuzufügen.[[Datei:MetaModels_Screen_Template_Liste_AddAll.png]]&lt;br /&gt;
[[Datei:MetaModels_Screen_Template_Liste_AddAll_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
Ü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]]&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}.[[Datei:MetaModels_Screen_Palette_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Über das rechte Icon wird das Backend definiert. [[Datei:MetaModels_Screen_Palette_Liste.png]]&lt;br /&gt;
&lt;br /&gt;
Man gelangt in eine neue Liste und wählt am Einfachsten [''alle hinzufügen''] um alle vorhandenen Attribute der BE-Bearbeitung hinzuzufügen. [[Datei:MetaModels_Screen_Palette_Liste_AddAll.png]] [[Datei:MetaModels_Screen_Palette_Liste_Weiter.png]]&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
[[Datei:MetaModels_Screen_Palette_Liste_Ende.png]]&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Ansicht_bearbeiten.png]]&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)[[Datei:MetaModels_Screen_Backend_Module.png]]&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.[[Datei:MetaModels_Screen_Backend_Module_Liste.png]]&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:MetaModels_Screen_Filter_bearbeiten.png]]&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es werden wieder alle Attribute eingefügt ([''Add all'']) und diesmal wählen wir mit dem 'Auge' alle Attribute bis auf '''Alias''', da ja die vollständige Information ausgegeben werden soll.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Wir kehren zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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 '''Published Filter''' ein.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat, dann wird jetzt im Frontend in der Liste bei jedem Eintrag ein Link '''Details''' angezeigt.&lt;br /&gt;
&lt;br /&gt;
...bald mehr...&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-19T23:17:51Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Detailseite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: [[Datei:MetaModels_Tools_Attribute.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt. Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ü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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
Man gelangt per [[Datei:MetaModels_Paletteneinstellungen.png]] in eine Liste, in der über [''Neue Palette''] der Menü-Eintrag definiert wird.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Detailseite==&lt;br /&gt;
Jetzt hätten wir natürlich gerne einen Link bei jedem Eintrag in der angezeigten Liste, über den eine Detail-Seite aufrufbar ist.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es wird als erstes ein Detail-Template angelegt [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Es werden wieder alle Attribute eingefügt ([''Add all'']) und diesmal wählen wir mit dem 'Auge' alle Attribute bis auf '''Alias''', da ja die vollständige Information ausgegeben werden soll.&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir ein weiteres Modul vom Typ ''MetaModels-Liste''. Wir nennen es '''Tune-Detail''' und verwenden folgende Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Elemente pro Seite'''||1&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste Detail&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird auch hier eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Wir kehren zurück zum Listen-Template '''Trad-Liste FE''' und ändern dessen Einstellungen (über das Stift-Symbol):&lt;br /&gt;
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 '''Published Filter''' ein.&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Wenn alles geklappt hat, dann wird jetzt im Frontend in der Liste bei jedem Eintrag ein Link '''Details''' angezeigt.&lt;br /&gt;
&lt;br /&gt;
...bald mehr...&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-19T21:39:40Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Anzeige der Daten im Frontend (Liste) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: [[Datei:MetaModels_Tools_Attribute.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt. Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ü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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
Man gelangt per [[Datei:MetaModels_Paletteneinstellungen.png]] in eine Liste, in der über [''Neue Palette''] der Menü-Eintrag definiert wird.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Am Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Details)==&lt;br /&gt;
Jetzt fehlt noch die Detail-Ansicht der einzelnen Stücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir legen ein weiteres Template [''MetaModels''] an [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
und nennen es '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
In der Detail-Ansicht sollen alle Attribute außer Alias angezeigt werden. Also wählen wir sie mit dem 'Auge' aus.&lt;br /&gt;
&lt;br /&gt;
Für die Anzeige benötigen wir wieder ein Modul vom Typ ''MetaModels-Liste'' und nennen es '''Tune-Detail'''. Die wichtigen Einstellungen hier sind&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''MetaModel''' TuneBook&lt;br /&gt;
* '''Elemente pro Seite''' 1&lt;br /&gt;
* '''Anzuwendende Rendereinstellung''' Trad-Liste Detail&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite '''Tune-Detail''' angelegt und im Artikel das gerade angelegte Modul eingefügt. Damit jeder Eintrag in der Liste einen Link zu einer Detail-Ansicht erhält, muss das Template '''Trad-Liste FE''' bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
... hier geht es bald weiter ...&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-19T21:30:37Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Backend für Redakteure einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: [[Datei:MetaModels_Tools_Attribute.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt. Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ü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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
Man gelangt per [[Datei:MetaModels_Paletteneinstellungen.png]] in eine Liste, in der über [''Neue Palette''] der Menü-Eintrag definiert wird.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
AM Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Details)==&lt;br /&gt;
Jetzt fehlt noch die Detail-Ansicht der einzelnen Stücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir legen ein weiteres Template [''MetaModels''] an [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
und nennen es '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
In der Detail-Ansicht sollen alle Attribute außer Alias angezeigt werden. Also wählen wir sie mit dem 'Auge' aus.&lt;br /&gt;
&lt;br /&gt;
Für die Anzeige benötigen wir wieder ein Modul vom Typ ''MetaModels-Liste'' und nennen es '''Tune-Detail'''. Die wichtigen Einstellungen hier sind&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''MetaModel''' TuneBook&lt;br /&gt;
* '''Elemente pro Seite''' 1&lt;br /&gt;
* '''Anzuwendende Rendereinstellung''' Trad-Liste Detail&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite '''Tune-Detail''' angelegt und im Artikel das gerade angelegte Modul eingefügt. Damit jeder Eintrag in der Liste einen Link zu einer Detail-Ansicht erhält, muss das Template '''Trad-Liste FE''' bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
... hier geht es bald weiter ...&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-19T21:25:36Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Backend für Redakteure einrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: [[Datei:MetaModels_Tools_Attribute.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt. Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ü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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
Man gelangt per [[Datei:MetaModels_Paletteneinstellungen.png]] in eine Liste, in der über [''Neue Palette''] der Menü-Eintrag definiert wird.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;br/&amp;gt;&lt;br /&gt;
(Dazu wird dann später als BE-Gruppe die Gruppe der Redakteure eingetragen.)&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
AM Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Details)==&lt;br /&gt;
Jetzt fehlt noch die Detail-Ansicht der einzelnen Stücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir legen ein weiteres Template [''MetaModels''] an [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
und nennen es '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
In der Detail-Ansicht sollen alle Attribute außer Alias angezeigt werden. Also wählen wir sie mit dem 'Auge' aus.&lt;br /&gt;
&lt;br /&gt;
Für die Anzeige benötigen wir wieder ein Modul vom Typ ''MetaModels-Liste'' und nennen es '''Tune-Detail'''. Die wichtigen Einstellungen hier sind&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''MetaModel''' TuneBook&lt;br /&gt;
* '''Elemente pro Seite''' 1&lt;br /&gt;
* '''Anzuwendende Rendereinstellung''' Trad-Liste Detail&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite '''Tune-Detail''' angelegt und im Artikel das gerade angelegte Modul eingefügt. Damit jeder Eintrag in der Liste einen Link zu einer Detail-Ansicht erhält, muss das Template '''Trad-Liste FE''' bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
... hier geht es bald weiter ...&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-19T21:09:48Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Anzeige der Daten im Frontend (Liste) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: [[Datei:MetaModels_Tools_Attribute.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt. Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ü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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
Man gelangt per [[Datei:MetaModels_Paletteneinstellungen.png]] in eine Liste, in der über [''Neue Palette''] der Menü-Eintrag definiert wird.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
AM Einfachsten fügen wir per [''Add all''] alle Attribute ein.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Details)==&lt;br /&gt;
Jetzt fehlt noch die Detail-Ansicht der einzelnen Stücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir legen ein weiteres Template [''MetaModels''] an [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
und nennen es '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
In der Detail-Ansicht sollen alle Attribute außer Alias angezeigt werden. Also wählen wir sie mit dem 'Auge' aus.&lt;br /&gt;
&lt;br /&gt;
Für die Anzeige benötigen wir wieder ein Modul vom Typ ''MetaModels-Liste'' und nennen es '''Tune-Detail'''. Die wichtigen Einstellungen hier sind&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''MetaModel''' TuneBook&lt;br /&gt;
* '''Elemente pro Seite''' 1&lt;br /&gt;
* '''Anzuwendende Rendereinstellung''' Trad-Liste Detail&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite '''Tune-Detail''' angelegt und im Artikel das gerade angelegte Modul eingefügt. Damit jeder Eintrag in der Liste einen Link zu einer Detail-Ansicht erhält, muss das Template '''Trad-Liste FE''' bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
... hier geht es bald weiter ...&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-19T20:55:27Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Anzeige der Daten im Frontend (Liste) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: [[Datei:MetaModels_Tools_Attribute.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt. Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ü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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
Man gelangt per [[Datei:MetaModels_Paletteneinstellungen.png]] in eine Liste, in der über [''Neue Palette''] der Menü-Eintrag definiert wird.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir einen Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragenen und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Details)==&lt;br /&gt;
Jetzt fehlt noch die Detail-Ansicht der einzelnen Stücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir legen ein weiteres Template [''MetaModels''] an [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
und nennen es '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
In der Detail-Ansicht sollen alle Attribute außer Alias angezeigt werden. Also wählen wir sie mit dem 'Auge' aus.&lt;br /&gt;
&lt;br /&gt;
Für die Anzeige benötigen wir wieder ein Modul vom Typ ''MetaModels-Liste'' und nennen es '''Tune-Detail'''. Die wichtigen Einstellungen hier sind&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''MetaModel''' TuneBook&lt;br /&gt;
* '''Elemente pro Seite''' 1&lt;br /&gt;
* '''Anzuwendende Rendereinstellung''' Trad-Liste Detail&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite '''Tune-Detail''' angelegt und im Artikel das gerade angelegte Modul eingefügt. Damit jeder Eintrag in der Liste einen Link zu einer Detail-Ansicht erhält, muss das Template '''Trad-Liste FE''' bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
... hier geht es bald weiter ...&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2012-12-16T22:27:38Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: /* Anzeige der Daten im Frontend (Liste) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Beispielprojekt mit MetaModels (aka Catalog 3)=&lt;br /&gt;
{{msgInfo|Hier entsteht anhand eines Beispielprojektes die Beschreibung der wichtigsten Möglichkeiten der neuen [[MetaModels|MetaModels]] in einem Contao 2.11.6ff.&amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bedienung und Administration von Contao sollte bekannt sein.&amp;lt;br/&amp;gt;&lt;br /&gt;
Bezüglich der MetaModels werden keinerlei Vorkenntnisse vorausgesetzt.&lt;br /&gt;
&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
==Die Aufgabenstellung==&lt;br /&gt;
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. &lt;br /&gt;
In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.&lt;br /&gt;
&lt;br /&gt;
==Vorbereitungen==&lt;br /&gt;
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.&lt;br /&gt;
&lt;br /&gt;
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.&lt;br /&gt;
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
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'''.&lt;br /&gt;
&lt;br /&gt;
Die '''system'''-Ordner müssen jeweils in die Contao-Installation kopiert werden ('''contao''' ersetzen durch Pfad zum Contao-Installationsordner):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done;&lt;br /&gt;
cp -r core/src/* contao/&lt;br /&gt;
cp -r DC_General/* contao/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: '''Erweiterungsverwaltung | Datenbank aktualisieren'''&lt;br /&gt;
&lt;br /&gt;
==Unser Datenmodell==&lt;br /&gt;
Jetzt geht es wirklich los!&lt;br /&gt;
&lt;br /&gt;
Im Backend unter [''System''] befindet sich ein neuer Eintrag [''MetaModels''], über den ein neues MetaModel angelegt wird.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für unsere Aufgabenstellung wählen wir&amp;lt;br/&amp;gt;&lt;br /&gt;
* Name: '''TuneBook'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* TabellenName: '''mm_tunebook'''&lt;br /&gt;
&lt;br /&gt;
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:&amp;lt;br/&amp;gt;&lt;br /&gt;
* Übersetzung '''anhaken'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Eine Sprache '''Deutsch''' legen wir dann auch an und machen sie zum Fallback.&lt;br /&gt;
{{msgQuestion | Unter den [''Experteneinstellungen''] befindet sich noch eine Option [''Varianten aktivieren''],&amp;lt;br/&amp;gt;&lt;br /&gt;
deren Bedeutung sich auch mit der angezeigten Erklärung einem Neuling nicht erschließt.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir aktivieren sie zunächst nicht.}}&lt;br /&gt;
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: [[Datei:MetaModels_Tools_Attribute.png]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = title&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = Name des Stücks&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = type&lt;br /&gt;
* Name (deutsch) = Typ&lt;br /&gt;
* Description (deutsch) = Rhythmus / Tanzart&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = country&lt;br /&gt;
* Name (deutsch) = Herkunftsland&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = region&lt;br /&gt;
* Name (deutsch) = Region&lt;br /&gt;
* Description (deutsch) = für eine feinere geographische Zuordnung als das Herkunftsland&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = source&lt;br /&gt;
* Name (deutsch) = Quelle&lt;br /&gt;
* Description (deutsch) = Notenbuch / Sammlung / Kurs&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Text&lt;br /&gt;
* Column name = composer&lt;br /&gt;
* Name (deutsch) = Titel&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Longtext&lt;br /&gt;
* Column name = abc&lt;br /&gt;
* Name (deutsch) = ABC-Notation&lt;br /&gt;
* Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann.&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Übersetzter Longtext&lt;br /&gt;
* Column name = info&lt;br /&gt;
* Name (deutsch) = Zusatz-Informationen&lt;br /&gt;
* Description (deutsch) = Beliebige zusätzliche Infos zu dem Stück, wie Anekdoten, Links zu Fundstellen von Hörbeispielen im Netz usw.&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Checkbox&lt;br /&gt;
* Column name = published&lt;br /&gt;
* Name (deutsch) = Veröffentlicht&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* check publish = aktiviert&amp;lt;br/&amp;gt;(vermutlich erzeugt diese Option die gewünschte Funktionalität)&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br/&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type = Alias&lt;br /&gt;
* Column name = alias&lt;br /&gt;
* Name (deutsch) = Alias&lt;br /&gt;
* Description (deutsch) = &lt;br /&gt;
* Unique values = aktiviert&lt;br /&gt;
* Alias fields = Titel&lt;br /&gt;
* Force alias regenerating = aktiviert&amp;lt;br/&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{msgQuestion | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.&amp;lt;br/&amp;gt;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.&lt;br /&gt;
&lt;br /&gt;
Ist diese Überlegung richtig?}}&lt;br /&gt;
&lt;br /&gt;
==Backend für Redakteure einrichten==&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Und genau das können die MetaModels leisten!&amp;lt;br/&amp;gt;&lt;br /&gt;
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]]&lt;br /&gt;
&lt;br /&gt;
Auf der neuen Backend-Seite &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;(die leider durch nichts als Template-Seite zu erkennen ist)&amp;lt;/span&amp;gt; wird per [''Neu''] ein neues Template erzeugt. Wir geben ihr den Namen '''Liste Backend''', alle anderen Einstellungen ändern wir nicht.&amp;lt;br/&amp;gt;Mit [''speichern und schließen''] gelangt man zurück zur Template-Liste.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ü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.&amp;lt;br/&amp;gt;&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen: '''Titel''', '''Typ''' und '''Herkunftsland'''.&lt;br /&gt;
&lt;br /&gt;
Per [''zurück''] kommen wir wieder zur Template-Liste. &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;Ein weiteres [''zurück''] führt uns leider nicht auf die Grundseite der MetaModels.&amp;lt;/span&amp;gt; Also müssen wir über das Hauptmenü dorthin navigieren.&lt;br /&gt;
&lt;br /&gt;
Jetzt soll der Menüpunkt für die Redakteure erstellt werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
Man gelangt per [[Datei:MetaModels_Paletteneinstellungen.png]] in eine Liste, in der über [''Neue Palette''] der Menü-Eintrag definiert wird.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Wir wählen die folgenden Einstellungen:&lt;br /&gt;
|-&lt;br /&gt;
|'''Name'''||Trad.-Liste&lt;br /&gt;
|-&lt;br /&gt;
|'''als Standard benutzen'''||aktivieren &amp;lt;span style=&amp;quot;color:blue;&amp;quot;&amp;gt;sonst wird der Menüpunkt nicht angezeigt.&amp;lt;br/&amp;gt;vielleicht sollte die Bezeichnung dieser Option geändert werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''Panel-Layout'''||filter;search,limit&amp;lt;br/&amp;gt;Hier werden die im BE angezeigten Elemente und deren Reihenfolge und Position festgelegt.&lt;br /&gt;
|-&lt;br /&gt;
|'''Integration'''||Als Einzeltabelle (wir haben ja nur eine...), die weiteren Optionen erscheinen erst nach der Auswahl.&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortiermodus'''||Datensätze nach wählbarem Feld sortiert darstellen&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortierung'''||Nach erstem Buchstaben absteigend sortieren&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Bereich'''||Inhalte&lt;br /&gt;
|-&lt;br /&gt;
|'''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.&lt;br /&gt;
|-&lt;br /&gt;
|'''Backend-Beschreibung'''||&lt;br /&gt;
* '''Sprache''' Deutsch&lt;br /&gt;
* '''Menütext''' Trad.-Sammlung&lt;br /&gt;
* '''Beschreibung''' Sammlung traditioneller Folkmusik&lt;br /&gt;
|-&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|[''speichern und schließen'']&lt;br /&gt;
|}&lt;br /&gt;
{{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.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.}}&lt;br /&gt;
&lt;br /&gt;
Ü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.&lt;br /&gt;
&lt;br /&gt;
Für unsere Musiksammlung wählen wir die folgenden Einstellungen:&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
!Attribut&lt;br /&gt;
!Pflichtfeld&lt;br /&gt;
!Filterbar&lt;br /&gt;
!Sortierbar&lt;br /&gt;
!Durchsuchbar&lt;br /&gt;
|-&lt;br /&gt;
|'''Titel'''||x|| ||x||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Alias'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Herkunftsland'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Region'''|| ||x|| ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Quelle'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Komponist/Urheber'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''ABC-Notation'''|| || || ||&lt;br /&gt;
|-&lt;br /&gt;
|'''Zusatz-Informationen'''|| || || ||x&lt;br /&gt;
|-&lt;br /&gt;
|'''Veröffentlicht'''|| ||x|| ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Schließlich wird der Editor für Paletten- und Ansichts-Optionen geöffnet. [[Datei:MetaModels_Paletten_Ansicht.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier wird zunächst folgendes eingestellt:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''FE-Gruppe'''||-&lt;br /&gt;
|-&lt;br /&gt;
|'''BE-Gruppe'''||Administrator&lt;br /&gt;
|-&lt;br /&gt;
|'''Palette wählen'''||Trad.-Sammlung&lt;br /&gt;
|-&lt;br /&gt;
|'''Ansicht wählen'''||Liste Backend&amp;lt;br/&amp;gt;Dies ist das vorhin angelegte Template&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Es erscheint eine Contao-typische Liste, die mit Einträgen in unsere Sammlung gefüllt werden kann.&amp;lt;br/&amp;gt;&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Testweise tragen wir im Backend verschiedene Musikstücke ein und achten darauf, dass unterschiedliche Inhalte bei '''Herkunftsland''' und '''Typ''' eingetragen sind.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Liste)==&lt;br /&gt;
Um die eingetragenen Stücke im Frontend anzuzeigen brauchen wir zunächst ein Template, das wir unter [''MetaModels''] anlegen [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Das neue Template nennen wir '''Trad-Liste FE'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Für die Liste im Frontend reicht es aus, nur den '''Titel''', den '''Typ''' und das '''Herkunftsland''' auszugeben. Also wählen wir sie mit dem 'Auge' aus.&lt;br /&gt;
&lt;br /&gt;
Damit nur die veröffentlichten Einträge im FE angezeigt werden, richten wir ein Filter ein&lt;br /&gt;
[[Datei:MetaModels_Filter.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
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 mir folgenden Einstellungen:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''Typ'''||Einfache Abfrage&lt;br /&gt;
|-&lt;br /&gt;
|'''Aktivieren'''||Haken gesetzt&lt;br /&gt;
|-&lt;br /&gt;
|'''Attribut'''||veröffentlicht [checkbox]&lt;br /&gt;
|-&lt;br /&gt;
|'''URL-Parameter'''||(kann leer bleiben)&lt;br /&gt;
|-&lt;br /&gt;
|'''Allow empty value'''||kein Haken&lt;br /&gt;
|-&lt;br /&gt;
|'''Static Parameter'''||Haken gesetzt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Dann benötigen wir noch ein Modul vom Typ ''MetaModels-Liste'' namens '''Tunebook'''. Die vorgeschlagenen Einstellungen werden weitgehend übernommen. Wichtig sind zunächst nur&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|'''MetaModel'''||TuneBook&lt;br /&gt;
|-&lt;br /&gt;
|'''Sortieren nach'''||Titel&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Filtereinstellungen'''||Published Filter&lt;br /&gt;
|-&lt;br /&gt;
|'''Filter value for attribute &amp;quot;veröffentlicht&amp;quot;'''||1&amp;lt;br/&amp;gt;dies ist der Wert, der im Filter erfüllt sein muss. Dadurch werden also nur veröffentlichte Einträge ausgegeben.&lt;br /&gt;
|-&lt;br /&gt;
|'''Anzuwendende Rendereinstellung'''||Trad-Liste FE&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[Speichern und schließen]&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite angelegt und im Artikel das gerade angelegte Modul eingefügt.&lt;br /&gt;
&lt;br /&gt;
Die Seite im Frontend zeigt die eingetragene und veröffentlichten Stücke an, allerdings noch nicht besonders schön formatiert.&lt;br /&gt;
&lt;br /&gt;
==Anzeige der Daten im Frontend (Details)==&lt;br /&gt;
Jetzt fehlt noch die Detail-Ansicht der einzelnen Stücke.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wir legen ein weiteres Template [''MetaModels''] an [[Datei:MetaModels_Ausgabevorgabe.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
und nennen es '''Trad-Liste Detail'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
In der Detail-Ansicht sollen alle Attribute außer Alias angezeigt werden. Also wählen wir sie mit dem 'Auge' aus.&lt;br /&gt;
&lt;br /&gt;
Für die Anzeige benötigen wir wieder ein Modul vom Typ ''MetaModels-Liste'' und nennen es '''Tune-Detail'''. Die wichtigen Einstellungen hier sind&amp;lt;br/&amp;gt;&lt;br /&gt;
* '''MetaModel''' TuneBook&lt;br /&gt;
* '''Elemente pro Seite''' 1&lt;br /&gt;
* '''Anzuwendende Rendereinstellung''' Trad-Liste Detail&lt;br /&gt;
&lt;br /&gt;
Schließlich wird eine neue Seite '''Tune-Detail''' angelegt und im Artikel das gerade angelegte Modul eingefügt. Damit jeder Eintrag in der Liste einen Link zu einer Detail-Ansicht erhält, muss das Template '''Trad-Liste FE''' bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
... hier geht es bald weiter ...&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	<entry>
		<id>https://dev.contaowiki.org/Datei:MetaModels_Filter.png</id>
		<title>Datei:MetaModels Filter.png</title>
		<link rel="alternate" type="text/html" href="https://dev.contaowiki.org/Datei:MetaModels_Filter.png"/>
				<updated>2012-12-16T22:16:32Z</updated>
		
		<summary type="html">&lt;p&gt;Folkfreund: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Folkfreund</name></author>	</entry>

	</feed>