Inhaltselement "Aufzählung" mit "Textarea" statt "Textfeld" für die Listeneinträge: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Die Seite wurde neu angelegt: „Category:Admin HOWTOS Category:Dev HOWTOS Category:Dev Snippets {{AppliesTo |Version=ab 2.9 }} ==Einleitung== Basierend auf dieser Anforderung aus d…“)
 
(kein Unterschied)

Aktuelle Version vom 9. März 2012, 13:46 Uhr


betrifft
Contao Version ab 2.9


Einleitung

Basierend auf dieser Anforderung aus dem Forum: "TextAreas" im Backend für Inhaltselement "Aufzählung" gibt es hier eine Anleitung wie Felder für die Listeneinträge angepasst werden können.

Voraussetzung

Es wird davon ausgegangen dass die Erweiterung [MultiColumnWizard] installiert ist. Details dazu findet man im Wiki unter MultiColumnWizard.

Anpassungen

Zur Änderung der DCA Definition folgenden Eintrag in system/config/dcaconfig.php:

# Change inputtype of CE listing from text to textarea
$GLOBALS['TL_DCA']['tl_content']['fields']['listitems']['inputType'] = 'multiColumnWizard';
$GLOBALS['TL_DCA']['tl_content']['fields']['listitems']['eval']['style'] = 'width: 100%;';
$GLOBALS['TL_DCA']['tl_content']['fields']['listitems']['eval']['mandatory'] = true;
$GLOBALS['TL_DCA']['tl_content']['fields']['listitems']['eval']['columnFields'] = array
          (
             'item' => array
             (
              'label' => &$GLOBALS['TL_LANG']['tl_content']['listitems'],
              'exclude' => true,
              'inputType' => 'textarea',
              'eval' => array('mandatory' => true, 'preserveTags' => true, 'style' => 'width: 100%; height: 50px;')
             )
          );
Anmerkung.png Anmerkung: Mittels dieser Definition wird das Kindwidget item bereitgestellt, um die Listeneinträge aufzunehmen.

Das Attribut preserveTags im Eval-Array des Kindwidgets wird benötigt, um HTML im Listeneintrag verwenden zu können.

Die Höhe des Textarea kann mittels height im Eval-Array des Kindwidgets geändert werden.


Anpassung des Templates ce_list für korrekte FE Ausgaben in Zeile 10:

<li<?php if ($item['class']): ?> class="<?php echo $item['class']; ?>"<?php endif; ?>><?php echo $item['content']['item']; ?></li>
Achtung.png Achtung: Das Template nicht direkt ändern sondern immer updatesicher durch kopieren in den Ordern templates.
Hinweis.png Hinweis: Statt echo $item['content'] muss echo $item['content']['item'] verwendet werden.
Anmerkung.png Anmerkung: Ab Contao 2.10.x müssen sind ggf. beide Templates (ce_list.html5 und ce_list.xhtml) zu anzupassen.


Beispiel

Definition einer Auflistung im Backend:

Screenshot der Definition im Backend

Ausgabe der Liste im Frontend:

Screenshot der Ausgabe im Frontend

Ansichten
Meine Werkzeuge

Contao Community Documentation

Fork die Wand an!

Tristan Lins
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge