Index: trunk/admin/install/upgrades/inportal_upgrade_v1.1.4.php =================================================================== diff -u -r3440 -r3497 --- trunk/admin/install/upgrades/inportal_upgrade_v1.1.4.php (.../inportal_upgrade_v1.1.4.php) (revision 3440) +++ trunk/admin/install/upgrades/inportal_upgrade_v1.1.4.php (.../inportal_upgrade_v1.1.4.php) (revision 3497) @@ -55,14 +55,28 @@ $duplicate_rids=$ado->GetCol($sql); if(!$duplicate_rids) return; - $sql='SELECT * FROM '.$module_table.' WHERE ResourceId IN ('.implode(',',$duplicate_rids).') ORDER BY TableName,ResourceId,ID'; + $sql=' SELECT * FROM '.$module_table.' WHERE ResourceId IN ('.implode(',',$duplicate_rids).') + ORDER BY + CASE TableName + WHEN \'Products\' THEN 1 + WHEN \'Link\' THEN 2 + WHEN \'News\' THEN 3 + WHEN \'Topic\' THEN 4 + WHEN \'Category\' THEN 5 + WHEN \'PortalGroup\' THEN 6 + WHEN \'PortalUser\' THEN 7 + ELSE 99 + END, + TableName,ResourceId,ID'; $rs=$ado->Execute($sql); $originals=Array(); // this are originals $dupes=Array(); // this is dupes $update_tpl='UPDATE '.GetTablePrefix().'%s SET ResourceId=%s WHERE %s=%s'; + $user_custom_fields = implode(',', $ado->GetCol('SELECT CustomFieldId FROM '.GetTablePrefix().'CustomField WHERE Type = 6')); + $non_category_items = Array(); while(!$rs->EOF) { @@ -75,6 +89,11 @@ $ado->Execute($update_sql); $dupes[$next_id] = $rec['ID']; if($rec['Module'] == 'In-Portal') $non_category_items[$next_id] = $rec['ID']; + + if ($rec['TableName'] == 'PortalUser' && $user_custom_fields) { + $update_custom = 'UPDATE '.GetTablePrefix().'CustomMetaData SET ResourceId = '.$next_id.' WHERE ResourceId = '.$rec['ResourceId'].' AND CustomFieldId IN ( '.$user_custom_fields.' )'; + $ado->Execute($update_custom); + } } else {