Index: trunk/kernel/include/category.php =================================================================== diff -u -N -r2163 -r2514 --- trunk/kernel/include/category.php (.../category.php) (revision 2163) +++ trunk/kernel/include/category.php (.../category.php) (revision 2514) @@ -2278,7 +2278,7 @@ $sql = "SELECT * FROM $edit_table"; $rs = $this->adodbConnection->Execute($sql); - + $item_ids = Array(); while($rs && !$rs->EOF) { $data = $rs->fields; @@ -2307,7 +2307,7 @@ $r = $c->Related; $r->CopyFromEditTable($c->Get("ResourceId")); } - + $item_ids[] = $c->UniqueId(); //RunDown($c->Get("CategoryId"),"UpdateCachedPath"); //RunDown($c->Get("CategoryId"),"UpdateACL"); unset($c); @@ -2316,7 +2316,7 @@ } @$this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table"); unset($GLOBALS['_CopyFromEditTable']); - + return $item_ids; //$this->UpdateMissingCacheData(); } Index: trunk/kernel/action.php =================================================================== diff -u -N -r2082 -r2514 --- trunk/kernel/action.php (.../action.php) (revision 2082) +++ trunk/kernel/action.php (.../action.php) (revision 2514) @@ -2420,8 +2420,14 @@ $rs->MoveNext(); } - $objCatList->CopyFromEditTable("CategoryId"); - $objCustomDataList->CopyFromEditTable("CustomDataId"); + $cat_ids = $objCatList->CopyFromEditTable("CategoryId"); + if($cat_ids) + { + $db =& GetADODBConnection(); + $sql = 'SELECT ResourceId FROM '.$objCatList->SourceTable.' WHERE CategoryId IN ('.implode(',', $cat_ids).')'; + $rids = $db->GetCol($sql); + $objCustomDataList->CopyFromEditTable("CustomDataId", $rids); + } $objCatList->Clear(); if($_REQUEST['CategoryId'] > 0) // not root category is updated