[1333 Aufrufe]

3.6 Abschnitt: Fields > eval

In diesem Abschnitt sehen wir uns die Einstellungen zur Ausgabe und der Verarbeitung der Felder genauer an. Ich werde nicht alle Möglichkeiten besprechen, da einige sehr speziell sind und selten benötigt werden. Auch Einstellungen, die es bald nicht mehr gibt, werde ich nicht besprechen, da es keinen Sinn macht, sie jetzt noch zu zeigen.

Hier eine verkürtze Übersicht über das DCA:

<?php

$GLOBALS['TL_DCA']['tl_testtable'] = [
    // Config ...
    // List ...
    // Palettes ...
    // Subpalettes ...
    'fields' => [
        'title' => [
            'exclude'   => true,
            'inputType' => 'text',
            'eval'      => [], // Hier werden die Einstellungen eingefügt!
            'sql'       => "varchar(255) NOT NULL default ''"
        ],
        // ... weitere Felder
    ]
];

Einstellung: allowHtml

Variablentyp: bool
Beispiel: true

Wird allowHtml auf true gesetzt, können die in den Einstellungen unter "Erlaubte HTML-Tags" hinterlegte Elemente verwendet werden und werden nicht herausgefiltert.

Diese Einstellung funktioniert nur mit Feldern vom Typ text und textarea.

Beispiel: tl_content.php#L327

'html' => [
    'exclude'       => true,
    'search'        => true,
    'inputType'     => 'textarea',
    'eval'          => ['allowHtml'=>true, 'class'=>'monospace', 'rte'=>'ace|html', 'helpwizard'=>true],
    'explanation'   => 'insertTags',
    'sql'           => "mediumtext NULL"
]

Einstellung: alwaysSave

Variablentyp: bool
Beispiel: true

Normalerweise werden Werte in Contao nur gespeichert, wenn sie sich geändert haben. Wird alwaysSave auf true gesetzt, wird das entsprechende Feld immer gespeichert, auch wenn es keine Änderung gab. Dies kann nützlich sein, wenn die Werte über einen Callback verändert werden.

Beispiel: tl_module.php#L591

'reg_text' => [
    'exclude'       => true,
    'inputType'     => 'textarea',
    'eval'          => ['style'=>'height:120px', 'decodeEntities'=>true, 'alwaysSave'=>true],
    'load_callback' => [['tl_module', 'getActivationDefault']],
    'sql'           => "text NULL"
]

Einstellung: blankOptionLabel

Variablentyp: string
Beispiel: -

Mit dieser Einstellung wird das Label für die leere Option in Auswahlfeldern gesetzt. Der Vorgabewert ist -. Die Einstellung muss nur gesetzt werden, wenn man diesen Wert ändern möchte. Damit die leere Option angezeigt wird, muss die Einstellung includeBlankOption auf true gesetzt werden.

Diese Einstellung funktioniert nur mit Feldern vom Typ select.

Beispiel: tl_page.php#L556

'subpageLayout' => [
    'exclude'       => true,
    'search'        => true,
    'inputType'     => 'select',
    'foreignKey'    => 'tl_layout.name',
    'eval'          => ['chosen'=>true, 'tl_class'=>'w50', 'includeBlankOption'=>true, 'blankOptionLabel'=>&$GLOBALS['TL_LANG']['tl_page']['layout_inherit']],
    'sql'           => "int(10) unsigned NOT NULL default 0",
    'relation'      => ['type'=>'hasOne', 'load'=>'lazy']
]

Einstellung: chosen

Variablentyp: bool
Beispiel: true

Mit chosen wird in einem Auswahlfeld eine Suche eingeblendet, sodass der gewünschte Wert auch bei einer großen Auswahl schnell gefunden werden kann.

Diese Einstellung funktioniert nur mit Feldern vom Typ select.

Beispiel: tl_page.php#L547

'subpageLayout' => [
    'exclude'       => true,
    'search'        => true,
    'inputType'     => 'select',
    'foreignKey'    => 'tl_layout.name',
    'eval'          => ['chosen'=>true, 'tl_class'=>'w50', 'includeBlankOption'=>true, 'blankOptionLabel'=>&$GLOBALS['TL_LANG']['tl_page']['layout_inherit']],
    'sql'           => "int(10) unsigned NOT NULL default 0",
    'relation'      => ['type'=>'hasOne', 'load'=>'lazy']
]

Einstellung: collapseUncheckedGroups

Variablentyp: bool
Beispiel: true

