Bug #38703
closed
Publishing records with IRRE records -> lost relation
Added by Dimitri Koenig over 12 years ago.
Updated over 10 years ago.
Description
Within my own extension i have a record with an inline record (IRRE) which is versioning too.
Wether this relation is an MM or 1:n (comma separated) doesn't matter:
As soon as i publish my main record or even both records, the relation gets lost.
If i use MM relation, the uids within the MM table won't be updated.
If i use an 1:n relation the field containing the related uid is empty after publishing.
I tried to publish only the main record, i tried to publish both records, nothing works.
Files
An ugly but working workaround for this issue is the following:
t3lib/class.t3lib_tcemain.php, line 919:
$query = 'UPDATE _NAME OF YOUR IRRE FIELD_ SET pid=_ORIGINAL PID_ WHERE pid=-1 AND deleted = 0';
$GLOBALS['TYPO3_DB']->sql_query($query);
It could be packed into a separate class as a tcemain hook with the method "hook_processDatamap_afterDatabaseOperations", this would of course improve the readability masively.
The function t3lib_TCEmain::isReferenceField is causing this issue. It doesn't take care of inline types so they are not recognized as reference fields.
function isReferenceField($conf) {
return ($conf['type'] == 'group' && $conf['internal_type'] == 'db' || $conf['type'] == 'select' && $conf['foreign_table']);
}
The class t3lib_refindex has got the same function with nearly the same content, but it takes care of inline types.
function isReferenceField($conf) {
return ($conf['type'] == 'group' && $conf['internal_type'] == 'db') || (($conf['type'] == 'select' || $conf['type'] == 'inline') && $conf['foreign_table']);
}
Attached is a patch for the t3lib_TCEmain with whom the bug can be fixed. Though I'm not quite sure, if every usage of the function isReferenceField in t3lib_TCEmain is taking care of inline types as reference fields.
- Category changed from Bugs to Workspaces
- Project changed from 624 to TYPO3 Core
- Category changed from Workspaces to Workspaces
- Status changed from New to Rejected
- Is Regression set to No
Please upgrade to TYPO3 CMS 6.2 which got a lot of fixes in that regard.
No backports from 6.2 to 4.5 since the chances are high that some other component breaks.
Please see #54851 and #58282
Also available in: Atom
PDF