--- class.t3lib_transferdata.php (revision 2751) +++ class.t3lib_transferdata.php (working copy) @@ -156,22 +156,18 @@ // Default values as set in userTS: $TCAdefaultOverride = $GLOBALS['BE_USER']->getTSConfigProp('TCAdefaults'); - if (is_array($TCAdefaultOverride[$table.'.'])) { - foreach($TCAdefaultOverride[$table.'.'] as $theF => $theV) { - if (isset($TCA[$table]['columns'][$theF])) { - $newRow[$theF]=$theV; - } - } - } + // Default values as set in pageTS $pageTS = t3lib_beFunc::getPagesTSconfig($id, true); - if (isset($pageTS['TCAdefaults.'])) { - $TCAPageTSOverride = $pageTS['TCAdefaults.']; - if (is_array($TCAPageTSOverride[$table.'.'])) { - foreach($TCAPageTSOverride[$table.'.'] as $theF => $theV) { - if (isset($TCA[$table]['columns'][$theF])) { - $newRow[$theF]=$theV; - } + $pageTS = (isset($pageTS['TCAdefaults.'])) ? $pageTS['TCAdefaults.'] : array(); + + // Merge userTS and pageTS; pageTS overrules userTS + $TSconfig = t3lib_div::array_merge_recursive_overrule($TCAdefaultOverride,$pageTS); + + if (is_array($TSconfig[$table.'.'])) { + foreach($TSconfig[$table.'.'] as $theF => $theV) { + if (isset($TCA[$table]['columns'][$theF])) { + $newRow[$theF]=$theV; } } }