MetaModels Beispiel: FE-Template anpassen: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Debug der Items im HTML-Quelltext)
 
Zeile 5: Zeile 5:
 
Voraussetzung: das oder die MetaModels sind angelegt, mit einigen (Test-) Daten gefüllt und über das Content-Element "MetaModel-Liste" werden die Daten (Attribute) im Frontend (FE) ausgegeben.
 
Voraussetzung: das oder die MetaModels sind angelegt, mit einigen (Test-) Daten gefüllt und über das Content-Element "MetaModel-Liste" werden die Daten (Attribute) im Frontend (FE) ausgegeben.
  
1. Wo finde ich das Template?
+
== 1. Wo finde ich das Template? ==
  
 
In dem Content-Element "MetaModel-Liste" kann ein FE unter " MetaModel-Rendering" ausgewählt werden (ce_metamodel_list). An der Stelle hat man Zugriff auf die Überschrift und Paginierung der Liste - um die Ausgabe der Items zu beeinflussen, muss man einen Schritt "vorher einsteigen".
 
In dem Content-Element "MetaModel-Liste" kann ein FE unter " MetaModel-Rendering" ausgewählt werden (ce_metamodel_list). An der Stelle hat man Zugriff auf die Überschrift und Paginierung der Liste - um die Ausgabe der Items zu beeinflussen, muss man einen Schritt "vorher einsteigen".
Zeile 16: Zeile 16:
  
  
2. Wie sehe ich, was alles an Attributen zur Verfügung steht?
+
== 2. Wie sehe ich, was alles an Attributen zur Verfügung steht? ==
  
 
Für das "Debugging" der Listenausgabe gibt es verschiedene Möglichkeiten - eine einfache Methode ist eine "Echo-Ausgabe" in den HTML-Quelltext. Dazu gehen wir zu den Templates und öffenen das neu angelegte Template "metamodel_pr_spezialliste".
 
Für das "Debugging" der Listenausgabe gibt es verschiedene Möglichkeiten - eine einfache Methode ist eine "Echo-Ausgabe" in den HTML-Quelltext. Dazu gehen wir zu den Templates und öffenen das neu angelegte Template "metamodel_pr_spezialliste".
Zeile 22: Zeile 22:
 
In den Quelltext fügen wir ein "print_r" ein (Zeile 6 bis 10):
 
In den Quelltext fügen wir ein "print_r" ein (Zeile 6 bis 10):
  
[code]
+
<source lang="php">
 
<?php $strRendersettings = isset($this->settings)? 'settings' : 'view'; ?>
 
<?php $strRendersettings = isset($this->settings)? 'settings' : 'view'; ?>
 
<?php if (count($this->data)): ?>
 
<?php if (count($this->data)): ?>
Zeile 39: Zeile 39:
 
<?php foreach ($arrItem['attributes'] as $field => $strName): ?>
 
<?php foreach ($arrItem['attributes'] as $field => $strName): ?>
 
...
 
...
[/code]
+
</source>
  
 
Anschließend kann die Seite in der FE-Ausgabe neu geladen werden und im HTML-Quelltext (Shortcut FF und IE: Strg-u) das Array analysiert werden.
 
Anschließend kann die Seite in der FE-Ausgabe neu geladen werden und im HTML-Quelltext (Shortcut FF und IE: Strg-u) das Array analysiert werden.
  
Für Fragen im Forum kann die Ausgabe - oder Teile davon - gepostet werden oder man stellt einen Link zur Testseite zur Verfügung mit dem Hinweis, auf die Quelltext-Ausgabe.
+
Für Fragen im [https://community.contao.org/de/forumdisplay.php?149-MetaModels Forum] kann die Ausgabe - oder Teile davon - gepostet werden oder man stellt einen Link zur Testseite zur Verfügung mit dem Hinweis, auf die Quelltext-Ausgabe.

Version vom 2. Dezember 2014, 10:02 Uhr

MetaModels (MM) bringt für die Ausgabe einer Liste ein Standard-Template mit. Mit diesem Template lassen sich alle Attribute ausgeben und prüfen. Für viele Anwendungen wird man das Template aber anpassen müssen z.B. um die HTML-Struktur umzubauen, Attribute doppelt auszugeben, bestimte Formatierungen vorzunehmen, Daten aus weiteren MetaModels zu beziehen u.v.a.m.

Im Folgenden sollen eine Tipps den Einstieg in die Bearbeitung des Templates erleichtern.

Voraussetzung: das oder die MetaModels sind angelegt, mit einigen (Test-) Daten gefüllt und über das Content-Element "MetaModel-Liste" werden die Daten (Attribute) im Frontend (FE) ausgegeben.

1. Wo finde ich das Template?

In dem Content-Element "MetaModel-Liste" kann ein FE unter " MetaModel-Rendering" ausgewählt werden (ce_metamodel_list). An der Stelle hat man Zugriff auf die Überschrift und Paginierung der Liste - um die Ausgabe der Items zu beeinflussen, muss man einen Schritt "vorher einsteigen".

In den MetaModels-Einstellungen > Rendereinstellungen des MM > Eigenschaften (Stift) der FE-Liste kann in den "Grundeinstellungen" ein eigenes Template ausgewählt werden (metamodel_prerendered). Um ein eigens Template anzulegen, wechseln wir zu Layout > Template und legen eine Kopie von "metamodel_prerendered" an. Der Dateiname kann individuell angepasst werden - starten muss der Dateiname mit "metamodel_". Zum Beispiel kann die Datei als "metamodel_pr_spezialliste" bezeichnet werden.

Anschließend muss das erstellte Template wieder in den MetaModels-Einstellungen > Rendereinstellungen des MM > Eigenschaften (Stift) der FE-Liste > Grundeinstellungen ausgewählt werden.

Damit ist die Vorbereitung in diesem Punkt abgeschlossen und das Template kann an die individuellen Wünsche angepasst werden.


2. Wie sehe ich, was alles an Attributen zur Verfügung steht?

Für das "Debugging" der Listenausgabe gibt es verschiedene Möglichkeiten - eine einfache Methode ist eine "Echo-Ausgabe" in den HTML-Quelltext. Dazu gehen wir zu den Templates und öffenen das neu angelegte Template "metamodel_pr_spezialliste".

In den Quelltext fügen wir ein "print_r" ein (Zeile 6 bis 10):

<?php $strRendersettings = isset($this->settings)? 'settings' : 'view'; ?>
<?php if (count($this->data)): ?>
 
<div class="layout_full">
 
<?php 
echo "<!-- \n";
print_r($this->items->parseAll($this->getFormat(), $this->view)); 
echo "\n -->";
?>
 
<?php foreach ($this->data as $arrItem): ?>
<div class="item <?php echo $arrItem['class']; ?>">
 
<?php foreach ($arrItem['attributes'] as $field => $strName): ?>
...

Anschließend kann die Seite in der FE-Ausgabe neu geladen werden und im HTML-Quelltext (Shortcut FF und IE: Strg-u) das Array analysiert werden.

Für Fragen im Forum kann die Ausgabe - oder Teile davon - gepostet werden oder man stellt einen Link zur Testseite zur Verfügung mit dem Hinweis, auf die Quelltext-Ausgabe.

Ansichten
Meine Werkzeuge

Contao Community Documentation

<TheTril> Stateless Template, Stateless Elements, Stateless Renderer :)
<TheTril> everything is stateles :D
<leo-unglaub> TheTril: genau wie Ed Snowden *g*

Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge