Attention
TYPO3 v11 has reached end-of-life as of October 31th 2024 and is no longer being maintained. Use the version switcher on the top left of this page to select documentation for a supported version of TYPO3.
Need more time before upgrading? You can purchase Extended Long Term Support (ELTS) for TYPO3 v10 here: TYPO3 ELTS.
eval
eval
-
- Type
- string (list of keywords)
- Path
- $GLOBALS['TCA'][$table]['columns'][$field]['config']
- 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:
[
'columns' => [
'text_7' => [
'exclude' => 1,
'label' => 'text_7',
'description' => 'eval=trim',
'config' => [
'type' => 'text',
'eval' => 'trim',
],
],
],
]
Custom form evaluation
[
'columns' => [
'text_9' => [
'exclude' => 1,
'label' => 'text_9',
'description' => 'readOnly=1',
'config' => [
'type' => 'text',
'readOnly' => 1,
],
],
],
]
You can supply own form evaluations in an extension by creating a class with two functions:
deevaluate
called when opening the record and evaluate
called for validation when saving the record:
EXT:
<?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:
:
// Register the class to be available in 'eval' of TCA
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tce']['formevals']
['TYPO3\\CMS\\Styleguide\\UserFunctions\\FormEngine\\TypeText9Eval'] = '';