MetaModels Beispielprojekt: Unterschied zwischen den Versionen
Aus Contao Community Documentation
(Attribute beschrieben) |
(→Unser Datenmodell) |
||
Zeile 62: | Zeile 62: | ||
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: [[Datei:MetaModels_Tools_Attribute.png]] | Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen: [[Datei:MetaModels_Tools_Attribute.png]] | ||
− | '''Titel''' | + | {| |
+ | |'''Titel''' | ||
+ | | | ||
* Attribute Type = Text | * Attribute Type = Text | ||
* Column name = title | * Column name = title | ||
* Name (deutsch) = Titel | * Name (deutsch) = Titel | ||
* Description (deutsch) = Name des Stücks | * Description (deutsch) = Name des Stücks | ||
− | '''Typ''' | + | |- |
+ | |'''Typ''' | ||
+ | | | ||
* Attribute Type = Text | * Attribute Type = Text | ||
* Column name = type | * Column name = type | ||
* Name (deutsch) = Typ | * Name (deutsch) = Typ | ||
* Description (deutsch) = Rhythmus / Tanzart | * Description (deutsch) = Rhythmus / Tanzart | ||
− | '''Herkunftsland''' | + | |- |
+ | |'''Herkunftsland''' | ||
+ | | | ||
* Attribute Type = Text | * Attribute Type = Text | ||
* Column name = country | * Column name = country | ||
* Name (deutsch) = Herkunftsland | * Name (deutsch) = Herkunftsland | ||
* Description (deutsch) = | * Description (deutsch) = | ||
− | '''Region''' | + | |- |
+ | |'''Region''' | ||
+ | | | ||
* Attribute Type = Text | * Attribute Type = Text | ||
* Column name = region | * Column name = region | ||
* Name (deutsch) = Region | * Name (deutsch) = Region | ||
* Description (deutsch) = | * Description (deutsch) = | ||
− | '''Quelle''' | + | |- |
+ | |'''Quelle''' | ||
+ | | | ||
* Attribute Type = Text | * Attribute Type = Text | ||
* Column name = source | * Column name = source | ||
* Name (deutsch) = Quelle | * Name (deutsch) = Quelle | ||
* Description (deutsch) = Notenbuch / Sammlung / Kurs | * Description (deutsch) = Notenbuch / Sammlung / Kurs | ||
− | '''Komponist/Urheber''' | + | |- |
+ | |'''Komponist/Urheber''' | ||
+ | | | ||
* Attribute Type = Text | * Attribute Type = Text | ||
* Column name = composer | * Column name = composer | ||
* Name (deutsch) = Titel | * Name (deutsch) = Titel | ||
* Description (deutsch) = | * Description (deutsch) = | ||
− | '''ABC-Notation''' | + | |- |
+ | |'''ABC-Notation''' | ||
+ | | | ||
* Attribute Type = Longtext | * Attribute Type = Longtext | ||
* Column name = abc | * Column name = abc | ||
* Name (deutsch) = ABC-Notation | * Name (deutsch) = ABC-Notation | ||
− | * Description (deutsch) = | + | * Description (deutsch) = Hier kann das Stück in ABC-Notation eingegeben werden, die auf der Seite z.B. auch in Notenschrift gewandelt werden kann. |
− | '''Zusatz-Informationen''' | + | |- |
+ | |'''Zusatz-Informationen''' | ||
+ | | | ||
* Attribute Type = Übersetzter Longtext | * Attribute Type = Übersetzter Longtext | ||
* Column name = info | * Column name = info | ||
* Name (deutsch) = Zusatz-Informationen | * Name (deutsch) = Zusatz-Informationen | ||
* Description (deutsch) = | * Description (deutsch) = | ||
− | + | |- | |
− | Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt: | + | |colspan="2"|Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt:<br/> |
− | + | |- | |
− | '''Veröffentlicht''' | + | |'''Veröffentlicht''' |
+ | | | ||
* Attribute Type = Checkbox | * Attribute Type = Checkbox | ||
* Column name = published | * Column name = published | ||
Zeile 111: | Zeile 128: | ||
* Description (deutsch) = | * Description (deutsch) = | ||
* check publish = aktiviert (vermutlich erzeugt diese Option die gewünschte Funktionalität) | * check publish = aktiviert (vermutlich erzeugt diese Option die gewünschte Funktionalität) | ||
− | + | |- | |
− | Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.<br/> | + | |colspan="2"|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.<br/>Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt: |
− | Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt: | + | |- |
− | + | |'''Alias''' | |
− | '''Alias''' | + | | |
* Attribute Type = Alias | * Attribute Type = Alias | ||
* Column name = alias | * Column name = alias | ||
Zeile 123: | Zeile 140: | ||
* Force alias regenerating = aktiviert | * Force alias regenerating = aktiviert | ||
* Alias fields = Titel | * Alias fields = Titel | ||
+ | |} | ||
{{msgInfo | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.<br/> Nur für die '''Zusatz-Informationen''' wurde ein übersetztes Attribut gewählt, da die Beschreibung eines Stücks ggf. in eine andere Sprache übersetzt wird. | {{msgInfo | Trotz der möglichen Mehrsprachigkeit wurden die meisten Attribute vom Typ '''Text''' und nicht '''Übersetzter Text''' angelegt.<br/> Nur für die '''Zusatz-Informationen''' wurde ein übersetztes Attribut gewählt, da die Beschreibung eines Stücks ggf. in eine andere Sprache übersetzt wird. |
Version vom 14. Dezember 2012, 22:59 Uhr
Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.
Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis. |
Inhaltsverzeichnis
Beispielprojekt mit MetaModels (aka Catalog 3)
Die Aufgabenstellung
Wir möchten eine Sammlung traditioneller Folkmusik aufbauen, die im BE durch Redakteure gepflegt werden kann, (die sich nicht mit MetaModels auseinandersetzen müssen). Im FE soll man die Sammlung nach unterschiedlichen Kriterien filtern und durchsuchen können. In der Detail-Ansicht werden alle verfügbaren Informationen zu einem Stück angezeigt.
Vorbereitungen
Wir gehen davon aus, dass Contao 2.11.6 (oder eine neuere 2.11) installiert ist.
Aktuell gibt es MetaModels noch nicht im Extension Repository. Man muss sich darum den Code von GitHub laden.
Dies geht am einfachsten auf einem Linux-Rechner mit lokalem Webserver für die Tests oder auf einem Linux-Server mit Shell-Zugang.
Unter Windows kann dasselbe mit cygwin erreicht werden, oder man verwendet einen Git-Client für Windows und kopiert die erhaltenen Quelldateien in die Contao-Installation.
Zunächst legt man sich einen Ordner an, in den die Quellen herunter geladen werden sollen und wechselt dahin.
cd ~ mkdir MetaModels cd MetaModels
Dann wird MetaModels einschließlich aller Unterprojekte heruntergeladen:
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \ grep clone_url | \ cut -d \" -f4`; do \ git clone $i; \ done;
Die erzeugten Ordnerstrukturen enthalten jeweils (bis auf DC_General) einen Ordner src. Darin befindet sich der Teil der Quellen, die in die Contao-Installation übernommen werden müssen. In DC_General befindet sich direkt der Ordner system.
Die system-Ordner müssen jeweils in die Contao-Installation kopiert werden (contao ersetzen durch Pfad zum Contao-Installationsordner):
for i in `ls -d attr*`; do cp -r $i/src/* contao/; done; cp -r core/src/* contao/ cp -r DC_General/* contao/
Jetzt muss noch im Contao-Backend die Datenbank aktualisiert werden: Erweiterungsverwaltung | Datenbank aktualisieren
Unser Datenmodell
Jetzt geht es wirklich los!
Im Backend unter System befindet sich ein neuer Eintrag MetaModels, über den ein neues MetaModel angelegt wird.
Für unsere Aufgabenstellung wählen wir
- Name: TuneBook
- TabellenName: mm_tunebook
Da noch nicht klar ist, ob die Seite vielleicht einmal mehrsprachig wird, bereiten wir das MetaModel direkt auf diesen Fall vor:
- Übersetzung anhaken
- Eine Sprache Deutsch legen wir dann auch an und machen sie zum Fallback.
Jetzt werden die Attribute definiert, die eines der Musikstücke in unserer Sammlung ausmachen:
Titel |
|
Typ |
|
Herkunftsland |
|
Region |
|
Quelle |
|
Komponist/Urheber |
|
ABC-Notation |
|
Zusatz-Informationen |
|
Man soll die Veröffentlichung von Einträgen steuern können. Also wird ein weiteres Attribut angelegt: | |
Veröffentlicht |
|
Bis jetzt wurde bei keinem der Attribute die Option Unique values aktiviert. Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt: | |
Alias |
|