[TYPO3-dev] TCA UserFunction - saving multiple values

Martin Kutschker martin.kutschker-n0spam at no5pam-blackbox.net
Fri May 16 18:09:12 CEST 2008


Simon Justesen schrieb:
> Simon Justesen skrev:
>> Steffen Kamper skrev:
>>> "Simon Justesen" <simon at FJERNDETTEsimm.dk> schrieb im Newsbeitrag 
>>> news:mailman.1.1210713472.616.typo3-dev at lists.netfielders.de...
>>>> Hey fellow TYPO3 users
>>>>
>>>> I've made a custom $TCA userfunction. I can easily save single 
>>>> values to a table field, but how can I add some preprocessing before 
>>>> writing the value to the database?
>>>>
>>>> I have a productfield and a price-field which I have to save to the 
>>>> same database field in the this way: product;price so that I can 
>>>> explode() it later.
>>>>
>>>> Thanks
>>>> Simon
>>>
>>> Hi,
>>>
>>> use one of the hooks in tcemain, eg processDatamapClass or 
>>> processDatamap_preProcessFieldArray to do what ever you want.
>>>
>>> vg Steffen
>>>
>>
>> Hey Steffen
>>
>> Thank you very much - I'll check it out
>>
>> Best regards
>> Simon
> 
> Hi
> 
> I've got an additional question: How do I save the processed data back 
> to the database?
> 
> Tried with the usual $GLOBALS['TYPO3_DB']->exec_UPDATEquery but the 
> $incomingFieldArray contains this additional field
> 
> _TRANSFORM_productdescription='RTE',
> 
> causing the update-query to fail because no such field exist in the 
> database.
> 
> I used the below-mentioned to test the hook
> 
> function processDatamap_preProcessFieldArray($incomingFieldArray, 
> $table, $id, &$pObj)
>     {
>         t3lib_div::debug($incomingFieldArray);
>         $incomingFieldArray['tools']['toolname'] = 1;
>      
> $GLOBALS['TYPO3_DB']->exec_UPDATEquery($table,'uid='.$id.'',$incomingFieldArray); 
> 
>     }

Why don't you modify the $incomingFieldArray?

function processDatamap_preProcessFieldArray(
   &$incomingFieldArray, $table, $id, &$pObj) {
    if ($table == 'yourtable') {
      $incomingFieldArray['yourfield'] = 1;
    }
}

Masi




More information about the TYPO3-dev mailing list