TCA fields without positioning added to last tab, not "Extended" tab
TCA fields added via
ExtensionManagementUtility::addToAllTCAtypes are appended to the
showitem list of all types if no explicit positioning (e.g.
after:title) has been requested.
By default this appends the fields to the "Extended" tab which is present by default and ready to receive all fields which are simply appended.
However, if one adds a new tab via
--div-- without explicit positioning with some fields, all unrelated fields without explicit positioning are now appended to this tab instead. The resulting
showitem portion which makes the issue clear:
--div--;LLL:EXT:cms/locallang_ttc.xlf:tabs.extended, --div--;LLL:EXT:myext/locallang_db.xml:mytab, tx_myext_myfield;;;;1-1-1, unrelated_field
The new tab with the field
tx_myext_myfield was simply appended to the
showitem list, thus preventing the "Extended" tab from being the last. The
unrelated_field is now placed in the new tab.
A temporary fix is to set a explicit position for the newly added tab; this ensures that the tab and its fields are not simply appended and leaves the "Extended" tab on the last position.
The real fix however would involve explicitely placing all fields without explicit positioning in the "Extended" tab. This way arbitrary tabs could be appended without unrelated fields showing up in them.
This issue affects all TYPO3 CMS versions.
#6 Updated by Benni Mack almost 4 years ago
- Status changed from New to Needs Feedback
The real problem is that this "Extended" tab is actually just a workaround to not add anything non-specific to the last tab.
So I think this should be the way to go:
- Remove all default Extended tabs in tt_content of the core (or wherever this is used currently)
- Add a special placeholder for everything that was added without positioning, and any tabs that are added BEFORE that placeholder.
Does that make sense?