Feature #55976

Override TCA config with TSconfig - TCEFORM

Added by Jan Kiesewetter over 7 years ago. Updated over 1 year ago.

Must have
Backend API
Target version:
Start date:
Due date:
% Done:


Estimated time:
PHP Version:
Sprint Focus:
Needs Decision


Some of the TCA config can not be overridden with TSconfig, e.g.:

TCEFORM.tt_content.imagewidth.config.range.upper = 1600

will NOT work atm.

Related issues

Related to TYPO3 Core - Bug #80265: Add max to the overrideable fields via tsconfigClosedGeorg Ringer2017-03-13

Related to TYPO3 Core - Feature #14669: set Fields requiredClosed2005-04-14


Updated by Markus Klein over 7 years ago

Is this a feature or a bug. Should it be working like this? What do the docs say?


Updated by Jan Kiesewetter over 7 years ago

As config.range is not in the key list:

It's a feature.
I selected Tracker: Feature


Updated by Felix Kopp almost 7 years ago

  • Status changed from New to Needs Feedback

Updated by Alexander Opitz over 6 years ago

  • Category set to Backend API
  • Status changed from Needs Feedback to New

Updated by Susanne Moog about 6 years ago

  • Sprint Focus set to PRC

Updated by Luc Muller about 5 years ago

Hi All

I would like to put a +1 on this bug.

Having the problem in powermail, to make a field optional

TCEFORM.tx_powermail_domain_model_page.title.config.size = 100 <= works
TCEFORM.tx_powermail_domain_model_page.title.config.eval = trim <= do not work
TCEFORM.tx_powermail_domain_model_page.title.config.eval := removeFromList(required) <= do not work



Updated by Michael Christian almost 5 years ago

  • Tracker changed from Feature to Bug
  • Subject changed from Override TCA config with TSconfig to Override TCA config with TSconfig - TCEFORM
  • Priority changed from Should have to Must have
  • TYPO3 Version set to 7
  • Is Regression set to No

I have the same bug with typo3 V7.6.14

The doc says this should be work - Look at: "[table name].[field].config.[key]"

TCEFORM.tt_content.header.config.max = 20 <= works
TCEFORM.tt_content.rowDescription.config.rows = 10 <= works
TCEFORM.tt_content.rowDescription.config.eval = required <= do not work
TCEFORM.tt_content.header_link.config.max = 10 <= works
TCEFORM.tt_content.header_link.config.wizards.link.title = Hello :-) World! <= do not work
TCEFORM.tt_content.header_link.config.wizards.link.JSopenParams = width=200,height=200,status=0,menubar=0,scrollbars=1 <= do not work

Could someone fix this bug pleeeeeease!


Updated by Andreas Dörler over 4 years ago


I can confirm, that overriding eval does not work.

My usecase ist tx_news:
  • There is one sysfolder where only news of type internal url is allowed.
  • The url should be optional, therefore I've set the following Page TS config in this sysfolder:
    TCEFORM.tx_news_domain_model_news.internalurl.config.eval = trim

The workaround in comment 7 of #14669 could work, but it would be more comfortable to use Page TS config.

Kind regards


Updated by Georg Ringer almost 4 years ago

  • Related to Bug #80265: Add max to the overrideable fields via tsconfig added

Updated by Riccardo De Contardi about 3 years ago

  • Tracker changed from Bug to Feature

AFAIK the properties that can be overridden are listed here: https://docs.typo3.org/typo3cms/TSconfigReference/PageTsconfig/TceForm.html#config

I change this to a feature request. Thank you.


Updated by Tilo Baller almost 3 years ago


Updated by Tilo Baller almost 3 years ago

As there doesn't seem to be any possibility to manipulate the allowOverrideMatrix after the getMainFieldsClass hook was removed with breaking change #63846 (https://docs.typo3.org/typo3cms/extensions/core/Changelog/7.5/Breaking-69568-FormEngine.html), even not in current master (as of 18-11-08), we currently use Reflection as a workaround.

E.g. to allow overriding 'eval'-config on an input tca field with TCEFORM.pages.lastUpdated.config.eval = required the following code placed in an extensions ext_localconf.php does the job for us:

    $reflectionClassFormEngineUtility = new ReflectionClass(\TYPO3\CMS\Backend\Form\Utility\FormEngineUtility::class);
    $reflectionPropertyAllowOverrideMatrix = $reflectionClassFormEngineUtility->getProperty('allowOverrideMatrix');
    $reflectionPropertyAllowOverrideMatrix->setAccessible(true); // make protected property accessible
    $allowOverrideMatrix = $reflectionPropertyAllowOverrideMatrix->getValue();
    $allowOverrideMatrix['input'][] = 'eval';

See also the $allowOverrideMatrix property in typo3/sysext/backend/Classes/Form/Utility/FormEngineUtility.php to see which array key is necessary to manipulate depending on your field type.

Tested with TYPO3 7.6.31 and PHP 5.6.


Updated by Benni Mack over 1 year ago

  • Sprint Focus changed from PRC to Needs Decision

Updated by Mathias Bolt Lesniak over 1 year ago

+1 from me on this. Would be very useful and increase flexibility. It would make it possible to make a filed required dependent on where in the page tree and which user is editing. I have a use case for that. O:-)

Also available in: Atom PDF