MetaModels Backend: Ausgabevorgaben: Unterschied zwischen den Versionen
Aus Contao Community Documentation
Luis (Diskussion | Beiträge) (→Original) |
Luis (Diskussion | Beiträge) (→Original) |
||
Zeile 48: | Zeile 48: | ||
<?php if (count($this->data)): /* display only if there is data. */ ?> | <?php if (count($this->data)): /* display only if there is data. */ ?> | ||
<div class="layout_full"> | <div class="layout_full"> | ||
− | |||
<?php foreach ($this->data as $arrItem): /* loop over all items. */ ?> | <?php foreach ($this->data as $arrItem): /* loop over all items. */ ?> | ||
+ | |||
<div class="item <?php echo $arrItem['class']; ?>"> | <div class="item <?php echo $arrItem['class']; ?>"> | ||
<?php foreach ($arrItem['attributes'] as $field => $strName): /* loop over all attributes. */ ?> | <?php foreach ($arrItem['attributes'] as $field => $strName): /* loop over all attributes. */ ?> |
Version vom 22. Februar 2013, 15:21 Uhr
Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.
Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis. |
Inhaltsverzeichnis
Allgemeines zu den Ausgabevorgaben
- MetaModels Attribute
- MetaModels Ausgabevorgaben
- MetaModels Paletteneinstellungen
- MetaModels Filter
- MetaModels Ansichtseinstellungen
Was sind eigentlich Ausgabevorgaben?
Mit dem Ausgabevorgaben kann man bestimmen, welche Attribute (und in welcher Reihenfolge) in einer Ansicht gezeigt werden sollen. Z.B. möchte man in einer Liste nicht alle sondern nur die wichtigsten vier Attribute anzeigen. Im Backend sind die Ausgabevorgaben nur für die Liste relevant.
Einstieg
Nachdem du über Neu einen Eintrag generiert hast, stehen dir 2 Funktionen zur Verfügung:
- Ausgabe bearbeiten: Erstellen und organisieren von Ansichten
- Attributseinstellungen bearbeiten: Hinzufügen und organisieren von Attributen
Ansicht
Einstellungen
Hier legst du die Einstellung fest, die später in den Frontend-Modulen als so genannte Anzuwendende Rendereinstellung zum Tragen kommen.
- Name: Name der Ansicht
- Stanard: Optional
- Template: Standardmässig stehen dir 2 Templates zur Verfügung
- metamodel_prerendered (global scope)... nimmt Rücksicht auf die Reihenfolge, die du in den Attributseinstellungen vornimmst
- Zielseite: Wichtig, wenn man von einer Liste zu einer Detailseite springen will
- Filter settings: Gib den Filter an, der bei der Ziel zur Anwendung kommt. Gibt man keinen Filter an, wird im Frontend kein "Detail"-Link angezeigt.
Attribute
Über Add all kann man sich alle verfügbaren Attribute dazuladen. Hier legst du fest, welche Attribute in der Ansicht gezeigt werden sollen (Icon 'Auge'). Falls du oben das Template metamodel_prerendered (global scope) gewählt hast, nimmt dieses Template Rücksicht auf die hier gezeigte Reihenfolge.
Jedes Attribute verfügt über ein eigenes Template. Auf Wunsch kannst du natürlich auch hierauf Zugriff nehmen.
Templateanpassungen
Die grösste Einflussmöglichkeit ein eigenes Design zu implementieren besteht liegt in der Anpassung, des Templates metamodels_prerendered.html5.
Original
<?php if (count($this->data)): /* display only if there is data. */ ?> <div class="layout_full"> <?php foreach ($this->data as $arrItem): /* loop over all items. */ ?> <div class="item <?php echo $arrItem['class']; ?>"> <?php foreach ($arrItem['attributes'] as $field => $strName): /* loop over all attributes. */ ?> <?php if (($strValue = $arrItem[$this->getFormat()][$field]) || ($strValue = $arrItem['text'][$field])): /* fetch the html5 value followed by the fallback to "text" as both are suitable. */ ?> <div class="field <?php echo $field; ?>"> <span class="label"><?php echo $strName; ?></span>: <span class="value"><?php echo $strValue; ?></span> </div> <?php endif; ?> <?php endforeach; /* attribute loop */ ?> <?php if ($arrItem['jumpTo']): ?> <a href="<?php echo $arrItem['jumpTo']['url']; ?>">Details</a> <?php endif; ?> </div> <?php endforeach; /* item loop */ ?> </div> <?php else: /* no items found */ ?> <p class="info"><?php echo $this->noItemsMsg; ?></p> <?php endif; ?>
Mögliche Anpassung
<?php if (count($this->data)): /* display only if there is data. */ ?> <div class="layout_full"> <?php foreach ($this->data as $arrItem): /* loop over all items. */ ?> <div class="item <?php echo $arrItem['class']; ?>"> <h1><?php echo $arrItem['text']['title']; ?> (<?php echo $arrItem['text']['year']; ?>)</h1> <div class="content"> <div class="field composer"> <span class="label"><?php echo $arrItem['attributes']['composer']; ?></span> <span class="value"><strong><?php echo $arrItem['text']['composer']; ?></strong></span> </div> <div class="field style"> <span class="label"><?php echo $arrItem['attributes']['style']; ?></span> <span class="value"><?php echo $arrItem['text']['style']; ?></span> </div> <div class="field country"> <span class="label"><?php echo $arrItem['attributes']['country']; ?></span> <span class="value"><?php echo $arrItem['text']['country']; ?></span> </div> <div class="field description"> <span class="label"><?php echo $arrItem['attributes']['description']; ?></span> <span class="value"><?php echo $arrItem['text']['description']; ?></span> </div> <div class="field web"> <span class="label"><?php echo $arrItem['attributes']['web']; ?></span> <span class="value"><a href="<?php echo $arrItem['text']['web']; ?>"><?php echo $arrItem['text']['web']; ?></a></span> </div> <div class="field images"> <span class="label"><?php echo $arrItem['attributes']['images']; ?></span> <span class="value"><?php echo $arrItem['html5']['images']; ?></span> </div> </div> <div class="clear"></div> </div> <?php if ($arrItem['jumpTo']): ?><a href="<?php echo $arrItem['jumpTo']['url']; ?>">Zurück zur Liste</a><?php endif; ?> <?php endforeach; /* item loop */ ?> </div> <?php else: /* no items found */ ?><p class="info"><?php echo $this->noItemsMsg; ?></p> <?php endif; ?>