[TYPO3-dev] TCA Backend Input form Validation
Stephan Großberndt
s.grossberndt at sidebysite.de
Tue Dec 9 10:04:38 CET 2014
$fieldArray is given as a reference. So probably the best option would
be to unset $fieldArray['vote_start_date'] and
$fieldArray['vote_end_date']. You could also completely unset
$fieldArray, but in that case all other information entered would be
lost. Unsetting $fieldArray['vote_start_date'] will result in no change
to the record while setting $fieldArray['vote_start_date'] = 0; in
clearing the vote_start_date.
Am 09.12.2014 um 08:16 schrieb Satish Maurya:
> Hi All,
>
> Could you please help following error in below code? this code I have
> written in ext_localcong.php file and need to apply validation on TCA form
> when updating the backend admin.
>
> 1. Below code display two error messages
> 2. After displaying the errors, data gets update into database. I need to
> restrict db update if error display.
>
> //------------------------------
> if($table == 'tx_ce_featurerequest_data') {
> if( $fieldArray['vote_start_date'] > $fieldArray['vote_end_date'] ) {
> $message =
> \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage',
> 'Start date cannot be greater than End date.',
> 'Please correct following errors:',
> \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR,
> TRUE
> );
> \TYPO3\CMS\Core\Messaging\FlashMessageQueue::addMessage($message);
> return false;
> }
>
> //--------------------
>
> Could you please suggest anyting?
>
>
>
>
> On Fri, Dec 5, 2014 at 7:53 PM, Satish Maurya <satish04mca at gmail.com> wrote:
>
>> Thanks a lot Stephan. Got it.
>>
>> Is there any TYPO3 documentation link for the further reading about it?
>>
>> Thanks again.
>> Satish
>>
>>
>>
>> On Fri, Dec 5, 2014 at 7:18 PM, Stephan Großberndt <
>> s.grossberndt at sidebysite.de> wrote:
>>
>>> You need a hook in ext_localconf.php
>>>
>>> // Adds mobdb hooks to the tcemain
>>> // "processDatamapClass" = new, update
>>> // "processCmdmapClass" = move, copy, delete, undelete, localize,
>>> version etc.
>>> $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.
>>> t3lib_tcemain.php']['processDatamapClass'][] =
>>> 'EXT:myext/Classes/Service/TceMainHooks.php:Tx_Myext_
>>> Service_TceMainHooks';
>>> $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.
>>> t3lib_tcemain.php']['processCmdmapClass'][] = 'EXT:myext/Classes/Service/
>>> TceMainHooks.php:Tx_Myext_Service_TceMainHooks';
>>>
>>> which may implement certain methods
>>>
>>> myext/Classes/Service/TceMainHooks.php:
>>>
>>> class Tx_Myext_Service_TceMainHooks {
>>>
>>> /**
>>> * This method is called by a hook in the TYPO3 Core Engine
>>> (TCEmain) when a record is saved.
>>> *
>>> * @param array $fieldArray: The field names and
>>> their values to be processed
>>> * @param string $table: The table TCEmain is
>>> currently processing
>>> * @param string $id: The records id (if any)
>>> * @param object $reference: Reference to the parent
>>> object (TCEmain)
>>> * @return void
>>> * @access public
>>> */
>>> function processDatamap_preProcessFieldArray(&$fieldArray,
>>> $table, $id, &$pObj) {
>>>
>>> if ($table == 'tx_myext_record' && !stristr($id, 'NEW')
>>> && $fieldArray['status'] == 'under_review') {
>>> // Send mail
>>> }
>>>
>>> if ($table == 'tx_myext_record' &&
>>> $fieldArray['starttime'] > $fieldArray['endtime']) {
>>> $reference->log($table, $id, 2,
>>> 0, 1, 'starttime > endtime');
>>>
>>> }
>>> }
>>>
>>> }
>>> _______________________________________________
>>> TYPO3-dev mailing list
>>> TYPO3-dev at lists.typo3.org
>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-dev
>>>
>>
>>
>>
>> --
>> *Thanks & regards,*
>> Satish Maurya
>>
>>
>
>
More information about the TYPO3-dev
mailing list