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

christian ewigfrost christian-kulozik at gmx.net
Thu Dec 14 16:19:37 CET 2017


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