Wird collapseUncheckedGroups auf true gesetzt, werden Optiongroups zusammengeklappt, wenn in ihnen nicht mindestens eine Option ausgewählt ist. Die erste Gruppe wird allerdings nicht geschlossen.

Diese Einstellung funktioniert nur mit Feldern vom Typ checkbox, die Optionsgruppen enthalten.

Diese Einstellung ist ab Contao 4.13 verfügbar.

Beispiel: tl_user.php#L292

'elements' => [
    'exclude'           => true,
    'inputType'         => 'checkbox',
    'options_callback'  => ['tl_user', 'getContentElements'],
    'reference'         => &$GLOBALS['TL_LANG']['CTE'],
    'eval'              => ['multiple'=>true, 'helpwizard'=>true, 'collapseUncheckedGroups'=>true],
    'sql'               => "blob NULL"
]

Einstellung: colorpicker

Variablentyp: bool
Beispiel: true

Die Einstellung colorpicker sorgt dafür, dass der Farbwähler hinter dem Eingabefeld angezeigt wird.

Diese Einstellung wird in der Regel mit Feldern vom Typ text verwendet.

Beispiel: tl_content.php#L642

'playerColor' => [
    'exclude'   => true,
    'search'    => true,
    'inputType' => 'text',
    'eval'      => ['maxlength'=>6, 'colorpicker'=>true, 'isHexColor'=>true, 'decodeEntities'=>true, 'tl_class'=>'w50 wizard'],
    'sql'       => "varchar(6) COLLATE ascii_bin NOT NULL default ''"
]

Einstellung: cols

Variablentyp: integer
Beispiel: 3

Mit cols kann die Anzahl der Spalten bei bestimmten Eingabefeldern festgelegt werden.

Diese Einstellung funktioniert nur mit Feldern vom Typ textarea, radioTable und tableWizard.

Beispiel: tl_content.php#L290

'floating' => [
    'exclude'   => true,
    'inputType' => 'radioTable',
    'options'   => ['above', 'left', 'right', 'below'],
    'eval'      => ['cols'=>4, 'tl_class'=>'w50'],
    'reference' => &$GLOBALS['TL_LANG']['MSC'],
    'sql'       => "varchar(32) COLLATE ascii_bin NOT NULL default 'above'"
]

Einstellung: datepicker

Variablentyp: bool
Beispiel: true

Mit datepicker wird ein Wizard für die Auswahl eines Datums hinter dem Eingabefeld eingeblendet.

Diese Einstellung wird in der Regel mit Feldern vom Typ text verwendet.

Beispiel: tl_content.php#L779

'start' => [
    'exclude'   => true,
    'inputType' => 'text',
    'eval'      => ['rgxp'=>'datim', 'datepicker'=>true, 'tl_class'=>'w50 wizard'],
    'sql'       => "varchar(10) COLLATE ascii_bin NOT NULL default ''"
]

Einstellung: dcaPicker

Variablentyp: bool
Beispiel: true

Mit der Einstellung dcaPicker wird ein Picker angezeigt, mit dem Seiten, Dateien oder ähnliches auswählt werden können. Ein Beispiel für diesen Wizard ist das Inhaltselement Hyperlink.

Diese Einstellung wird in der Regel mit Feldern vom Typ text verwendet.

Beispiel: tl_content.php#L270

'imageUrl' => [
    'exclude'   => true,
    'search'    => true,
    'inputType' => 'text',
    'eval'      => ['rgxp'=>'url', 'decodeEntities'=>true, 'maxlength'=>2048, 'dcaPicker'=>true, 'tl_class'=>'w50'],
    'sql'       => "text NULL"
]

Einstellung: decodeEntities

Variablentyp: bool
Beispiel: true

Wird decodeEntities auf true gesetzt, werden HTML-Entites kodiert.

Diese Einstellung wird in der Regel mit Feldern vom Typ text, textarea usw. verwendet.

Beispiel: tl_module.php#L492

'reg_text' => [
    'exclude'       => true,
    'inputType'     => 'textarea',
    'eval'          => ['style'=>'height:120px', 'decodeEntities'=>true, 'alwaysSave'=>true],
    'load_callback' => [['tl_module', 'getActivationDefault']],
    'sql'           => "text NULL"
]

Einstellung: disabled

Variablentyp: bool
Beispiel: true

Wird disabled auf true gesetzt, wird das Feld für Eingaben gesperrt. Dies kann sinnvoll sein, wenn Werte zwar angezeigt, aber nicht geändert werden sollen.

Beispiel: (Leider ist im Contao Core kein Beispiel vorhanden.)

