Index: trunk/kernel/include/language.php
===================================================================
diff -u -r8097 -r8436
--- trunk/kernel/include/language.php (.../language.php) (revision 8097)
+++ trunk/kernel/include/language.php (.../language.php) (revision 8436)
@@ -12,7 +12,7 @@
if($id)
$this->LoadFromDatabase($id);
}
-
+
function LoadFromDatabase($Id)
{
global $Errors;
@@ -23,11 +23,11 @@
return false;
}
if($Id)
- {
+ {
$sql = sprintf("SELECT * FROM ".$this->tablename." WHERE ".$this->IdField()." = '%s'",$Id);
$result = $this->adodbConnection->Execute($sql);
if ($result === false)
- {
+ {
$Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"",get_class($this),"LoadFromDatabase");
return false;
}
@@ -95,7 +95,7 @@
$p = $this->GetItem($id);
$p->Set(array("Phrase","LanguageId","Translation","PhraseType", 'Module', 'LastChanged', 'LastChangeIP'),
array($Phrase,$LangId,$Translation,$Type, $Module, time(), $_SERVER['REMOTE_ADDR'] ));
- $p->Dirty();
+ $p->Dirty();
$p->Update();
return $p;
}
@@ -126,7 +126,7 @@
$sql='INSERT INTO '.GetTablePrefix().'Phrase SELECT Phrase, Translation, PhraseType, 0, LanguageId FROM '.$objSession->GetEditTable('Phrase').' WHERE PhraseId < 0';
$this->adodbConnection->Execute($sql);
return;
-
+
//$idlist = array();
$sql = "SELECT * FROM $edit_table";
//echo "performing mass create/update
";
@@ -136,11 +136,11 @@
while($rs && !$rs->EOF)
{
$data = $rs->fields;
- $c = $this->AddItemFromArray($data);
- $c->Dirty();
+ $c = $this->AddItemFromArray($data);
+ $c->Dirty();
if($data["PhraseId"]>0)
{
- $c->Update();
+ $c->Update();
}
else
{
@@ -151,17 +151,17 @@
$rs->MoveNext();
}
-
+
// Phrases deleted from temporary table are marked with LanguageId = 0, when saving we need to actually delete them all
// The idea was taken from Images edit by Kostja
$sql = "DELETE FROM ".$this->SourceTable." WHERE LanguageId = 0";
$this->adodbConnection->Execute($sql);
-
+
if( $GLOBALS['debuglevel'] ) echo $sql."
\n";
$this->adodbConnection->Execute($sql);
unset($GLOBALS['_CopyFromEditTable']);
}
-
+
function PurgeEditTable()
{
global $objSession;
@@ -172,18 +172,18 @@
function GetPhrase($Phrase,$Lang, $no_db=FALSE)
{
- $found = FALSE;
-
+ $found = FALSE;
+
foreach($this->Items as $i)
- {
+ {
if($i->Get("Phrase")==$Phrase && $i->Get("LanguageId")==$Lang)
{
$found = TRUE;
break;
}
}
if(!$found && !$no_db)
- {
+ {
$sql = "SELECT * FROM ".$this->SourceTable." WHERE Phrase='$Phrase' AND LanguageId='$Lang'";
//echo $sql."
\n";
$rs = $this->adodbConnection->Execute($sql);
@@ -219,12 +219,12 @@
function LoadFromDatabase($Id)
{
global $Errors;
-
+
if(!isset($Id))
{
$Errors->AddError("error.AppError",NULL,'Internal error: LoadFromDatabase id',"",get_class($this),"LoadFromDatabase");
return false;
- }
+ }
$sql = sprintf("SELECT * FROM ".$this->tablename." WHERE ".$this->IdField()." = '%s'",$Id);
$result = $this->adodbConnection->Execute($sql);
if ($result === false)
@@ -238,7 +238,7 @@
$this->SetFromArray($data);
$this->Clean();
return true;
- }
+ }
function Delete()
{
@@ -251,14 +251,14 @@
function ParseObject($element)
{
global $m_var_list,$m_var_list_update, $var_list,$var_list_update, $TemplateRoot;
-
+
//echo "
"; print_r($element); echo ""; $extra_attribs = ExtraAttributes($element->attributes); if(strtolower($element->name)==$this->TagPrefix) - { - $field = strtolower($element->attributes["_field"]); + { + $field = strtolower($element->attributes["_field"]); switch($field) - { + { case "id": $ret = $this->Get("LanguageId"); break; @@ -271,7 +271,7 @@ case "link": $t = $element->attributes["_template"]; if(strlen($t)) - { + { $var_list_update["t"] = $t; } else @@ -290,7 +290,7 @@ case "icon": $ret = ""; $icon = $this->Get("IconURL"); - + if(strlen($icon)>0) { $file = $TemplateRoot."/".$icon; @@ -342,12 +342,12 @@ } function SetPrimary($lang_id) - { + { $sql = "UPDATE ".$this->SourceTable." SET PrimaryLang=0 "; $this->adodbConnection->Execute($sql); $l = $this->GetItem($lang_id); - $l->Set('PrimaryLang', 1); - $l->Set('Enabled', 1); + $l->Set('PrimaryLang', 1); + $l->Set('Enabled', 1); $l->Update(); $this->m_Primary = $lang_id; } @@ -356,20 +356,20 @@ { static $skip_quering = false; if ($skip_quering) return $this->m_Primary; - + if(!$this->m_Primary) { $sql = 'SELECT '.$Field.' FROM '.$this->SourceTable.' WHERE PrimaryLang = 1'; $this->m_Primary = $this->adodbConnection->GetOne($sql); $skip_quering = true; } - + return $this->m_Primary; } - + function LoadAllLanguages() { - $sql = "SELECT * FROM ".$this->SourceTable; + $sql = "SELECT * FROM ".$this->SourceTable; $this->Query_Item($sql); } @@ -408,7 +408,7 @@ $new_id=$db->GetOne($sql); $db->Execute('UPDATE '.$this->SourceTable.' SET PrimaryLang = 1, Enabled = 1 WHERE LanguageId = '.$new_id); } - $l->Delete(); + $l->Delete(); } function CopyFromEditTable() @@ -424,9 +424,9 @@ while($rs && !$rs->EOF) { $data = $rs->fields; - $c = $this->AddItemFromArray($data); + $c = $this->AddItemFromArray($data); $c->Dirty(); - + if($c->Get('PrimaryLang') == 1) { $c->Set('Enabled',1); @@ -446,18 +446,18 @@ $id = $c->Get("LanguageId"); $phrase_table = $objSession->GetEditTable("Phrase"); $message_table = $objSession->GetEditTable("EmailMessage"); - $sql = "UPDATE $phrase_table SET LanguageId=$id WHERE LanguageId=$oldid"; + $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); + $sql = "UPDATE $message_table SET LanguageId=$id WHERE LanguageId=$oldid"; + $this->adodbConnection->Execute($sql); } $rs->MoveNext(); } unset($GLOBALS['_CopyFromEditTable']); } function ExportPhrases($file,$LangIds=NULL,$PhraseTypes=null) - { + { $output = array(); $this->Clear(); $where_parts = Array(); @@ -468,41 +468,41 @@ $objXML = new xml_doc(); $RootNode =& $objXML->getTagByID($objXML->createTag("LANGUAGES")); - + $ret = 0; if($this->NumItems()>0) - { + { $phrase_where = isset($PhraseTypes) ? ' AND PhraseType IN ('.$PhraseTypes.')' : ''; $event_where = isset($PhraseTypes) ? ' AND Type+1 IN ('.$PhraseTypes.')' : ''; foreach($this->Items as $l) - { + { $LangRoot =& $objXML->getTagByID($RootNode->addChild($objXML,"LANGUAGE",array("PackName"=>$l->Get("PackName")),"")); $LangRoot->addChild($objXML,"DATEFORMAT",array(),$l->Get("DateFormat")); $LangRoot->addChild($objXML,"TIMEFORMAT",array(),$l->Get("TimeFormat")); $LangRoot->addChild($objXML,"DECIMAL",array(),$l->Get("DecimalPoint")); $LangRoot->addChild($objXML,"THOUSANDS",array(),$l->Get("ThousandSep")); $LangRoot->addChild($objXML,"CHARSET",array(),$l->Get("Charset")); $PhraseRoot =& $objXML->getTagByID($LangRoot->addChild($objXML,"PHRASES")); - + $sql = "SELECT * FROM ".GetTablePrefix()."Phrase WHERE LanguageId=".$l->Get("LanguageId").$phrase_where; $rs=$this->adodbConnection->Execute($sql); while($rs && ! $rs->EOF) { $PhraseRoot->addChild($objXML,"PHRASE",array("Label"=>$rs->fields["Phrase"],"Type"=>$rs->fields["PhraseType"]),base64_encode($rs->fields["Translation"])); $rs->MoveNext(); } - + $EventRoot =& $objXML->getTagByID($LangRoot->addChild($objXML,"EVENTS")); $ev = GetTablePrefix()."Events"; $em = GetTablePrefix()."EmailMessage"; $sql = "SELECT $em.*,$ev.Event,$ev.Type FROM $em INNER JOIN $ev ON ($em.EventId=$ev.EventId) WHERE LanguageId=".$l->Get("LanguageId").$event_where; - $rs = $this->adodbConnection->Execute($sql); + $rs = $this->adodbConnection->Execute($sql); while($rs && !$rs->EOF) - { - $EventRoot->AddChild($objXML,"EVENT",array("MessageType"=>$rs->fields["MessageType"],"Event"=>$rs->fields["Event"],"Type"=>$rs->fields["Type"]),base64_encode($rs->fields["Template"])); + { + $EventRoot->AddChild($objXML,"EVENT",array("MessageType"=>$rs->fields["MessageType"],"Event"=>$rs->fields["Event"],"Type"=>$rs->fields["Type"]),base64_encode($rs->fields["Template"])); $rs->MoveNext(); - } + } } $objXML->generate(); $objXML->xml = str_replace("&","&",$objXML->xml); @@ -514,12 +514,12 @@ } function ReadImportTable($TableName, $SetEnabled=0, $Types="0,1", $OverwitePhrases=FALSE, $MaxInserts=100, $Offset=0) - { + { global $objPhraseList; - + if(!is_object($objPhraseList)) $objPhraseList = new clsPhraseList(); - + $PhraseList = new clsPhraseList(); $TypeArray = explode(",",$Types); $Inserts = 0; @@ -536,7 +536,7 @@ if(is_object($p)) { if($OverwitePhrases) - { + { //$p->debuglevel=1; $p->Set("Translation",$i->Get("Translation")); //echo $i->Get("Translation")."