Project

General

Profile

Actions

Bug #47359

closed

TCA setting subtypes_excludelist has problems with inline elements

Added by Alexander Stehlik about 11 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
FormEngine aka TCEforms
Target version:
Start date:
2013-04-18
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
6.1
PHP Version:
5.4
Tags:
Complexity:
Is Regression:
No
Sprint Focus:
Remote Sprint

Description

The problem seems to be the class variable excludeElements in TYPO3\CMS\Backend\Form\FormEngine.

When a palette has an inline record, the function stack looks like:

TYPO3\CMS\Backend\Controller\EditDocumentController->makeEditForm( )
TYPO3\CMS\Backend\Form\FormEngine->getMainFields( )
TYPO3\CMS\Backend\Form\FormEngine->getPaletteFields( )
TYPO3\CMS\Backend\Form\FormEngine->loadPaletteElements( )
TYPO3\CMS\Backend\Form\FormEngine->getSingleField( )
TYPO3\CMS\Backend\Form\FormEngine->getSingleField_SW( )
TYPO3\CMS\Backend\Form\Element\InlineElement->getSingleField_typeInline( )
TYPO3\CMS\Backend\Form\Element\InlineElement->renderForeignRecord( )
TYPO3\CMS\Backend\Form\Element\InlineElement->renderMainFields( )
TYPO3\CMS\Backend\Form\FormEngine->getMainFields( )
TYPO3\CMS\Backend\Form\FormEngine->getPaletteFields( )
TYPO3\CMS\Backend\Form\FormEngine->loadPaletteElements( )
TYPO3\CMS\Backend\Form\FormEngine->getExcludeElements( )

When the InlineElement class calls getMainFields the excludeElements class variable seem to get overwritten in loadPaletteElements().

I see two possible solutions:

  1. Simple: Use local variables
  2. Implement a cache based on the current table / field

Please let me know which solution you prefer and I will provide a patch.


Files

inlinetest.zip (2.67 KB) inlinetest.zip Extension for testing Alexander Stehlik, 2013-04-19 08:28
Actions

Also available in: Atom PDF