'donotchange' => [
    'exclude'   => true,
    'inputType' => 'text',
    'eval'      => ['disabled'=>true],
    'sql'       => "varchar(255) NOT NULL default ''"
]

Einstellung: doNotCopy

Variablentyp: bool
Beispiel: true

Ist doNotCopy auf true gesetzt, wird der Wert aus diesem Feld beim Kopieren des Datensatzes, nicht mit kopiert.

Beispiel: tl_article.php#L281

'published' => [
    'exclude'   => true,
    'toggle'    => true,
    'filter'    => true,
    'inputType' => 'checkbox',
    'eval'      => ['doNotCopy'=>true],
    'sql'       => "char(1) NOT NULL default ''"
]

Einstellung: doNotSaveEmpty

Variablentyp: bool
Beispiel: true

Ist doNotSaveEmpty auf true gesetzt, wird das Feld nicht gespeichert, wenn es leer ist.

Beispiel: tl_content.php#L331

'tableitems' => [
    'exclude'   => true,
    'inputType' => 'tableWizard',
    'eval'      => ['multiple'=>true, 'allowHtml'=>true, 'doNotSaveEmpty'=>true, 'style'=>'width:142px;height:66px'],
    'xlabel'    => [['tl_content', 'tableImportWizard']],
    'sql'       => "mediumblob NULL"
]

Einstellung: doNotShow

Variablentyp: bool
Beispiel: true

Wird doNotShow auf true gesetzt, wird das entsprechende Feld in den Details und der "Mehrer bearbeiten"-Ansicht nicht angezeigt.

Beispiel: tl_member.php#L338

'secret' => [
    'eval'  => ['doNotShow'=>true, 'doNotCopy'=>true],
    'sql'   => "binary(128) NULL default NULL"
]

Einstellung: doNotTrim

Variablentyp: bool
Beispiel: true

Wird doNotTrim auf true gesetzt, werden Leerzeichen am Anfang oder Ende beim Speichern nicht entfernt.

Diese Einstellung wird in der Regel mit Feldern vom Typ text, textarea, usw. verwendet.

Beispiel: (Leider ist im Contao Core kein Beispiel vorhanden.)

'donottrim' => [
    'exclude'   => true,
    'inputType' => 'text',
    'eval'      => ['doNotTrim'=>true],
    'sql'       => "varchar(255) NOT NULL default ''"
]

Einstellung: extensions

Variablentyp: string
Beispiel: jpg,png,gif

Hier werden die Dateiendungen angegeben und so festgelegt, welche Art von Dateien zur Auswahl angeboten werden.

Diese Einstellung funktioniert nur mit Feldern vom Typ fileTree.

Beispiel: tl_layout.php#L180

'external' => [
    'exclude'   => true,
    'inputType' => 'fileTree',
    'eval'      => ['multiple'=>true, 'fieldType'=>'checkbox', 'filesOnly'=>true, 'extensions'=>'css,scss,less', 'isSortable'=>true],
    'sql'       => "blob NULL"
]

Einstellung: fallback

Variablentyp: bool
Beispiel: true

Mit fallback gekennzeichnete Felder, können nur einmal pro Tabelle gesetzt werden.

Beispiel: (Leider ist im Contao Core kein brauchbares Beispiel vorhanden.)

'fallback' => [
    'exclude'   => true,
    'inputType' => 'checkbox',
    'eval'      => ['fallback'=>true],
    'sql'       => "char(1) NOT NULL default ''"
]

Einstellung: feEditable

Variablentyp: bool
Beispiel: true

Mit feEditable kann angegeben werden, dass ein Feld im Frontend im Modul "Personendaten" bearbeitet werden kann.

Wird nur in der Tabelle tl_member verwendet!

Beispiel: tl_member.php#L121

'firstname' => [
    'exclude'                 => true,
    'search'                  => true,
    'sorting'                 => true,
    'flag'                    => DataContainer::SORT_INITIAL_LETTER_ASC,
    'inputType'               => 'text',
    'eval'                    => ['mandatory'=>true, 'maxlength'=>255, 'feEditable'=>true, 'feViewable'=>true, 'feGroup'=>'personal', 'tl_class'=>'w50'],
    'sql'                     => "varchar(255) NOT NULL default ''"
]

Einstellung: feGroup

Variablentyp: string
Beispiel: personal

Mit feGroup kann angegeben werden, in welcher Gruppe ein Feld im Frontend im Modul "Personendaten" bearbeitet werden kann.

Wird nur in der Tabelle tl_member verwendet!

Beispiel: tl_member.php#L121

