[TYPO3-german] Welchen Nutzen hat 'eval' in den TCAs bzw. die Evaluation class?

Stephan Bauer stephan_bauer at gmx.de
Thu Dec 14 23:13:10 CET 2017


Hallo Christian,

hier 
https://docs.typo3.org/typo3cms/TCAReference/8.7/ColumnsConfig/Properties/InputEval.html#eval
steht:
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. 
Keywords:

Ich denke, Dein Custom Eval kann erst im Backend geprüft werden.
Habe es leider bisher selbst noch nicht getestet.

Grüße
Stephan

Am 14.12.2017 um 16:19 schrieb christian ewigfrost:
> Da ich bereits eine ähnliche Frage im englischsprachigem Bereich 
> gestellt habe (https://forum.typo3.org/index.php/t/216930/) will ich es 
> hier mal verallgemeinern, da ich irgendwie das Gefühl habe das 'eval' 
> Feld in den TCAs irgendwie misszuverstehen. Im Prinzip kann ich ja 
> Evaluierungsregeln festlegen aber das Einzige was es bewirkt ist einen 
> ungewollt eingegebenen Wert abzufangen und durch einen vordefinierten zu 
> ersetzen, wie in dem Beispiel hier:
> 
> <?php
> 
> namespace Cjk\Icingaconfgen\Evaluation;
> 
> use TYPO3\CMS\Core\Messaging\FlashMessage;
> use TYPO3\CMS\Core\Messaging\FlashMessageService;
> use TYPO3\CMS\Core\Utility\GeneralUtility;
> 
> /**
> * Class for field value validation/evaluation to be used in 'eval' of TCA
> */
> class HostnameEvaluation
> {
> 
>     /**
>      * @param string $value     * @param string $is_in
>      * @param bool $set
>      * @return string
>      */
>     public function evaluateFieldValue($value, $is_in, &$set)
>     {
>          if ($value == ""){
>              $value = 'Fehlerhafte Eingabe';
> 
>              /** @var FlashMessage $message */
>              $message = 
> \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', 
> 
> 
>              'Fehlerhafte Eingabe',
>              \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR,             
> TRUE             );
> 
>              /** @var $flashMessageService FlashMessageService */
>              $flashMessageService = 
> GeneralUtility::makeInstance(FlashMessageService::class);
>              
> $flashMessageService->getMessageQueueByIdentifier()->enqueue($message);
>              }
>              return $value;
>     }
> }
> 
> Ist dies wirklich die Einzige Funktionalität? Weil mir erschließt sich 
> der SInn einer Evaluierung nicht wenn die Evaluierung nur die Eingabe 
> verändert anstatt sie ganz zu verhindern es sei denn die Eingabe 
> entspricht den Anforderungen.


More information about the TYPO3-german mailing list