Bug #17653

Palettes are not rendered correctly on nesting records using the same table

Added by Ernesto Baschny almost 12 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Should have
Assignee:
Category:
-
Target version:
-
Start date:
2007-10-04
Due date:
% Done:

0%

TYPO3 Version:
4.2
PHP Version:
5.0
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

I don't know what exactly makes this happen, but at least it is reproducible:

For some strange reason we needed to order news in a parent / child way. Nothing better than IRRE to do that:

- added two fields to tt_news, one for the "inline" type holding the children and one to hold the uid of the "parent" news

Now here comes the bug:

- Whenever there are children records in my tt_news record, the "keyword" pallete is empty! If "show secondary palettes" is enabled, I don't see the keywords at all (should be directly below bodytext). If I disable that option I get the icon for "secondary palette", but clicking on it gives me an empty palette.

To make it easier to test (go, Oliver, go!), I've made a little extension that just adds that inline fields needed to test this behaviour.

I also had some other "palette" related trouble in the course of our developement with this constelation (parent / child tt_news records), but this "keywords" thing is the only thing I could reproduce. Maybe fixing this fixes all related problems. :)
(issue imported from #M6456)

T3X_user_irretest-0_1_0-z-200710042118.t3x (1.53 KB) Administrator Admin, 2007-10-04 21:18

0006456.patch View (2.12 KB) Administrator Admin, 2007-10-30 16:32

History

#1 Updated by Ernesto Baschny almost 12 years ago

This bug is probably in best hands with you... ;)

#2 Updated by Oliver Hader almost 12 years ago

Ok, I'm going to have a look at this next week...

#3 Updated by Oliver Hader almost 12 years ago

I guess this also happens in TYPO3 4.1.3?

#4 Updated by Oliver Hader almost 12 years ago

The error related to this array in TCEforms:

$this->palettesRendered[$this->renderDepth][$table]=array();

Palettes are there marked as rendered - but if there are child records they set this array and the parent record thinks that all these palettes have been rendered.

I don't know if some other extension needs this information after t3lib_TCEforms::getMainFields() has been processed - if not, I'd just add

$this->palettesRendered[$this->renderDepth][$table]=array();

to the end of the mentioned method.

#5 Updated by Oliver Hader almost 12 years ago

Please see the attached patch which solves this bug.
It adds a new method to t3lib_TCEforms_inline which is used as wrapper for t3lib_TCEforms::getMainFields(). The information about rendered palettes is stored and written back after the inline processing was finished.

#6 Updated by Oliver Hader almost 12 years ago

Committed to SVN
  • TYPO3_4-1 (rev. 2671)
  • Trunk (rev. 2672)

Also available in: Atom PDF