'firstname' => [
    'exclude'                 => true,
    'search'                  => true,
    'sorting'                 => true,
    'flag'                    => DataContainer::SORT_INITIAL_LETTER_ASC,
    'inputType'               => 'text',
    'eval'                    => ['mandatory'=>true, 'maxlength'=>255, 'feEditable'=>true, 'feViewable'=>true, 'feGroup'=>'personal', 'tl_class'=>'w50'],
    'sql'                     => "varchar(255) NOT NULL default ''"
]

Einstellung: feViewable

Variablentyp: bool
Beispiel: true

Mit feViewable kann angegeben werden, dass ein Feld im Frontend angezeigt werden soll.

Wird nur in der Tabelle tl_member verwendet!

Beispiel: tl_member.php#L121

'firstname' => [
    'exclude'                 => true,
    'search'                  => true,
    'sorting'                 => true,
    'flag'                    => DataContainer::SORT_INITIAL_LETTER_ASC,
    'inputType'               => 'text',
    'eval'                    => ['mandatory'=>true, 'maxlength'=>255, 'feEditable'=>true, 'feViewable'=>true, 'feGroup'=>'personal', 'tl_class'=>'w50'],
    'sql'                     => "varchar(255) NOT NULL default ''"
]

Einstellung: fieldType

Variablentyp: string [checkbox|radio]
Beispiel: checkbox

Mit fieldType gibt man an, ob nur ein Element (radio), oder mehrere (checkbox) ausgewählt werden können.

Diese Einstellung funktioniert nur mit Feldern vom Typ fileTree und pageTree.

Beispiel: tl_form.php#L163

'jumpTo' => [
    'exclude'       => true,
    'inputType'     => 'pageTree',
    'foreignKey'    => 'tl_page.title',
    'eval'          => ['fieldType'=>'radio', 'tl_class'=>'clr'],
    'sql'           => "int(10) unsigned NOT NULL default 0",
    'relation'      => ['type'=>'hasOne', 'load'=>'lazy']
]

Einstellung: files

Variablentyp: bool
Beispiel: true

Wird files auf true gesetzt, werden im Dateibaum Dateien angezeigt, bei false nur Verzeichnisse.

Diese Einstellung funktioniert nur mit Feldern vom Typ fileTree.

Beispiel: tl_content.php#L613

'playerSRC' => [
    'exclude'   => true,
    'inputType' => 'fileTree',
    'eval'      => ['multiple'=>true, 'fieldType'=>'checkbox', 'files'=>true, 'mandatory'=>true],
    'sql'       => "blob NULL"
]

Einstellung: filesOnly

Variablentyp: bool
Beispiel: true

Wird filesOnly auf true gesetzt, sind im Dateibaum nur Dateien auswählbar. Verzeichnisse können nicht gewählt werden.

Diese Einstellung funktioniert nur mit Feldern vom Typ fileTree.

Beispiel: tl_form_field.php#L436

'singleSRC' => [
    'exclude'   => true,
    'inputType' => 'fileTree',
    'eval'      => ['fieldType'=>'radio', 'filesOnly'=>true, 'mandatory'=>true, 'tl_class'=>'clr'],
    'sql'       => "binary(16) NULL"
]

Einstellung: helpwizard

Variablentyp: bool
Beispiel: true

Wird helpwizard auf ture gesetzt, wird hinter dem Label das kleine rote Dreieck für den HelpWizard angezeigt.

Beispiel: tl_content.php#L327

'html' => [
    'exclude'       => true,
    'search'        => true,
    'inputType'     => 'textarea',
    'eval'          => ['allowHtml'=>true, 'class'=>'monospace', 'rte'=>'ace|html', 'helpwizard'=>true],
    'explanation'   => 'insertTags',
    'sql'           => "mediumtext NULL"
]

Einstellung: hideInput

Variablentyp: bool
Beispiel: true

Wird hideInput auf true gesetzt, wird die Eingabe im Backend nicht angezeigt.

Es ist zu beachten, dass der Wert im Quelltext der Seite nach wie vor sichtbar ist.

Diese Einstellung wird in der Regel mit Feldern vom Typ text verwendet.

Beispiel: (Leider ist im Contao Core kein Beispiel vorhanden.)

'secret' => [
    'exclude'   => true,
    'inputType' => 'text',
    'eval'      => ['hideInput'=>true],
    'sql'       => "varchar(255) NOT NULL default ''"
]

Einstellung: includeBlankOption

Variablentyp: bool
Beispiel: true

