Index: trunk/kernel/action.php =================================================================== diff -u -N -r4358 -r4446 --- trunk/kernel/action.php (.../action.php) (revision 4358) +++ trunk/kernel/action.php (.../action.php) (revision 4446) @@ -2326,7 +2326,10 @@ { $adodbConnection = &GetADODBConnection(); // $sql = "SELECT * FROM ".$objSession->GetEditTable("Category")." WHERE CategoryId=0"; - $sql = "SELECT ParentId FROM ".$objSession->GetEditTable("Category")." WHERE CategoryId=-1"; + $category_table = $objSession->GetVariable('IsHomeCategory') ? TABLE_PREFIX.'Category' : $objSession->GetEditTable('Category'); + $sql = 'SELECT ParentId + FROM '.$category_table.' + WHERE CategoryId = -1'; $rs = $adodbConnection->Execute($sql); while ($rs && !$rs->EOF) @@ -2335,17 +2338,20 @@ $rs->MoveNext(); } - $cat_ids = $objCatList->CopyFromEditTable("CategoryId"); - if ($cat_ids) { - $objCustomDataList->CopyFromEditTable('c'); - } - $objCatList->Clear(); - if($_REQUEST['CategoryId'] > 0) // not root category is updated { + $cat_ids = $objCatList->CopyFromEditTable("CategoryId"); + if ($cat_ids) { + $objCustomDataList->CopyFromEditTable('c'); + } + $objCatList->Clear(); + $objImages = new clsImageList(); $objImages->CopyFromEditTable("ImageId"); } + else { + $objCatList->Clear(); + } } if( GetVar('CatEditStatus') == 2 )