[TYPO3-dev] TCA condition for input type
Ivano Luberti
luberti at archicoop.it
Tue Apr 22 09:28:59 CEST 2014
In the past I have used this hook
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tceforms.php']['getSingleFieldClass']
to change the input type on the fly (i was working with EXT powermail
records but I think you can easily apply this to any backend record).
I have defined my TCA like this
TCA.tx_powermail_domain_model_answers.columns.value{
config{
type=user
size=40
userFunc=typo3conf/ext/aippowermail/class.tx_aippowermail.php:tx_aippowermail->specialField
}
defaultExtras = richtext[]
}
TCA.tx_powermail_domain_model_answers.ctrl.label_userFunc=typo3conf/ext/aippowermail/class.tx_aippowermail.php:tx_aippowermail->retrieveFieldName
With the specialField function being like this:
/**
*
* Extract the name of the field to be rendered in PowerMail backend
when editing a mails record
* See
http://typo3.org/documentation/document-library/core-documentation/doc_core_tca/4.7.1/view/1/3/
*
* @param array $PA the parameters configured in the TCA
configuration we are extending
* @param $fObj reference to the parent object. In our case it
contains a reference tceforms
*
* @return String object representing the field to be rendered
*/
public function specialField($PA, $fObj) {
$uid = substr($PA['row']['field'], 0,
strpos($PA['row']['field'], '|'));
$uid = substr($uid, strrpos($uid, '_')+1);
$record = t3lib_BEfunc::getRecord(self::field_table_name, $uid);
$table=$PA['table'];
$field=$PA['field'];
$row=$PA['row'];
$tceForms=$PA['pObj'];
unset($PA['table']);
unset($PA['field']);
unset($PA['row']);
unset($PA['parameters']);
unset($PA['pObj']);
if($record['type']=='textarea'){
return $tceForms->getSingleField_typeText($table, $field,
$row, $PA);
}else{
return $tceForms->getSingleField_typeInput($table, $field,
$row, $PA);
}
}
}
And I have reused the code in EXT tcamanipulate (no more maintained but
still useful) to trigger the hook and load the custom TCA: this last one
is only because I had to override powermail TCA without modifying the
extension.
Il 21/04/2014 19:55, Philipp Gampe ha scritto:
> Hi Florian,
>
> Florian Schwaiger wrote:
>
>> I thought there might be a different config option, such as a 'typeCond',
>> but there isn't any. I will look into a custom JS handler now.
> Or you use a hook to change the TCA on the fly in tcemain.
>
> Best regards
--
==================================================
dott. Ivano Mario Luberti
Archimede Informatica societa' cooperativa a r. l.
Sede Operativa
Via Gereschi 36 - 56126- Pisa
tel.: +39-050- 580959
tel/fax: +39-050-9711344
web: www.archicoop.it
==================================================
More information about the TYPO3-dev
mailing list