Mit includeBlankOption wird eine Leeroption in ein Auswahlfeld eingefügt. Mit der Eigenschaft blankOptionLabel (s. o.) kann das Label der Leeroption festgelegt werden.

Diese Einstellung wird funktioniert nur mit Feldern vom Typ select.

Beispiel: tl_page.php#L556

'subpageLayout' => [
    'exclude'       => true,
    'search'        => true,
    'inputType'     => 'select',
    'foreignKey'    => 'tl_layout.name',
    'eval'          => ['chosen'=>true, 'tl_class'=>'w50', 'includeBlankOption'=>true, 'blankOptionLabel'=>&$GLOBALS['TL_LANG']['tl_page']['layout_inherit']],
    'sql'           => "int(10) unsigned NOT NULL default 0",
    'relation'      => ['type'=>'hasOne', 'load'=>'lazy']
]

Einstellung: isGallery

Variablentyp: bool
Beispiel: true

Mit isGallery wird der Galeriemodus eingeschaltet, d. h. Bilder können manuell sortiert werden und die Ansicht ändert sich.

Diese Einstellung funktioniert nur mit Feldern vom Typ fileTree.

Beispiel: tl_theme.php#L193

'screenshot' => [
    'exclude'   => true,
    'inputType' => 'fileTree',
    'eval'      => ['fieldType'=>'radio', 'filesOnly'=>true, 'isGallery'=>true, 'extensions'=>'%contao.image.valid_extensions%'],
    'sql'       => "binary(16) NULL"
]

Einstellung: isSortable

Variablentyp: bool
Beispiel: true

Mit isSortable werden die Einträge des Felds als sortierbar gekennzeichnet.

Diese Einstellung wird in der Regel mit Feldern vom Typ fileTree verwendet.

Diese Einstellung ist ab Contao 4.10 nutzbar.

Beispiel: tl_layout.php#L396

'externalJs' => [
    'exclude'   => true,
    'inputType' => 'fileTree',
    'eval'      => ['multiple'=>true, 'fieldType'=>'checkbox', 'filesOnly'=>true, 'extensions'=>'js', 'isSortable'=>true],
    'sql'       => "blob NULL"
]

Einstellung: mandatory

Variablentyp: bool
Beispiel: true

Aus meiner Sicht ist manatory eine der meist genutzen Einstellungen. Mit ihr legt man fest, das ein Feld ein Pflichtfeld ist.

Beispiel: tl_member.php#L121

'firstname' => [
    'exclude'                 => true,
    'search'                  => true,
    'sorting'                 => true,
    'flag'                    => DataContainer::SORT_INITIAL_LETTER_ASC,
    'inputType'               => 'text',
    'eval'                    => ['mandatory'=>true, 'maxlength'=>255, 'feEditable'=>true, 'feViewable'=>true, 'feGroup'=>'personal', 'tl_class'=>'w50'],
    'sql'                     => "varchar(255) NOT NULL default ''"
]

Einstellung: maxlength

Variablentyp: integer
Beispiel: 255

Mit maxlength legt man die maximale Anzahl an Zeichen fest, die in ein Feld eingegeben werden dürfen. Bei "normalen" Textfeldern ist dies häufig 255, bei Zahlen wie Zeitstemplen oder Ids oft 10.

Diese Einstellung wird in der Regel mit Feldern vom Typ text verwendet.

Beispiel: tl_content.php#L642

'playerColor' => [
    'exclude'   => true,
    'search'    => true,
    'inputType' => 'text',
    'eval'      => ['maxlength'=>6, 'colorpicker'=>true, 'isHexColor'=>true, 'decodeEntities'=>true, 'tl_class'=>'w50 wizard'],
    'sql'       => "varchar(6) COLLATE ascii_bin NOT NULL default ''"
]

Einstellung: maxval

Variablentyp: integer
Beispiel: 120

Mit maxval wird der obere Grenzwert festgelegt.

Diese Einstellung wird in der Regel mit Feldern vom Typ text verwendet.

Beispiel: (Leider ist im Contao Core kein Beispiel vorhanden.)

'percent' => [
    'exclude'   => true,
    'inputType' => 'text',
    'eval'      => ['maxval'=>100, 'rgxp'=>'natural'],
    'sql'       => "int(3) NOT NULL default '0'"
]

Einstellung: minlength

Variablentyp: integer
Beispiel: 4

Mit minlength legt man die minimale Anzahl an Zeichen fest, die in ein Feld eingegeben werden müssen.

Diese Einstellung wird in der Regel mit Feldern vom Typ text verwendet.

Beispiel: tl_user.php#L248

