Index: trunk/kernel/include/itemreview.php
===================================================================
diff -u -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)
{