Inhaltselement "Aufzählung" mit "Textarea" statt "Textfeld" für die Listeneinträge

Aus Contao Community Documentation


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

Ich brauch nen Bier, es ist zwar noch nicht nach 4, aber es ist nach Oli.

Yanick Witschi
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge