Dma elementgenerator: Unterschied zwischen den Versionen
Aus Contao Community Documentation
Carino (Diskussion | Beiträge) K (→Buch als Inhaltselement integrieren) |
Carino (Diskussion | Beiträge) (→Template anlegen) |
||
Zeile 58: | Zeile 58: | ||
<source lang="php"> | <source lang="php"> | ||
<div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?> | <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?> | ||
− | + | <?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <div> | + | |
− | + | <h1><?php echo $this->elements['titel']; ?></h1> | |
− | + | ||
− | + | ||
− | </div> | + | <div class="left"> |
− | + | <table> | |
+ | <tbody> | ||
+ | <tr><td class="first"><?php if ($this->elements['titel']): ?><?php echo $this->labels['titel']; ?>:</td><td class="last"><?php echo $this->elements['titel']; ?><?php endif; ?></td></tr> | ||
+ | <tr><td class="first"><?php if ($this->elements['autor']): ?><?php echo $this->labels['autor']; ?>:</td><td class="last"><?php echo $this->elements['autor']; ?><?php endif; ?></td></tr> | ||
+ | <tr><td class="first"><?php if ($this->elements['verlag']): ?><?php echo $this->labels['verlag']; ?>:</td><td class="last"><?php echo $this->elements['verlag']; ?><?php endif; ?></td></tr> | ||
+ | <tr><td class="first"><?php if ($this->elements['alter']): ?><?php echo $this->labels['alter']; ?>:</td><td class="last"><?php echo $this->elements['alter']; ?><?php endif; ?></td></tr> | ||
+ | <tr><td class="first"><?php if ($this->elements['form']): ?><?php echo $this->labels['form']; ?>:</td><td class="last"><?php echo $this->elements['form']; ?><?php endif; ?></td></tr> | ||
+ | </tbody> | ||
+ | </table> | ||
+ | </div> | ||
+ | |||
+ | <?php if ($this->elements['bild']): ?> | ||
+ | <div class="right"> | ||
+ | <!-- teaserstart --><div class="image_container"> | ||
+ | <img src="<?php echo $this->elements['bild']; ?>" alt="<?php echo $this->elements['name']; ?>" width="150" /> | ||
+ | |||
+ | <div class="caption"><?php if ($this->elements['titel']): ?><?php echo $this->elements['titel']; ?><?php endif; ?></div> | ||
+ | </div><!-- teaserend --></div></div> | ||
+ | <?php endif; ?> | ||
+ | |||
+ | <div class="twocol"><!-- teaserstart --> <?php if ($this->elements['beschreibung']): ?><?php echo nl2br($this->elements['beschreibung']); ?><?php endif; ?><!-- teaserend --></div> | ||
+ | </div> | ||
+ | |||
+ | |||
</source> | </source> | ||
<br /> | <br /> | ||
In dem Template wird das Bild in einer Breite von 150 Pixel ausgegeben, die Bildunterschrift gibt den Titel wieder. | In dem Template wird das Bild in einer Breite von 150 Pixel ausgegeben, die Bildunterschrift gibt den Titel wieder. | ||
<br /> | <br /> | ||
+ | |||
== Buch als Inhaltselement integrieren == | == Buch als Inhaltselement integrieren == | ||
Version vom 7. September 2010, 22:35 Uhr
Erweiterungs-Übersicht | |
---|---|
Name des Entwicklers | Carsten Kollmeier |
Entwickler Webseite | http://www.ckollmeier.de/ |
Version der Erweiterung | 0.0.1 beta2 |
Kompatibilität mit Contao Version | ab 2.9 |
Kompatibilität mit TYPOlight Version | 2.7.6 - 2.8.3 |
Link zum Extension Repository | http://www.contao.org/erweiterungsliste/view/dma_elementgenerator.14.de.html |
Der Elementgenerator bietet eine Möglichkeit, Daten in einem vorgegebenem Layout auszugeben.
Inhaltsverzeichnis
Beispiel / Tutorial
Element erstellen
Nach der erfolgreichen Installation wählt man zunächst den neuen Menüpunkt "Elementgenerator" unterhalb von Layout.
An dieser Stelle lassen sich Elemente erstellen, die völlig unabhängig voneinander strukturierte Inhalte ausgeben. Man klickt also auf die Schaltfläche "Neues Element" und füllt die Maske wie folgt aus:
Bezeichnung = Buch
Kategorie = Layouts
Template = dma_eg_default (temporär)
Als Inhaltselement bereitstellen auswählen
Die Bezeichnung dient nur der internen Verwaltung im Backend. Auch der Name der Kategorie ist frei wählbar und ordnet die Datensätze mit gleicher Bezeichnung innerhalb der Auswahl des Elementtyps im Bereich der Inhaltselemente. Das Template lässt man vorübergehend so, bis man später ein eigenes Template für den Datensatz erstellt.
Der Datensatz lässt sich selbstverständlich auch als Modul bereitstellen. Somit kann man diesen beispielsweise auch direkt im Seitenlayout verlinken.
Felder hinzufügen
Nun legt man die Felder an, die man ausgeben möchte. Die Auswahl ähnelt der von Formularen: Legende, Textfeld, Textarea, Auswahlliste, Checkboxen, Radiobuttons, Seitenauswahl, Dateiauswahl
Als nächstes legt man ein Textfeld an und füllt es folgendermaßen aus:
Beschriftung = Titel
Feldname = titel
Beschreibung = Bitte vergeben Sie für das Buch einen Titel
Danach ein Textarea mit diesen Daten:
Beschriftung = Beschreibung
Feldname = beschreibung
Beschreibung = Bitte beschreiben Sie das Buch
Zeilen = 5
Spalten = 100
Letzlich noch ein Feld "Dateiauswahl" zur Generierung eines Bildes:
Beschriftung = Bild
Feldname = bild
Beschreibung = Wählen Sie ein Bild aus
Vorgabe = (hier könnte man ein Default-Bild angeben)
Art der Auswahl = ft_radio
Pfad = Pfad/zum/Bild.jpg
Template anlegen
Nun liegt ein Datensatz vor mit drei Feldern, die man in einem Template abfragen möchte. Unter Layout/Templates leget man ein neues Template auf Basis des Originaltemplates "dma_eg_default.tpl" und weist diesem das jeweilige Zielverzeichnis zu. Nach dem Speichern kann über "bearbeiten" der Name geändert werden (z.B. in dma_eg_buchvorstellung.tpl) und natürlich muss man dieses neue Template unter "Elementgenerator/Buch" gegen das Standardtemplate ersetzen.
<div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?> <?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>> <h1><?php echo $this->elements['titel']; ?></h1> <div class="left"> <table> <tbody> <tr><td class="first"><?php if ($this->elements['titel']): ?><?php echo $this->labels['titel']; ?>:</td><td class="last"><?php echo $this->elements['titel']; ?><?php endif; ?></td></tr> <tr><td class="first"><?php if ($this->elements['autor']): ?><?php echo $this->labels['autor']; ?>:</td><td class="last"><?php echo $this->elements['autor']; ?><?php endif; ?></td></tr> <tr><td class="first"><?php if ($this->elements['verlag']): ?><?php echo $this->labels['verlag']; ?>:</td><td class="last"><?php echo $this->elements['verlag']; ?><?php endif; ?></td></tr> <tr><td class="first"><?php if ($this->elements['alter']): ?><?php echo $this->labels['alter']; ?>:</td><td class="last"><?php echo $this->elements['alter']; ?><?php endif; ?></td></tr> <tr><td class="first"><?php if ($this->elements['form']): ?><?php echo $this->labels['form']; ?>:</td><td class="last"><?php echo $this->elements['form']; ?><?php endif; ?></td></tr> </tbody> </table> </div> <?php if ($this->elements['bild']): ?> <div class="right"> <!-- teaserstart --><div class="image_container"> <img src="<?php echo $this->elements['bild']; ?>" alt="<?php echo $this->elements['name']; ?>" width="150" /> <div class="caption"><?php if ($this->elements['titel']): ?><?php echo $this->elements['titel']; ?><?php endif; ?></div> </div><!-- teaserend --></div></div> <?php endif; ?> <div class="twocol"><!-- teaserstart --> <?php if ($this->elements['beschreibung']): ?><?php echo nl2br($this->elements['beschreibung']); ?><?php endif; ?><!-- teaserend --></div> </div>
In dem Template wird das Bild in einer Breite von 150 Pixel ausgegeben, die Bildunterschrift gibt den Titel wieder.
Buch als Inhaltselement integrieren
In der Artikelstruktur lässt sich nun dieses Inhaltelement "Buch" wie jeder andere Elementtyp dem Artikel hinzufügen. Wählt man diese nun aus, findet man die drei Felder vor, die nun auszufüllen sind und kann den Datensatz nun Speichern und betrachten.
--Carino 21:00, 07. Sept. 2010 (UTC)