Index: trunk/admin/install.php
===================================================================
diff -u -r557 -r561
--- trunk/admin/install.php (.../install.php) (revision 557)
+++ trunk/admin/install.php (.../install.php) (revision 561)
@@ -1,7 +1,6 @@
GetIDField();
@@ -1163,6 +1163,7 @@
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo htmlentities($insert,ENT_NOQUOTES)."
\n";
$this->adodbConnection->Execute($insert);
+ //echo $insert."
";
}
function CopyFromEditTable($idfield = null)
Index: trunk/kernel/include/language.php
===================================================================
diff -u -r534 -r561
--- trunk/kernel/include/language.php (.../language.php) (revision 534)
+++ trunk/kernel/include/language.php (.../language.php) (revision 561)
@@ -419,8 +419,11 @@
$c->Create();
$id = $c->Get("LanguageId");
$phrase_table = $objSession->GetEditTable("Phrase");
+ $message_table = $objSession->GetEditTable("EmailMessage");
$sql = "UPDATE $phrase_table SET LanguageId=$id WHERE LanguageId=$oldid";
$this->adodbConnection->Execute($sql);
+ $sql = "UPDATE $message_table SET LanguageId=$id WHERE LanguageId=$oldid";
+ $this->adodbConnection->Execute($sql);
}
$rs->MoveNext();
}
Index: trunk/admin/category/addcategory_custom.php
===================================================================
diff -u -r553 -r561
--- trunk/admin/category/addcategory_custom.php (.../addcategory_custom.php) (revision 553)
+++ trunk/admin/category/addcategory_custom.php (.../addcategory_custom.php) (revision 561)
@@ -240,7 +240,7 @@
-
-
+
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)
{
Index: trunk/kernel/action.php
===================================================================
diff -u -r534 -r561
--- trunk/kernel/action.php (.../action.php) (revision 534)
+++ trunk/kernel/action.php (.../action.php) (revision 561)
@@ -837,7 +837,6 @@
break;
case "m_edit_custom_data":
-
$id = $_POST["ItemId"];
$objEditData = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData"));
$objEditData->SetTable('edit');
@@ -1240,7 +1239,8 @@
$ado->Execute($sql);
if($_POST["importlabels"]==1 && $_POST["srcpack"]>0)
{
- $sql = "SELECT * FROM ".GetTablePrefix()."Phrase WHERE LanguageId=".$_POST["srcpack"];
+ // Phrase import
+ $sql = "SELECT * FROM ".GetTablePrefix()."Phrase WHERE LanguageId=".$_POST["srcpack"];
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo $sql."
\n";
@@ -1265,6 +1265,50 @@
$MinId--;
$rs->MoveNext();
}
+
+ // Events import
+ $sql = "SELECT * FROM ".GetTablePrefix()."EmailMessage WHERE LanguageId=".$_POST["srcpack"];
+ if($objSession->HasSystemPermission("DEBUG.LIST"))
+ echo $sql."
\n";
+
+ $rs = $ado->Execute($sql);
+
+ $eList = new clsEmailMessageList();
+ //$eList->SourceTable = $objSession->GetEditTable("EmailMessage");
+
+ if (!$l->TableExists($objSession->GetEditTable("EmailMessage"))) {
+ $eList->CreateEmptyEditTable("EmailMessageId", true);
+ $eList->SourceTable = $objSession->GetEditTable("EmailMessage");
+ }
+ else {
+ $eList->SourceTable = $objSession->GetEditTable("EmailMessage");
+ }
+
+ $sql = "SELECT MIN(EmailMessageId) as MinId FROM ".$eList->SourceTable;
+ $as = $ado->Execute($sql);
+
+ if($as && !$as->EOF)
+ {
+ $MinId = (int)$as->fields["MinId"];
+ }
+ else {
+ $MinId = 0;
+ }
+
+ $MinId--;
+
+ while($rs && !$rs->EOF)
+ {
+ $data = $rs->fields;
+ $eList->AddEmailEvent($data["Template"], $data["MessageType"], $NewId, $data["EventId"]);
+
+ $sql = "UPDATE ".$eList->SourceTable." SET EmailMessageId=$MinId WHERE EmailMessageId=0 LIMIT 1";
+ $ado->Execute($sql);
+
+ $MinId--;
+
+ $rs->MoveNext();
+ }
}
break;
case "m_lang_export":
@@ -1316,6 +1360,51 @@
$rs->MoveNext();
}
unset($plist);
+
+ // Events import
+ $sql = "SELECT * FROM ".GetTablePrefix()."EmailMessage WHERE LanguageId=".$_POST["srcpack"];
+ if($objSession->HasSystemPermission("DEBUG.LIST"))
+ echo $sql."
\n";
+
+ $rs = $ado->Execute($sql);
+
+ $eList = new clsEmailMessageList();
+ //$eList->SourceTable = $objSession->GetEditTable("EmailMessage");
+
+ if (!$l->TableExists($objSession->GetEditTable("EmailMessage"))) {
+ $eList->CreateEmptyEditTable("EmailMessageId", true);
+ $eList->SourceTable = $objSession->GetEditTable("EmailMessage");
+ }
+ else {
+ $eList->SourceTable = $objSession->GetEditTable("EmailMessage");
+ }
+
+ $sql = "SELECT MIN(EmailMessageId) as MinId FROM ".$eList->SourceTable;
+ $as = $ado->Execute($sql);
+
+ if($as && !$as->EOF)
+ {
+ $MinId = (int)$as->fields["MinId"];
+ }
+ else {
+ $MinId = 0;
+ }
+
+ $MinId--;
+
+ while($rs && !$rs->EOF)
+ {
+ $data = $rs->fields;
+ $eList->AddEmailEvent($data["Template"], $data["MessageType"], $_POST["LanguageId"], $data["EventId"]);
+
+ $sql = "UPDATE ".$eList->SourceTable." SET EmailMessageId=$MinId WHERE EmailMessageId=0 LIMIT 1";
+ $ado->Execute($sql);
+
+ $MinId--;
+
+ $rs->MoveNext();
+ }
+ unset($eList);
}
break;
@@ -1324,12 +1413,15 @@
if (isset($_POST["itemlist"]))
{
$Phrases = new clsPhraseList();
+ $Messages = new clsEmailMessageList();
foreach($_POST["itemlist"] as $id)
{
$objLanguages->DeleteLanguage($id);
$Phrases->DeleteLanguage($id);
+ $Messages->DeleteLanguage($id);
}
unset($Phrases);
+ unset($Messages);
}
break;
@@ -2250,16 +2342,17 @@
/* Language Edit */
if( GetVar('LangEditStatus') == 1 )
{
- $Messages = new clsEmailMessageList();
- $Messages->CopyFromEditTable();
- $Messages->Clear();
$objLanguages->CopyFromEditTable();
$objLanguages->Clear();
$Phrases = new clsPhraseList();
$Phrases->CopyFromEditTable();
$Phrases->Clear();
$Phrases->PurgeEditTable();
+
+ $Messages = new clsEmailMessageList();
+ $Messages->CopyFromEditTable();
+ $Messages->Clear();
}
if( GetVar('LangEditStatus') == 2 )
{
Index: trunk/kernel/include/itemdb.php
===================================================================
diff -u -r534 -r561
--- trunk/kernel/include/itemdb.php (.../itemdb.php) (revision 534)
+++ trunk/kernel/include/itemdb.php (.../itemdb.php) (revision 561)
@@ -378,7 +378,7 @@
echo $sql."
\n";
if ($this->adodbConnection->Execute($sql) === false)
- {
+ {
$Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"",get_class($this),"Create");
return false;
}