Index: trunk/kernel/include/emailmessage.php
===================================================================
diff -u -r553 -r561
--- trunk/kernel/include/emailmessage.php (.../emailmessage.php) (revision 553)
+++ trunk/kernel/include/emailmessage.php (.../emailmessage.php) (revision 561)
@@ -433,7 +433,27 @@
$this->Clear();
return $this->Query_Item($sql);
}
+
+ function &AddEmailEvent($Template, $Type, $LangId, $EventId)
+ {
+ $e = new clsEmailMessage();
+ $e->tablename = $this->SourceTable;
+ $e->Set(array("Template","MessageType","LanguageId","EventId"),
+ array($Template,$Type,$LangId,$EventId));
+ $e->Dirty();
+ $e->Create();
+ return $e;
+ }
+
+ function DeleteLanguage($LangId)
+ {
+ $sql = "DELETE FROM ".$this->SourceTable." WHERE LanguageId=$LangId OR LanguageId = 0";
+ if( $GLOBALS['debuglevel'] ) echo $sql."
\n";
+
+ $this->adodbConnection->Execute($sql);
+ }
+
function &GetMessage($EventId,$LangId,$LoadFromDB=TRUE)
{
$found=FALSE;
@@ -474,44 +494,49 @@
return $i;
}
- function CreateEmptyEditTable($IdList)
+ function CreateEmptyEditTable($IdList, $use_parent = false)
{
global $objSession;
- $edit_table = $objSession->GetEditTable($this->SourceTable);
- @$this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table");
- $query = "SELECT * FROM ".$this->SourceTable." WHERE $idfield = -1";
- $insert = "CREATE TABLE ".$edit_table." ".$query;
- if($objSession->HasSystemPermission("DEBUG.LIST"))
- echo htmlentities($insert,ENT_NOQUOTES)."
\n";
- $this->adodbConnection->Execute($insert);
- $this->LoadLanguage();
- $idvalue = -1;
- for($i=0;$i<$this->NumItems();$i++)
- {
- $e =& $this->Items[$i];
- $e->SourceTable = $edit_table;
- if(is_array($IdList))
- {
- foreach($IdList as $id)
- {
- $e->UnsetIdField();
- $e->Set("EmailMessageId",$idvalue--);
- $e->Set("LanguageId",$id);
- $e->Set("Description",admin_language("la_desc_emailevent_".$e->Get("Event"),$id));
- $e->Create();
- }
- }
- else
- {
- $e->UnsetIdField();
- $e->Set("EmailMessageId",$idvalue--);
- $e->Set("LanguageId",$IdList);
- $e->Set("Description",admin_language("la_desc_emailevent_".$e->Get("Event"),$LangId));
- $e->Create();
- }
+ if (!$use_parent) {
+ $edit_table = $objSession->GetEditTable($this->SourceTable);
+ @$this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table");
+ $query = "SELECT * FROM ".$this->SourceTable." WHERE $idfield = -1";
+ $insert = "CREATE TABLE ".$edit_table." ".$query;
+ if($objSession->HasSystemPermission("DEBUG.LIST"))
+ echo htmlentities($insert,ENT_NOQUOTES)."
\n";
+ $this->adodbConnection->Execute($insert);
+ $this->LoadLanguage();
+ $idvalue = -1;
+ for($i=0;$i<$this->NumItems();$i++)
+ {
+ $e =& $this->Items[$i];
+ $e->SourceTable = $edit_table;
+ if(is_array($IdList))
+ {
+ foreach($IdList as $id)
+ {
+ $e->UnsetIdField();
+ $e->Set("EmailMessageId",$idvalue--);
+ $e->Set("LanguageId",$id);
+ $e->Set("Description",admin_language("la_desc_emailevent_".$e->Get("Event"),$id));
+ $e->Create();
+ }
+ }
+ else
+ {
+ $e->UnsetIdField();
+ $e->Set("EmailMessageId",$idvalue--);
+ $e->Set("LanguageId",$IdList);
+ $e->Set("Description",admin_language("la_desc_emailevent_".$e->Get("Event"),$LangId));
+ $e->Create();
+ }
+ }
+ $this->Clear();
}
- $this->Clear();
+ else {
+ parent::CreateEmptyEditTable($IdList);
+ }
}
function CopyFromEditTable()
@@ -520,7 +545,7 @@
$idfield = "EmailMessageId";
$edit_table = $objSession->GetEditTable($this->SourceTable);
- $sql = "SELECT * FROM $edit_table";
+ $sql = "SELECT * FROM $edit_table WHERE LanguageId <> 0";
$rs = $this->adodbConnection->Execute($sql);
while($rs && !$rs->EOF)
{