Feature #55976

Override TCA config with TSconfig - TCEFORM

Added by Jan Kiesewetter over 6 years ago. Updated 4 months ago.

Status:
New
Priority:
Must have
Assignee:
-
Category:
Backend API
Target version:
-
Start date:
2014-02-14
Due date:
% Done:

0%

PHP Version:
Tags:
Complexity:
Sprint Focus:
Needs Decision

Description

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 tsconfig Closed 2017-03-13
Related to TYPO3 Core - Feature #14669: set Fields required Closed 2005-04-14

History

#1 Updated by Markus Klein over 6 years ago

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

#2 Updated by Jan Kiesewetter over 6 years ago

As config.range is not in the key list:
http://docs.typo3.org/typo3cms/TSconfigReference/PageTsconfig/TCEform/Index.html

It's a feature.
I selected Tracker: Feature

#3 Updated by Felix Kopp almost 6 years ago

  • Status changed from New to Needs Feedback

#4 Updated by Alexander Opitz over 5 years ago

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

#5 Updated by Susanne Moog about 5 years ago

  • Sprint Focus set to PRC

#6 Updated by Luc Muller about 4 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

:'(

#7 Updated by Michael Christian almost 4 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]"
https://docs.typo3.org/typo3cms/TSconfigReference/7.6/PageTsconfig/TCEform/

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!

#8 Updated by Andreas Dörler over 3 years ago

Hi,

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
Andreas

#9 Updated by Georg Ringer almost 3 years ago

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

#10 Updated by Riccardo De Contardi about 2 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.

#11 Updated by Tilo Baller almost 2 years ago

#12 Updated by Tilo Baller almost 2 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';
    $reflectionPropertyAllowOverrideMatrix->setValue($allowOverrideMatrix);

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.

#13 Updated by Benni Mack 7 months ago

  • Sprint Focus changed from PRC to Needs Decision

#14 Updated by Mathias Bolt Lesniak 4 months 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