Inhaltselement "Aufzählung" mit "Textarea" statt "Textfeld" für die Listeneinträge
Aus Contao Community Documentation
betrifft | |
---|---|
Contao Version | ab 2.9 |
Inhaltsverzeichnis
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;') ) );
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: Das Template nicht direkt ändern sondern immer updatesicher durch kopieren in den Ordern templates. |
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:
Ausgabe der Liste im Frontend:
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.