Index: trunk/kernel/include/parseditem.php =================================================================== diff -u -N -r845 -r852 --- trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 845) +++ trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 852) @@ -1232,7 +1232,7 @@ if( isset($c->Reviews) && is_object($c->Reviews) ) { $r = $c->Reviews; - $r->CopyFromEditTable($c->Get("ResourceId")); + $r->CopyFromEditTable($c->Get("ResourceId"),true); } } if(!is_numeric($c->Get("OrgId")) || $c->Get("OrgId")==0) @@ -1269,6 +1269,9 @@ $rs->MoveNext(); } + $objReviews = new clsItemReviewList(); + $objReviews->PurgeEditTable(); + if ($dropRelTableFlag) { $objRelGlobal = new clsRelationshipList(); Index: trunk/kernel/include/itemreview.php =================================================================== diff -u -N -r701 -r852 --- trunk/kernel/include/itemreview.php (.../itemreview.php) (revision 701) +++ trunk/kernel/include/itemreview.php (.../itemreview.php) (revision 852) @@ -505,44 +505,52 @@ } } - function CopyFromEditTable($ResourceId) + function CopyFromEditTable($ResourceId, $saveEditTable = false) { - global $objSession; - $GLOBALS['_CopyFromEditTable']=1; - //echo "ToLive [Reviews]
"; - $edit_table = $objSession->GetEditTable($this->SourceTable); - $idlist = array(); - $sql = "SELECT * FROM $edit_table"; - $this->Clear(); - // get all items in edit-table - $rs = $this->adodbConnection->Execute($sql); - while($rs && !$rs->EOF) - { - $data =& $rs->fields; - - $c = $this->AddItemFromArray($data); + global $objSession; + $GLOBALS['_CopyFromEditTable']=1; + //echo "ToLive [Reviews]
"; + $edit_table = $objSession->GetEditTable($this->SourceTable); + $idlist = array(); + $sql = 'SELECT * FROM '.$edit_table.' WHERE ItemId = '.(int)$ResourceId; + $this->Clear(); + // get all items in edit-table + $rs = $this->adodbConnection->Execute($sql); + while($rs && !$rs->EOF) + { + $data =& $rs->fields; - $c->Dirty(); - if($data["ReviewId"]>0) - { - $c->Update(); - } - else - { - $c->UnsetIdField(); - $c->Create(); - } - $idlist[] = $c->Get("ReviewId"); - $rs->MoveNext(); - } - //print_pre($idlist); - $sql = "DELETE FROM ".$this->SourceTable." WHERE ItemId=$ResourceId ".(count($idlist) > 0 ? "AND ReviewId NOT IN (".implode(",",$idlist).")" : ""); - //echo "DEL REVIEW SQL: $sql
"; - $this->adodbConnection->Execute($sql); - @$this->adodbConnection->Execute("DROP TABLE IF EXISTS ".$edit_table); - unset($GLOBALS['_CopyFromEditTable']); + $c = $this->AddItemFromArray($data); + + $c->Dirty(); + if($data["ReviewId"]>0) + { + $c->Update(); + } + else + { + $c->UnsetIdField(); + $c->Create(); + } + $idlist[] = $c->Get("ReviewId"); + $rs->MoveNext(); + } + //print_pre($idlist); + $sql = "DELETE FROM ".$this->SourceTable." WHERE ItemId=$ResourceId ".(count($idlist) > 0 ? "AND ReviewId NOT IN (".implode(",",$idlist).")" : ""); + //echo "DEL REVIEW SQL: $sql
"; + $this->adodbConnection->Execute($sql); + + if(!$saveEditTable) $this->PurgeEditTable(); + + unset($GLOBALS['_CopyFromEditTable']); } + function PurgeEditTable($idfield = null) + { + $edit_table = $GLOBALS['objSession']->GetEditTable($this->SourceTable); + @$this->adodbConnection->Execute("DROP TABLE IF EXISTS ".$edit_table); + } + function GetPageLinkList(&$UpdateVar,$dest_template=NULL,$page = NULL,$PagesToList=10,$HideEmpty=TRUE) {