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) {