'password' => [
    'exclude'   => true,
    'inputType' => 'password',
    'eval'      => ['mandatory'=>true, 'preserveTags'=>true, 'minlength'=>Config::get('minPasswordLength'), 'tl_class'=>'w50'],
    'sql'       => "varchar(255) NOT NULL default ''"
]

Einstellung: minval

Variablentyp: integer
Beispiel: 88

Mit minval wird der untere Grenzwert festgelegt, also der kleinste Wert der eingegeben werden darf.

Diese Einstellung wird in der Regel mit Feldern vom Typ text verwendet.

Beispiel: tl_settings.php#L70

'resultsPerPage' => []
    'inputType' => 'text',
    'eval'      => array('mandatory'=>true, 'rgxp'=>'natural', 'minval'=>1, 'nospace'=>true, 'tl_class'=>'w50 clr')
}

Einstellung: multiple

Variablentyp: bool
Beispiel: true

Wird multiple auf true gesetzt, können in diem Feld mehrere Einträge ausgewählt werden.

Diese Einstellung kann mit Feldern vom Typ text, select, radio und checkbox verwendet werden. Bei checkboxWizard ist sie Pflicht.

Beispiel: tl_user.php#L292

'elements' => [
    'exclude'           => true,
    'inputType'         => 'checkbox',
    'options_callback'  => ['tl_user', 'getContentElements'],
    'reference'         => &$GLOBALS['TL_LANG']['CTE'],
    'eval'              => ['multiple'=>true, 'helpwizard'=>true, 'collapseUncheckedGroups'=>true],
    'sql'               => "blob NULL"
]

Einstellung: nospace

Variablentyp: bool
Beispiel: true

Wird nospace auf true gesetzt, dürfen in den eingegebenen Werten kein Leerzeichen enthalten sein.

Diese Einstellung wird in der Regel mit Feldern vom Typ text verwendet.

Beispiel: tl_settings.php#L70

'resultsPerPage' => []
    'inputType' => 'text',
    'eval'      => array('mandatory'=>true, 'rgxp'=>'natural', 'minval'=>1, 'nospace'=>true, 'tl_class'=>'w50 clr')
}

Einstellung: orderField

Variablentyp: string
Beispiel: myorderfield

Mit orderField wird das Feld angegeben, in dem die Sortierung von Dateien gespeichert wird. Das Feld für die Sortiung muss ebenfalls angelegt werden. Im Beispiel ist dies das Feld orderSRC.

Diese Einstellung funktioniert nur mit Feldern vom Typ fileTree.

Beispiel: tl_content.php#L533

'multiSRC' => [
    'exclude'       => true,
    'inputType'     => 'fileTree',
    'eval'          => ['multiple'=>true, 'fieldType'=>'checkbox', 'orderField'=>'orderSRC', 'files'=>true],
    'sql'           => "blob NULL",
    'load_callback' => [['tl_content', 'setMultiSrcFlags']]
]

Beispiel für orderSRC: tl_content.php#L540

'orderSRC' => [
    'sql' => "blob NULL"
]

Einstellung: path

Variablentyp: string
Beispiel: files/customer/data

Mit path kann der Pfad beim Öffnen eines Dateibaums angegeben werden. Es kann dann nur auf diesen Pfad zugegriffen werden.

Diese Einstellung funktioniert nur mit Feldern vom Typ fileTree.

Beispiel: (Leider ist im Contao Core kein Beispiel vorhanden.)

'multiSRC' => [
    'exclude'       => true,
    'inputType'     => 'fileTree',
    'eval'          => ['path'=>'files/customer/data', 'multiple'=>true, 'fieldType'=>'checkbox', 'files'=>true],
    'sql'           => "blob NULL",
    'load_callback' => [['tl_content', 'setMultiSrcFlags']]
]

Einstellung: placeholder

Variablentyp: string
Beispiel: Bitte geben Sie einen Wert ein.

Mit placeholder wird der Platzhalter für das Eingabefeld angegeben.

Beispiel: tl_layout.php#L313

'titleTag' => [
    'exclude'   => true,
    'search'    => true,
    'inputType' => 'text',
    'eval'      => ['decodeEntities'=>true, 'maxlength'=>255, 'placeholder'=>'{ {page::pageTitle}} - { {page::rootPageTitle}}', 'tl_class'=>'w50'],
    'sql'       => "varchar(255) NOT NULL default ''"
]

(Damit die InsertTags nicht ersetzt weden, wurden zwischen den öffnenden Klammern Leerzeichen eingefügt.)

