Feature #55976


Override TCA config with TSconfig - TCEFORM

Added by Jan Kiesewetter over 10 years ago. Updated about 1 month 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 2 (0 open2 closed)

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

Actions #1

Updated by Markus Klein over 10 years ago

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

Actions #2

Updated by Jan Kiesewetter over 10 years ago

As config.range is not in the key list:

It's a feature.
I selected Tracker: Feature

Actions #3

Updated by Felix Kopp over 9 years ago

  • Status changed from New to Needs Feedback
Actions #4

Updated by Alexander Opitz about 9 years ago

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

Updated by Susanne Moog almost 9 years ago

  • Sprint Focus set to PRC
Actions #6

Updated by Luc Muller over 7 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


Actions #7

Updated by Michael Christian over 7 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 = Hello :-) World! <= do not work = width=200,height=200,status=0,menubar=0,scrollbars=1 <= do not work

Could someone fix this bug pleeeeeease!

Actions #8

Updated by Andreas Dörler over 7 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

Actions #9

Updated by Georg Ringer over 6 years ago

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

Updated by Riccardo De Contardi almost 6 years ago

  • Tracker changed from Bug to Feature

AFAIK the properties that can be overridden are listed here:

I change this to a feature request. Thank you.

Actions #11

Updated by Tilo Baller over 5 years ago

Actions #12

Updated by Tilo Baller over 5 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 (, 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.

Actions #13

Updated by Benni Mack about 4 years ago

  • Sprint Focus changed from PRC to Needs Decision
Actions #14

Updated by Mathias Bolt Lesniak about 4 years 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:-)

Actions #15

Updated by Christoph Kratz over 2 years ago

Works also in TYPO3 v11 with PHP 7.4. The function is especially important when you need different settings depending on the page type or location.


Actions #16

Updated by Sybille Peters about 1 month ago

The link above to the list of things which can be overriden is broken.

You can find information in the TSconfig docs for TCEFORM config or in the source code FormEngineUtility::$formEngineUtility


Also available in: Atom PDF