eval

eval
Type:string (list of keywords)
Scope:Display / Proc.
RenderType:default

Configuration of field evaluation. None of these apply for RTE fields.

Some of these evaluation keywords will trigger a JavaScript pre-evaluation in the form. Other evaluations will be performed in the backend.

The evaluation functions will be executed in the list-order, available keywords:

required
A non-empty value is required in the field (otherwise the form cannot be saved).
trim
The value in the field will have white spaces around it trimmed away.
null
An empty value (string) will be stored as NULL in the database. (requires a proper sql definition). Often combined with “mode” property.
Vendor\Extension\*
User defined form evaluations.

Examples

Trimming input

Trimming the value for white space before storing in the database:

      'text_7' => [ 
         'exclude' => 1,
         'label' => 'text_7',
         'description' => 'eval=trim',
         'config' => [ 
            'type' => 'text',
            'eval' => 'trim',
         ],
      ],
      // Example from extension "styleguide", table "tx_styleguide_elements_basic"

Custom form evaluation

      'text_9' => [ 
         'exclude' => 1,
         'label' => 'text_9',
         'description' => 'readOnly=1',
         'config' => [ 
            'type' => 'text',
            'readOnly' => 1,
         ],
      ],
      // Example from extension "styleguide", table "tx_styleguide_elements_basic"

You can supply own form evaluations in an extension by creating a class with two functions: deevaluateFieldValue() called when opening the record and evaluateFieldValue() called for validation when saving the record:

EXT:styleguide/Classes/UserFunctions/FormEngine/TypeText9Eval.php

<?php

namespace TYPO3\CMS\Styleguide\UserFunctions\FormEngine;

class TypeText9Eval
{

    /**
     * Adds text "PHPfoo-evaluate" at end on saving
     *
     * @param string $value
     * @param string $is_in
     * @param bool $set
     * @return string
     */
    public function evaluateFieldValue($value, $is_in, &$set)
    {
        return $value . 'PHPfoo-evaluate';
    }

    /**
     * Adds text "PHPfoo-deevaluate" at end on opening
     *
     * @param array $parameters
     * @return string
     */
    public function deevaluateFieldValue(array $parameters)
    {
        $value = $parameters['value'];
        return $value . 'PHPfoo-deevaluate';
    }
}

EXT:styleguide/ext_localconf.php:

// Register the class to be available in 'eval' of TCA
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tce']['formevals']
   ['TYPO3\\CMS\\Styleguide\\UserFunctions\\FormEngine\\TypeText9Eval'] = '';