Einstellung: preserveTags

Variablentyp: bool
Beispiel: true

Wird preserveTags auf true gesetzt, werden keine HTML-Tags entfernt.

Beispiel: tl_user.php#L243

'password' => [
    'exclude'   => true,
    'inputType' => 'password',
    'eval'      => ['mandatory'=>true, 'preserveTags'=>true, 'minlength'=>Config::get('minPasswordLength'), 'tl_class'=>'w50'],
    'sql'       => "varchar(255) NOT NULL default ''"
]

Einstellung: readonly

Variablentyp: bool
Beispiel: true

Ist readonly auf true gesetzt, wird der Wert ganz normal angezeigt, kann aber nicht verändert werden.

Laut Handbuch wird dies nicht von allen Feldern unterstützt. Auf Deatils wird leider nicht eingegangen.

Beispiel: tl_preview_link.php#L106

'url' => [
    'search'    => true,
    'inputType' => 'text',
    'eval'      => ['mandatory'=>true, 'readonly'=>true, 'rgxp'=>'url', 'decodeEntities'=>true, 'maxlength'=>2048],
    'sql'       => "varchar(2048) NOT NULL default ''",
]

Einstellung: rgxp

Variablentyp: string
Beispiel: digit

Mit rgxp gibt man den regulären Ausdruck für die Überprüfung der Eingabe an. Es gibt die verschiedesten Ausdrücke, die hier verwendet werden können (wie email, digit, alnum), außerdem können eigene erstellt werden. Auf die regulären Ausdrücke gehen wir in einem der nächsten Texte noch detailiert ein.

Beispiel: tl_user.php#L172

'email' => [
    'exclude'   => true,
    'search'    => true,
    'inputType' => 'text',
    'eval'      => ['mandatory'=>true, 'rgxp'=>'email', 'maxlength'=>255, 'unique'=>true, 'decodeEntities'=>true, 'tl_class'=>'w50'],
    'sql'       => "varchar(255) NOT NULL default ''"
]

Einstellung: rows

Variablentyp: integer
Beispiel: 3

Mit rows wird die Anzahl der Zeilen angegeben.

Diese Einstellung funktioniert nur mit Feldern vom Typ textarea und tableWizard.

Beispiel: (Leider ist im Contao Core kein Beispiel vorhanden.)

'email' => [
    'exclude'   => true,
    'inputType' => 'textarea',
    'eval'      => ['tl_class'=>'clr', 'rows'=>5],
    'sql'       => "text NULL"
]

Einstellung: rte

Variablentyp: string
Beispiel: TinyMCE

Mit rte kann die Art des Rich Text Editors angegeben werden. Für Inhalte wird meist tinyMCE verwendet, für Quelltexte ace, hier kann dann noch das Syntax Highlighting angegeben werden (z. B. ace|html oder ace|js)

Beispiel: tl_content.php#L215

'text' => [
    'exclude'       => true,
    'search'        => true,
    'inputType'     => 'textarea',
    'eval'          => ['mandatory'=>true, 'rte'=>'tinyMCE', 'helpwizard'=>true],
    'explanation'   => 'insertTags',
    'sql'           => "mediumtext NULL"
]

Einstellung: size

Variablentyp: integer
Beispiel: 3

Mit size wird bei Feldern mit Mehrfachauswahl multiple die Anzahl der Elemente oder bei Textfeldern text die Anzahl der Felder festgelegt.

Beispiel: tl_content.php#L861

'cssID' => [
    'exclude'   => true,
    'inputType' => 'text',
    'eval'      => ['multiple'=>true, 'size'=>2, 'tl_class'=>'w50 clr'],
    'sql'       => "varchar(255) NOT NULL default ''"
]

Einstellung: spaceToUnderscore

Variablentyp: bool
Beispiel: true

Wird spaceToUnderscore auf true gesetzt, werden alle Leerzeichen durch Unterstriche ersetzt.

Beispiel: tl_form_field.php#L192

'name' => [
    'exclude'                 => true,
    'search'                  => true,
    'inputType'               => 'text',
    'eval'                    => ['mandatory'=>true, 'rgxp'=>'fieldname', 'spaceToUnderscore'=>true, 'maxlength'=>64, 'tl_class'=>'w50 clr'],
    'sql'                     => "varchar(64) NOT NULL default ''"
]

Einstellung: style

Variablentyp: string
Beispiel: border: 1px solid #999

Mit style können dem Feld CSS-Styles zugewiesen werden.

Beispiel: tl_content.php#L331

