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

<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