[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