'tableitems' => [
            'exclude'   => true,
            'inputType' => 'tableWizard',
            'eval'      => ['multiple'=>true, 'allowHtml'=>true, 'doNotSaveEmpty'=>true, 'style'=>'width:142px;height:66px'],
            'xlabel'    => [['tl_content', 'tableImportWizard']],
            'sql'       => "mediumblob NULL"
]

Einstellung: submitOnChange

Variablentyp: bool
Beispiel: true

Wird submitOnChange auf true gesetzt, wird bei jeder Änderung des Werts gespeichert und die Seite neu geladen. Dies wird oft bei Feldern genutzt, die eine Subpalette (.s "Der Abschnitt: Palettes und Subpalettes") laden.

Beispiel: tl_article.php#L279

'protected' => [
    'exclude'   => true,
    'filter'    => true,
    'inputType' => 'checkbox',
    'eval'      => ['submitOnChange'=>true],
    'sql'       => "char(1) NOT NULL default ''"
]

Einstellung: tl_class

Variablentyp: string
Beispiel: w50

Mit tl_class wird die Anzeige im Backend geregelt. Es gibt folgende Möglichkeiten:

Wert Bedeutung Bemerkung
w25 Das Feld bekommt eine Breite von 25% der Gesamtbreite und float:left Verfügbart ab Contao 5.1
w33 Das Feld bekommt eine Breite von einem Drittel der Gesamtbreite und float:left Verfügbart ab Contao 5.1
w50 Das Feld bekommt eine Breite von 50% der Gesamtbreite und float:left
w66 Das Feld bekommt eine Breite von zwei Drittel der Gesamtbreite und float:left Verfügbart ab Contao 5.1
w75 Das Feld bekommt eine Breite von 75% der Gesamtbreite und float:left Verfügbart ab Contao 5.1
clr Das Feld bekommt clear:both Wird genutzt, wenn ein Feld mit voller Breite auf ein Feld mit geringerer Breit folgt.
wizard Wird verwendet, wenn ein Feld ein Wizard bekommt, es wird etwas kürzer dargestellt, um Platz für den Wizard zu schaffen.
long Das Feld wird über die gesamte Breite dargestellt.
cbx Das Feld wird auf eine Mindesthöhe von 46 Pixel gesetzt.
m12 Das Feld bekommt ein padding von 17 Pixeln oben und unten. Wird für einzelne Checkboxen verwendet, damit sie die gleiche Höhe haben wie andere Felder.

Die Werte können beliebig kombiniert werden (z. B. clr long).

Beispiel: tl_page.php#L556

'subpageLayout' => [
    'exclude'       => true,
    'search'        => true,
    'inputType'     => 'select',
    'foreignKey'    => 'tl_layout.name',
    'eval'          => ['chosen'=>true, 'tl_class'=>'w50', 'includeBlankOption'=>true, 'blankOptionLabel'=>&$GLOBALS['TL_LANG']['tl_page']['layout_inherit']],
    'sql'           => "int(10) unsigned NOT NULL default 0",
    'relation'      => ['type'=>'hasOne', 'load'=>'lazy']
]

Einstellung: trailingSlash

Variablentyp: bool
Beispiel: true

Wird trailingSlash auf true gesetzt, werden dem Wert abschließende Slashes hinzugefügt, falls nicht vorhanden. Bei false werden diese entfernt, falls vorhanden.

Beispiel: tl_page.php#L392

'staticFiles' => [
    'exclude'       => true,
    'search'        => true,
    'inputType'     => 'text',
    'eval'          => ['rgxp'=>'url', 'trailingSlash'=>false, 'tl_class'=>'w50'],
    'save_callback' => [['tl_page', 'checkStaticUrl']],
    'sql'           => "varchar(255) NOT NULL default ''"
]

Einstellung: unique

Variablentyp: bool
Beispiel: true

Ist unique auf true gesetzt, muss der Wert in der Tabelle eindeutig sein und kann kein zweites Mal vergeben werden.

Beispiel: tl_files.php#L182

'path' => [
    'eval'  => ['unique'=>true, 'versionize'=>false],
    'sql'   => "varchar(1022) BINARY NOT NULL default ''",
]

Einstellung: versionize

Variablentyp: bool
Beispiel: true

Wird versionize auf false gesetzt, wird der Wert des Felds beim Erstellen einer neuen Version nicht mit gespeichert.

Beispiel: tl_files.php#L182

'path' => [
    'eval'  => ['unique'=>true, 'versionize'=>false],
    'sql'   => "varchar(1022) BINARY NOT NULL default ''",
]