Bug #67200

TCA Overrides has wrong extension order

Added by Franz Holzinger over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Must have
Assignee:
-
Category:
Backend User Interface
Target version:
-
Start date:
2015-05-29
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
6.2
PHP Version:
Tags:
Complexity:
Is Regression:
No
Sprint Focus:

Description

In TYPO3 6.2.12 it sometimes happens that the TCA Overrides do not work. The table TCA of the original extension is not available at the moment, when it should be overridden. The constraints have been set in the file ext_emconf.php.

'constraints' => array(
    'depends' => array(
        'typo3' => '6.2.0-6.2.99',
        'tt_products' => '2.11.0-2.11.99',
    ),

$GLOBALS['TCA']['tt_products'] remains completely unset in the file tt_products_extended/Configuration/TCA/Overrides/tt_products.php.
Therefore the new fields are never added.

init.php    56    loadExtensionTables
Bootstrap.php    943    loadBaseTca
ExtensionManagementUtility.php    1615    buildBaseTcaFromSingleFiles
ExtensionManagementUtility.php    1674    require
tt_products.php    426    debug

I have followed the steps in
http://docs.typo3.org/typo3cms/TCAReference/ExtendingTca/StoringChanges/Index.html
TYPO3 offers no method to change the order how the extensions are called.


Related issues

Related to TYPO3 Core - Bug #60987: TCA|Extension loading orderRejected2014-08-14

Actions
Related to TYPO3 Core - Bug #57825: Configuration option for defining loading order of extensionsClosed2014-04-11

Actions
#1

Updated by Wouter Wolters over 6 years ago

  • Status changed from New to Needs Feedback

I guess you use newest tt_products version with my answer below.

When an extension still uses tca.php and you want to extend this with an extra extension you can't use Overrides.
You need to put it in ext_tables.php

Please also read: http://ab-softlab.tumblr.com/post/90851249969/tca-manipulation-in-typo3-6-2

#2

Updated by Franz Holzinger over 6 years ago

The same error happens occasionally with the file ext_tables.php. The $TCA of tt_products is not loaded yet at the moment when ext_tables.php of the extending extension is beeing executed.

Bootstrap.php    944    loadExtTables
ExtensionManagementUtility.php    1748    requireOnce
PhpFrontend.php    72    requireOnce
SimpleFileBackend.php    364    require_once
ext_tables_52f0fa917869c981191dc1c46475a27420794828.php    3604    debug

So it is necessary to have a sure method to define the order in which the extensions are executed.

I have seen the issue #57825. However it is not understandable why 'suggests' is used for this case. Most users do not understand what 'suggests' means. Many think that those extensions are also required. A new concept should base on a new configuration 'extends'. It does not require or suggest that extension. So the EM will not show it to avoid confusion. 'required' is against usability, because you cannot deinstall an extension if ten other extensions require it. Then you must first deinstall the the other extensions before you can deinstall the required extension. The EM does not support a multiple deinstall and reinstall.

#3

Updated by Christian Kuhn over 6 years ago

  • Status changed from Needs Feedback to Closed

The wording 'suggests' is frequently used among package handling systems. i think we'll keep it. Both 'requires' and 'suggests' can be used nowadays to have an effect on load order, so that should be fine. Wouter also gave the hint that tca defined via ext_tables and other tca defined in overrides may collide, so this stuff should be kept an eye on.

At the moment i can see no core issue here and will close the issue. Please re-open in case you see actually a bug in there.

#4

Updated by Franz Holzinger over 6 years ago

This is however a bad solution to enforce to set the 'suggested extensions'. User do not understand this. And it may happend that the extension list gets very long. And most of the users will click on every checkbox. And developers will not find this hidden feature anyways.

Also available in: Atom PDF