Project

General

Profile

Actions

Bug #57063

closed

Parent language is not applied to new child records

Added by David Greiner about 10 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
FormEngine aka TCEforms
Target version:
-
Start date:
2014-03-19
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
6.1
PHP Version:
5.3
Tags:
Complexity:
medium
Is Regression:
No
Sprint Focus:

Description

Hi!

When creating a element in another language than the default language and adding a child element via IRRE, i am expecting that the child element gets the same language as the parent element.

For instance a news element from tx_news:

  1. Create new news element and choose a language which is not defined as default
  2. save
  3. add a media element via irre
  4. now you have to select the language in the media element again

This behaviour is not very usable for editors.


Files

InlineElement.patch (915 Bytes) InlineElement.patch David Greiner, 2014-04-09 11:55
InlineElement_2nd.patch (973 Bytes) InlineElement_2nd.patch David Greiner, 2014-04-09 13:52

Related issues 4 (1 open3 closed)

Related to TYPO3 Core - Bug #48883: Wrong sys_language_uid in sys_file_referenceClosed2013-06-05

Actions
Related to TYPO3 Core - Bug #40656: t3lib_TCEforms_inline->createNewRecord doesn't create localized recordsClosed2012-09-05

Actions
Related to TYPO3 Core - Feature #60026: Set explicitly 'readOnly' sys_language_uid of child to value, taken from parent recordNew2014-07-01

Actions
Has duplicate TYPO3 Core - Bug #21964: New child records created from a translated record have default languageClosed2010-01-15

Actions
Actions #1

Updated by David Greiner almost 10 years ago

I think there is a bug in /typo3/sysext/backend/Classes/Form/Element/InlineElement.php

Defining

'behaviour' => array(
'localizationMode' => 'select',
...
),

should be neccessary since it is described in http://docs.typo3.org/typo3cms/TCAReference/Reference/Columns/Inline/Index.html#columns-inline-properties-behaviour

Adding this to the TCA configuration does not take effect cause of InlineElement.php:1223 checks for $config['localizationMode'] and not for $config['behaviour']['localizationMode'].

This is what the attached patch updates.

The patch is for the current master branch (6.2) in https://git.typo3.org/Packages/TYPO3.CMS.git

Actions #2

Updated by David Greiner almost 10 years ago

Second patch is better.

Actions #3

Updated by Oliver Hader almost 10 years ago

  • Status changed from New to Accepted
  • Complexity set to medium

I'll have a look - thx for the patch!
Besides that, I could reproduce the misbehavior.

Actions #4

Updated by Oliver Hader almost 10 years ago

  • PHP Version set to 5.3
Actions #5

Updated by Oliver Hader almost 10 years ago

  • Subject changed from IRRE: Use localization of parent element to Parent language is not applied to child records
Actions #6

Updated by Oliver Hader almost 10 years ago

  • Subject changed from Parent language is not applied to child records to Parent language is not applied to new child records
Actions #7

Updated by Gerrit Code Review almost 10 years ago

  • Status changed from Accepted to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/30448

Actions #8

Updated by Oliver Hader almost 10 years ago

David, I modified your patch a little bit, however it was the correct place and correct bug analysis! Good catch & thanks!

Actions #9

Updated by David Greiner almost 10 years ago

Great. Thx for that :)

Actions #10

Updated by Gerrit Code Review almost 10 years ago

Patch set 1 for branch TYPO3_6-1 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/30472

Actions #11

Updated by Teamgeist Medien almost 10 years ago

Just wasted a half day with handling the complications without this function working. Thanks alot!

Actions #12

Updated by David Greiner almost 10 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
Actions #13

Updated by Markus Opahle about 8 years ago

Looks like this bug reappears in 7.6 LTS.
The fix from 3e6e8ec89c00b04485a3c6050e0cfdd9548a213e is commented out in TYPO3\CMS\Backend\Controller\FormInlineAjaxController on line 139:

        // Set language of new child record to the language of the parent record:
        // @todo: To my understanding, the below case can't happen: With localizationMode select, lang overlays
        // @todo: of children are only created with the "synchronize" button that will trigger a different ajax action.
        // @todo: The edge case of new page overlay together with localized media field, this code won't kick in either.
        /**
        if ($parent['localizationMode'] === 'select' && MathUtility::canBeInterpretedAsInteger($parent['uid'])) {
            $parentRecord = $inlineRelatedRecordResolver->getRecord($parent['table'], $parent['uid']);
            $parentLanguageField = $GLOBALS['TCA'][$parent['table']]['ctrl']['languageField'];
            $childLanguageField = $GLOBALS['TCA'][$child['table']]['ctrl']['languageField'];
            if ($parentRecord[$parentLanguageField] > 0) {
                $record[$childLanguageField] = $parentRecord[$parentLanguageField];
            }
        }
         */
Actions #14

Updated by Tymoteusz Motylewski over 7 years ago

Markus, is it still an issue with current v7 or 8 branch? If yes, plase open a new ticket with steps to reproduce the issue? I tried to reproduce but I couldn't.

Actions #15

Updated by Benni Mack over 5 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF