Index: trunk/kernel/include/language.php =================================================================== --- trunk/kernel/include/language.php (revision 1343) +++ trunk/kernel/include/language.php (revision 1344) @@ -1,775 +1,775 @@ <?php class clsPhrase extends clsItemDB { function clsPhrase($id=NULL) { $this->clsItemDB(); $this->tablename = GetTablePrefix()."Phrase"; $this->id_field = "PhraseId"; $this->NoResourceId=1; if($id) $this->LoadFromDatabase($id); } function LoadFromDatabase($Id) { global $Errors; if(!isset($Id)) { $Errors->AddError("error.AppError",NULL,'Internal error: LoadFromDatabase id',"",get_class($this),"LoadFromDatabase"); 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; } $data = $result->fields; $this->SetFromArray($data); $this->Clean(); return true; } else return FALSE; } function AdminIcon() { global $imagesURL; return $imagesURL."/itemicons/icon16_language_var.gif"; } } class clsPhraseList extends clsItemCollection { var $Page; var $PerPageVar; function clsPhraseList() { $this->clsItemCollection(); $this->SourceTable = GetTablePrefix()."Phrase"; $this->classname = "clsPhrase"; $this->PerPageVar = "Perpage_Phrase"; $this->AdminSearchFields = array("p.Phrase","p.Translation"); } function &AddPhrase($Phrase,$LangId,$Translation,$Type) { $tmpphrase = $this->GetPhrase($Phrase, $LangId); if (!$tmpphrase) { $p = new clsPhrase(); $p->tablename = $this->SourceTable; $p->Set(array("Phrase","LanguageId","Translation","PhraseType"), array($Phrase,$LangId,$Translation,$Type)); $p->Dirty(); $p->Create(); return $p; } else { //echo 'phrase already exists with label <b>'.$Phrase.'</b><br>'; $add_error = "Error"; return $add_error; /* $tmpphrase->Set(array("Phrase","LanguageId","Translation","PhraseType"), array($Phrase,$LangId,$Translation,$Type)); $tmpphrase->Dirty(); $tmpphrase->Update(); return $tmpphrase;*/ } } function &EditPhrase($id,$Phrase,$LangId,$Translation,$Type) { $p = $this->GetItem($id); $p->Set(array("Phrase","LanguageId","Translation","PhraseType"), array($Phrase,$LangId,$Translation,$Type)); $p->Dirty(); $p->Update(); return $p; } function DeletePhrase($id) { $p = $this->GetItem($id); $p->Delete(); } function DeleteLanguage($LangId) { $sql = "DELETE FROM ".$this->SourceTable." WHERE LanguageId=$LangId"; if( $GLOBALS['debuglevel'] ) echo $sql."<br>\n"; $this->adodbConnection->Execute($sql); } function CopyFromEditTable() { global $objSession; $GLOBALS['_CopyFromEditTable']=1; $edit_table = $objSession->GetEditTable($this->SourceTable); $sql='REPLACE '.GetTablePrefix().'Phrase SELECT * FROM '.$objSession->GetEditTable('Phrase').' WHERE PhraseId > 0'; $this->adodbConnection->Execute($sql); $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<br>"; flush(); $this->Clear(); $rs = $this->adodbConnection->Execute($sql); while($rs && !$rs->EOF) { $data = $rs->fields; $c = $this->AddItemFromArray($data); $c->Dirty(); if($data["PhraseId"]>0) { $c->Update(); } else { $c->debuglevel=0; $c->UnsetIdField(); $c->Create(); } $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."<br>\n"; $this->adodbConnection->Execute($sql); unset($GLOBALS['_CopyFromEditTable']); } function PurgeEditTable() { global $objSession; $edit_table = $objSession->GetEditTable($this->SourceTable); $this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table"); } function GetPhrase($Phrase,$Lang, $no_db=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."<br>\n"; $rs = $this->adodbConnection->Execute($sql); if($rs && !$rs->EOF) { $data = $rs->fields; $i = $this->AddItemFromArray($data); } else $i = FALSE; } return $i; } } RegisterPrefix("clsLanguage","lang","kernel/include/language.php"); class clsLanguage extends clsParsedItem { function clsLanguage($id=NULL) { $this->clsParsedItem(); $this->tablename = GetTablePrefix()."Language"; $this->id_field = "LanguageId"; $this->NoResourceId=1; $this->TagPrefix="lang"; if($id) $this->LoadFromDatabase($id); } 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) { $Errors->AddError("error.DatabaseError",NULL,$this->adodbConnection->ErrorMsg(),"",get_class($this),"LoadFromDatabase"); return false; } $data = $result->fields; $this->SetFromArray($data); $this->Clean(); return true; } function Delete() { $p = new clsPhraseList(); //$id = $this->Get("LanguageId"); //$p->DeleteLanguage($id); parent::Delete(); } function ParseObject($element) { global $m_var_list,$m_var_list_update, $var_list,$var_list_update, $TemplateRoot; //echo "<PRE>"; print_r($element); echo "</PRE>"; $extra_attribs = ExtraAttributes($element->attributes); if(strtolower($element->name)==$this->TagPrefix) { $field = strtolower($element->attributes["_field"]); switch($field) { case "id": $ret = $this->Get("LanguageId"); break; case "packname": $ret = $this->Get("PackName"); break; case "localname": $ret = $this->Get("LocalName"); break; case "link": $t = $element->attributes["_template"]; if(strlen($t)) { $var_list_update["t"] = $t; } else $var_list_update["t"] = $var_list["t"]; $m_var_list_update["lang"] = $this->Get("LanguageId"); $ret = GetIndexURL(2)."?env=".BuildEnv(); unset($var_list_update["t"],$m_var_list_update["lang"]); break; case "primary": $ret = ""; if($this->Get("PrimaryLang")==1) $ret = "1"; break; case "icon": $ret = ""; - $icon = $this->Get("IconUrl"); + $icon = $this->Get("IconURL"); if(strlen($icon)>0) { $file = $TemplateRoot."/".$icon; //echo "File:$file <br>\n"; if(file_exists($file)) $ret = $icon; } if(!strlen($ret)) $ret = $element->attributes["_default"]; //echo $ret; break; }//switch }//if return $ret; } function AdminIcon() { global $imagesURL; $file = $imagesURL."/itemicons/icon16_language"; if($this->Get("PrimaryLang")==1) { $file .= "_primary.gif"; } else { if($this->Get("Enabled")==0) { $file .= "_disabled"; } $file .= ".gif"; } return $file; } } class clsLanguageList extends clsItemCollection { var $m_Primary; function clsLanguageList() { $this->clsItemCollection(); $this->SourceTable = GetTablePrefix()."Language"; $this->classname = "clsLanguage"; $this->AdminSearchFields = array("PackName","LocalName"); } 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->Update(); $this->m_Primary =$lang_id; } function GetPrimary($Field="LanguageId") { if(!$this->m_Primary) { $sql = "SELECT * FROM ".$this->SourceTable." WHERE PrimaryLang=1"; $rs = $this->adodbConnection->Execute($sql); if($rs && !$rs->EOF) { $l = $rs->fields[$Field]; } else $l = 0; $this->m_Primary=$l; } else $l = $this->m_Primary; return $l; } function LoadAllLanguages() { $sql = "SELECT * FROM ".$this->SourceTable; $this->Query_Item($sql); } function &AddLanguage($PackName,$LocalName,$Enabled,$Primary, $IconUrl="",$Datefmt,$TimeFmt,$Dec,$Thousand,$Charset) { $l = new clsLanguage(); $l->tablename = $this->SourceTable; - $l->Set(array("PackName","LocalName","Enabled","PrimaryLang","IconUrl","DateFormat","TimeFormat", + $l->Set(array("PackName","LocalName","Enabled","PrimaryLang","IconURL","DateFormat","TimeFormat", "DecimalPoint","ThousandSep",'Charset'), array($PackName,$LocalName,$Enabled,$Primary,$IconUrl,$Datefmt,$TimeFmt,$Dec,$Thousand,$Charset)); $l->Dirty(); $l->Create(); return $l; } function EditLanguage($id,$PackName,$LocalName,$Enabled,$Primary, $IconUrl="",$Datefmt,$TimeFmt,$Dec,$Thousand,$Charset) { $l = $this->GetItem($id); - $l->Set(array("PackName","LocalName","Enabled","PrimaryLang","IconUrl","DateFormat","TimeFormat", + $l->Set(array("PackName","LocalName","Enabled","PrimaryLang","IconURL","DateFormat","TimeFormat", "DecimalPoint","ThousandSep",'Charset'), array($PackName,$LocalName,$Enabled,$Primary,$IconUrl,$Datefmt,$TimeFmt,$Dec,$Thousand,$Charset)); $l->Update(); return $l; } function DeleteLanguage($id) { $l = $this->GetItem($id); if($l->Get('PrimaryLang')==1) { // in case if primary language is deleted, // set 1st available (min ID) from languages // table. $db =& GetADODBConnection(); $sql = 'SELECT MIN(LanguageId) FROM '.$this->SourceTable.' WHERE LanguageId <> '.$l->UniqueId(); $new_id=$db->GetOne($sql); $db->Execute('UPDATE '.$this->SourceTable.' SET PrimaryLang = 1, Enabled = 1 WHERE LanguageId = '.$new_id); } $l->Delete(); } function CopyFromEditTable() { global $objSession; $GLOBALS['_CopyFromEditTable']=1; $edit_table = $objSession->GetEditTable($this->SourceTable); $idlist = array(); $sql = "SELECT * FROM $edit_table"; $this->Clear(); $rs = $this->adodbConnection->Execute($sql); while($rs && !$rs->EOF) { $data = $rs->fields; $c = $this->AddItemFromArray($data); $c->Dirty(); if($c->Get('PrimaryLang') == 1) { $c->Set('Enabled',1); $sql = 'UPDATE '.$this->SourceTable.' SET PrimaryLang = 0'; $this->adodbConnection->Execute($sql); } if($data["LanguageId"]>0) { $c->Update(); } else { $oldid = $c->Get("LanguageId"); $c->UnsetIdField(); $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(); } unset($GLOBALS['_CopyFromEditTable']); } function ExportPhrases($file,$LangIds=NULL,$PhraseTypes=null) { $output = array(); $this->Clear(); $where_parts = Array(); if( isset($LangIds) ) $where_parts[] = 'LanguageId IN ('.$LangIds.')'; $where = count($where_parts) ? ' WHERE '.implode(' AND ', $where_parts) : ''; $this->Query_Item($sql = 'SELECT * FROM '.$this->SourceTable.$where); $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); 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"])); $rs->MoveNext(); } } $objXML->generate(); $objXML->xml = str_replace("&","&",$objXML->xml); $fp = @fopen($file,"w"); @fputs($fp,$objXML->xml); @fclose($fp); } return file_exists($file); } 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; $sql = "SELECT * FROM $TableName WHERE PhraseType IN ($Types) LIMIT $Offset,$MaxInserts"; //echo $sql; //$PhraseList->EnablePaging = false; $PhraseList->Query_Item($sql); if($PhraseList->NumItems()>0) { foreach($PhraseList->Items as $i) { $p = $objPhraseList->GetPhrase($i->Get("Phrase"),$i->Get("LanguageId")); //echo "<pre>"; print_r($p); echo "</pre>"; if(is_object($p)) { if($OverwitePhrases) { //$p->debuglevel=1; $p->Set("Translation",$i->Get("Translation")); //echo $i->Get("Translation")."<br>"; $p->Set("PhraseType",$i->Get("PhraseType")); $p->Dirty(); $p->Update(); } } else { //$i->debuglevel=1; $i->Create(); } $Inserts++; } } $Offset = $Offset + $Inserts; return $Offset; } function PurgeEditTable() { global $objSession; $edit_table = $objSession->GetEditTable($this->SourceTable); $this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table"); } } class clsLanguageCache { var $m_CachedLanguage; var $FullLoad = FALSE; var $cache; var $adodbConnection; var $TemplateName; var $TemplateCache; var $TemplateDate; var $ThemeId; function clsLanguageCache($LangId=NULL) { global $objConfig; $this->m_CachedLanguage = $LangId; $this->adodbConnection =&GetADODBConnection(); $this->Clear(); } function Clear() { unset($this->cache); $this->cache = array(); $this->TemplateCache = array(); } function LoadLanguage($LangId,$Type) { $this->Clear(); $this->m_CachedLanguage = $LangId; $this->FullLoad = TRUE; $sql = "SELECT Phrase,Translation FROM ".GetTablePrefix()."Phrase WHERE LanguageId=$LangId AND PhraseType=$Type"; $rs = $this->adodbConnection->Execute($sql); while($rs && !$rs->EOF) { $this->cache[$rs->fields["Phrase"]] = $rs->fields["Translation"]; if(ADODB_EXTENSION>0) { adodb_movenext($rs); } else $rs->MoveNext(); } return (count($this->cache)>0); } function GetPhrase($Phrase,$Lang) { $t = ""; $sql = "SELECT PhraseId,Phrase,Translation FROM ".GetTablePrefix()."Phrase WHERE Phrase='$Phrase' AND LanguageId='$Lang'"; $rs = $this->adodbConnection->Execute($sql); if($rs && !$rs->EOF) { $t = $rs->fields["Translation"]; $this->TemplateCache[] = $rs->fields["PhraseId"]; } return $t; } function LoadTemplateCache($t, $timeout, $ThemeId) { $this->TemplateName = $t; $this->TemplateDate = 0; $this->ThemeId = $ThemeId; if($timeout > 0) { $sql = "SELECT * FROM ".GetTablePrefix()."PhraseCache WHERE Template='$t' AND ThemeId=$ThemeId"; $rs = $this->adodbConnection->Execute($sql); if($rs && !$rs->EOF) { $this->TemplateCache = explode(',', $rs->fields['PhraseList']); $t_length = strlen($rs->fields['PhraseList']) ? 1 : 0; $this->TemplateDate = $rs->fields["CacheDate"]; if(date("U") < $this->TemplateDate + $timeout || !$t_length) { $this->TemplateCache = Array(); $this->TemplateDate=0; } } else $this->TemplateDate = -1; } else $this->TemplateDate=-2; } function LoadCachedVars($LangId) { if(count($this->TemplateCache)) { $values = implode(",",$this->TemplateCache); $this->FullLoad = FALSE; $this->m_CachedLanguage = $LangId; $sql = "SELECT Phrase,Translation FROM ".GetTablePrefix()."Phrase WHERE LanguageId=$LangId AND PhraseId IN ($values)"; $rs = $this->adodbConnection->Execute($sql); while($rs && !$rs->EOF) { $this->cache[$rs->fields["Phrase"]] = $rs->fields["Translation"]; if( defined('ADODB_EXTENSION') && constant('ADODB_EXTENSION') > 0 ) adodb_movenext($rs); else $rs->MoveNext(); } } } function SaveTemplateCache() { if($this->TemplateDate==0 || $this->TemplateDate==-1) { $value = implode(",",$this->TemplateCache); if($this->TemplateDate==0) { $sql = "UPDATE ".GetTablePrefix()."PhraseCache SET PhraseList='$value',CacheDate=".date("U"); $sql .=" WHERE Template='".$this->TemplateName."' AND ThemeId=".$this->ThemeId; } else { $sql = "INSERT IGNORE INTO ".GetTablePrefix()."PhraseCache (Template,PhraseList,CacheDate,ThemeId) VALUES ('"; $sql .= $this->TemplateName."','$value',".date("U").",".$this->ThemeId.")"; } $this->adodbConnection->Execute($sql); } } //This function returns a translation for a particular phrase //if translation is not found then !phrase! is returned. function GetTranslation($phrase,$language) { global $objSession, $LogPhraseLookups,$LangList, $MissingList; $missing = FALSE; if(!$this->FullLoad) { $this->RefreshCacheStatus($language); if(!isset($this->cache[$phrase])) { $this->cache[$phrase] = $this->GetPhrase($phrase,$language); $translation = $this->cache[$phrase]; //$translation = ""; } else $translation = $this->cache[$phrase]; } else { $translation = $this->cache[$phrase]; } if(!strlen($translation)) { $missing = TRUE; if($language != 1) { $translation=$this->GetTranslation($phrase,1); } else { $translation = "!".$phrase."!"; } } if($LogPhraseLookups==TRUE) { //if(!is_array($LangList)) // $LangList = array(); //$LangList[$phrase] = $LangList; if($missing) { if(!is_array($MissingList)) { $MissingList = array(); } if(!in_array($phrase,$MissingList)) $MissingList[] = $phrase; } } return $translation; } //This function checks if cache is current for current language //if not clear it out function RefreshCacheStatus($language) { //First remember what language we are caching // if(!isset($this->m_CachedLanguage)) // $this->m_CachedLanguage = $language; //If this is the different language, then clear the cache // if($this->m_CachedLanguage != $language) // { // $this->Clear(); // $this->m_CachedLanguage = $language; // } } } ?> Property changes on: trunk/kernel/include/language.php ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.18 \ No newline at end of property +1.19 \ No newline at end of property Index: trunk/admin/config/addlang.php =================================================================== --- trunk/admin/config/addlang.php (revision 1343) +++ trunk/admin/config/addlang.php (revision 1344) @@ -1,340 +1,340 @@ <?php ############################################################## ##In-portal ## ############################################################## ## In-portal ## ## Intechnic Corporation ## ## All Rights Reserved, 1998-2002 ## ## ## ## No portion of this code may be copied, reproduced or ## ## otherwise redistributed without proper written ## ## consent of Intechnic Corporation. Violation will ## ## result in revocation of the license and support ## ## privileges along maximum prosecution allowed by law. ## ############################################################## if(!strlen($pathtoroot)) { $path=dirname(realpath(__FILE__)); if(strlen($path)) { /* determine the OS type for path parsing */ $pos = strpos($path,":"); if ($pos === false) { $gOS_TYPE="unix"; $pathchar = "/"; } else { $gOS_TYPE="win"; $pathchar="\\"; } $p = $path.$pathchar; /*Start looking for the root flag file */ while(!strlen($pathtoroot) && strlen($p)) { $sub = substr($p,strlen($pathchar)*-1); if($sub==$pathchar) { $filename = $p."root.flg"; } else $filename = $p.$pathchar."root.flg"; if(file_exists($filename)) { $pathtoroot = $p; } else { $parent = realpath($p.$pathchar."..".$pathchar); if($parent!=$p) { $p = $parent; } else $p = ""; } } if(!strlen($pathtoroot)) $pathtoroot = ".".$pathchar; } else { $pathtoroot = ".".$pathchar; } } $sub = substr($pathtoroot,strlen($pathchar)*-1); if($sub!=$pathchar) { $pathtoroot = $pathtoroot.$pathchar; } //echo $pathtoroot; //print_r($_GET); //print_r($_POST); require_once($pathtoroot."kernel/startup.php"); //admin only util /* set the destination of the image upload, relative to the root path */ $DestDir = "kernel/images/"; $rootURL="http://".ThisDomain().$objConfig->Get("Site_Path"); $admin = $objConfig->Get("AdminDirectory"); if(!strlen($admin)) $admin = "admin"; $localURL=$rootURL."kernel/"; $adminURL = $rootURL.$admin; $imagesURL = $adminURL."/images"; $browseURL = $adminURL."/browse"; $pathtolocal = $pathtoroot."kernel/"; require_once ($pathtoroot.$admin."/include/elements.php"); require_once ($pathtoroot."kernel/admin/include/navmenu.php"); require_once ($pathtolocal."admin/include/navmenu.php"); require_once($pathtoroot.$admin."/browse/toolbar.php"); require_once($pathtoroot.$admin."/listview/listview.php"); $m = GetModuleArray(); foreach($m as $key=>$value) { $path = $pathtoroot. $value."admin/include/parser.php"; if(file_exists($path)) { include_once($path); } } $objMessages = new clsEmailMessageList(); unset($objEditItems); $objEditItems = new clsLanguageList(); $objEditItems->SourceTable = $objSession->GetEditTable("Language"); $objEditItems->EnablePaging = FALSE; $objPhraseList = new clsPhraseList(); $objPhraseList->EnablePaging = FALSE; if( GetVar('new') ) { $c = new clsLanguage(NULL); $c->Set("DecimalPoint","."); $c->Set("ThousandSep",","); $c->Set("DateFormat","m-d-Y"); $c->Set("TimeFormat","g:i:s a"); $en = 0; $action = "m_lang_add"; $name = prompt_language("la_Text_New"); $objLanguages->CreateEmptyEditTable("LanguageId"); $objPhraseList->CreateEmptyEditTable("PhraseId"); $objMessages->CreateEmptyEditTable($_POST["itemlist"]); } else { $en = (int)$_GET["en"]; if (isset($_POST["itemlist"])) { $objLanguages->CopyToEditTable("LanguageId",$_POST["itemlist"]); $objPhraseList->CopyToEditTable("LanguageId",$_POST["itemlist"]); $objMessages->CopyToEditTable("LanguageId",$_POST["itemlist"]); } $objEditItems->Query_Item("SELECT * FROM ".$objEditItems->SourceTable); $itemcount=$objEditItems->NumItems(); $c = $objEditItems->GetItemByIndex($en); if($itemcount>1) { if ($en+1 == $itemcount) $en_next = -1; else $en_next = $en+1; if ($en == 0) $en_prev = -1; else $en_prev = $en-1; } $action = "m_lang_edit"; $name = $c->Get("LocalName"); } $section = "in-portal:lang_general"; $envar = "env=".BuildEnv(); $title = $title = GetTitle("la_Text_Pack", "la_tab_General", $c->Get('LanguageId'), $c->Get('LocalName'));///prompt_language("la_Text_Configuration")." - ".$name."' ".prompt_language("la_Text_Pack")." - ".prompt_language("la_tab_General"); //Display header $sec = $objSections->GetSection($section); $objListToolbar = new clsToolBar(); $objListToolbar->Add("img_save", "la_Save","#","swap('img_save','toolbar/tool_select_f2.gif');", "swap('img_save', 'toolbar/tool_select.gif');","edit_submit('language','LangEditStatus','".$admin."/config/config_lang.php',1);",$imagesURL."/toolbar/tool_select.gif"); $objListToolbar->Add("img_cancel", "la_Cancel","#","swap('img_cancel','toolbar/tool_cancel_f2.gif');", "swap('img_cancel', 'toolbar/tool_cancel.gif');","edit_submit('language','LangEditStatus','".$admin."/config/config_lang.php',2);",$imagesURL."/toolbar/tool_cancel.gif"); if ( isset($en_prev) || isset($en_next) ) { $url = $admin."/config/addlang.php"; $objListToolbar->Add("divider"); $form = "language"; if($en_prev>-1) { $MouseOver="swap('moveleft','toolbar/tool_prev_f2.gif');"; $MouseOut="swap('moveleft', 'toolbar/tool_prev.gif');"; $onClick= $sec->Get("onclick"); $var="env=".BuildEnv()."&en=$en_prev"; $link = "javascript:edit_submit('$form','$url',0,'$var');"; $objListToolbar->Add("moveleft",admin_language("la_ToolTip_Previous")." ".admin_language("la_Text_Category"),$link,$MouseOver,$MouseOut,"","toolbar/tool_prev.gif"); } else { $MouseOver=""; $MouseOut=""; $onClick=""; $link="#"; $objListToolbar->Add("moveleft",admin_language("la_ToolTip_Previous")." ".admin_language("la_Text_Category"),"#","","","","toolbar/tool_prev_f3.gif"); } if($en_next>-1) { $MouseOver="swap('moveright','toolbar/tool_next_f2.gif');"; $MouseOut="swap('moveright', 'toolbar/tool_next.gif');"; $onClick=$sec->Get("onclick"); $var="env=".BuildEnv()."&en=$en_next"; $link = "javascript:edit_submit('$form','$url',0,'$var');"; $objListToolbar->Add("moveright",admin_language("la_ToolTip_Next")." ".admin_language("la_Text_Category"),$link,$MouseOver,$MouseOut,"","toolbar/tool_next.gif"); } else { $objListToolbar->Add("moveright",admin_language("la_ToolTip_Next")." ".admin_language("la_Text_Category"),$link,$MouseOver,$MouseOut,"","toolbar/tool_next_f3.gif"); } } define('FORCE_CHARSET', $c->Get("Charset") ); int_header($objListToolbar,NULL,$title); if ($objSession->GetVariable("HasChanges") == 1) { ?> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="toolbar"> <tr> <td valign="top"> <?php int_hint_red(admin_language("la_Warning_Save_Item")); ?> </td> </tr> </table> <?php } ?> <FORM enctype="multipart/form-data" ID="language" NAME="language" method="POST" ACTION=""> <TABLE cellSpacing="0" cellPadding="2" width="100%" class="tableborder"> <?php int_subsection_title(prompt_language("la_tab_General")); ?> <?php $c->Data=inp_htmlize($c->Data);?> <TR <?php int_table_color(); ?> > <TD class="text"><?php echo prompt_language("la_prompt_LanguageId"); ?></TD> <TD><?php echo $c->Get("LanguageId"); ?></TD> <TD></TD> </TR> <TR <?php int_table_color(); ?> > <TD><SPAN id="prompt_packname" class="text"><?php echo prompt_language("la_prompt_PackName"); ?></SPAN></TD> <TD><input type=text ValidationType="exists" tabindex="1" NAME="packname" VALUE="<?php echo $c->Get("PackName"); ?>"></TD> <TD></TD> </TR> <TR <?php int_table_color(); ?> > <TD><SPAN id="prompt_localname"><?php echo prompt_language("la_prompt_LocalName"); ?></SPAN></TD> <TD><input type=text ValidationType="exists" tabindex="2" NAME="localname" VALUE="<?php echo $c->Get("LocalName"); ?>"></TD> <TD></TD> </TR> <!-- charset: begin --> <TR <?php int_table_color(); ?> > <TD><SPAN id="prompt_theme_charset"><?php echo prompt_language("la_prompt_charset"); ?></SPAN></TD> <TD><input type=text NAME="charset" tabindex="3" VALUE="<?php echo $c->Get("Charset"); ?>"></TD> <TD></TD> </TR> <!-- charset: end --> <TR <?php int_table_color(); ?> > <TD><SPAN id="prompt_theme_icon"><?php echo prompt_language("la_prompt_icon_url"); ?></SPAN></TD> - <TD><input type=text NAME="icon" tabindex="3" VALUE="<?php echo $c->Get("IconUrl"); ?>"></TD> + <TD><input type=text NAME="icon" tabindex="3" VALUE="<?php echo $c->Get("IconURL"); ?>"></TD> <TD></TD> </TR> <TR <?php int_table_color(); ?> > <TD><SPAN id="prompt_dateformat"><?php echo prompt_language("la_prompt_lang_dateformat"); ?></SPAN></TD> <TD><input type=text NAME="date_format" tabindex="4" VALUE="<?php echo $c->Get("DateFormat"); ?>"> <?php if(strlen($c->Get("DateFormat"))) echo prompt_language("la_Text_example").":".date($c->Get("DateFormat")); ?> </TD> <TD></TD> </TR> <TR <?php int_table_color(); ?> > <TD><SPAN id="prompt_timeformat"><?php echo prompt_language("la_prompt_lang_timeformat"); ?></SPAN></TD> <TD><input type=text NAME="time_format" tabindex="5" VALUE="<?php echo $c->Get("TimeFormat"); ?>"> <?php if(strlen($c->Get("TimeFormat"))) echo prompt_language("la_Text_example").":".date($c->Get("TimeFormat")); ?> </TD> <TD></TD> </TR> <TR <?php int_table_color(); ?> > <TD><SPAN id="prompt_lang_decimal"><?php echo prompt_language("la_prompt_decimal"); ?></SPAN></TD> <TD><input type=text ValidationType="exists" tabindex="6" NAME="decimal" VALUE="<?php echo $c->Get("DecimalPoint"); ?>"></TD> <TD></TD> </TR> <TR <?php int_table_color(); ?> > <TD><SPAN id="prompt_lang_thousand"><?php echo prompt_language("la_prompt_thousand"); ?></SPAN></TD> <TD><input type=text NAME="thousand" tabindex="7" VALUE="<?php echo $c->Get("ThousandSep"); ?>"></TD> <TD></TD> </TR> <tr <?php int_table_color(); ?>> <td valign="top" class="text"><?php echo prompt_language("la_prompt_Enabled"); ?></td> <td> <input type="checkbox" name="enabled" tabindex="8" class="text" value="1" <?php if($c->Get("Enabled") == 1) echo "checked"; ?>> </td> <td class="text"> </td> </tr> <tr <?php int_table_color(); ?>> <td valign="top" class="text"><?php echo prompt_language("la_prompt_Primary"); ?></td> <td> <input type="checkbox" name="primary" tabindex="9" class="text" value="1" <?php if($c->Get("PrimaryLang") == 1) echo "checked"; ?>> </td> <td class="text"> </td> </tr> <tr <?php int_table_color(); ?>> <td valign="top" class="text"><?php echo prompt_language("la_prompt_CopyLabels"); ?></td> <td> <input type="checkbox" name="importlabels" tabindex="10" class="text" value="1"> <SELECT NAME="srcpack"> <OPTION VALUE="0">--<?php echo prompt_language("la_prompt_Select_Source"); ?> <?php $ado = &GetADODBConnection(); $sql = "SELECT * FROM ".GetTablePrefix()."Language"; $rs = $ado->Execute($sql); while($rs && !$rs->EOF) { echo "<OPTION VALUE=\"".$rs->fields["LanguageId"]."\">".$rs->fields["PackName"]."\n"; $rs->MoveNext(); } ?> </SELECT> </td> <td class="text"> </td> <input type=hidden NAME="Action" VALUE="<?php echo $action; ?>"> <INPUT TYPE="hidden" NAME="LanguageId" VALUE="<?php echo $c->Get("LanguageId"); ?>"> <input type="hidden" name="LangEditStatus" VALUE="0"> </tr> </TABLE> </FORM> <!-- CODE FOR VIEW MENU --> <form method="post" action="<?php echo $_SERVER["PHP_SELF"]."?".$envar; ?>" name="viewmenu"> <input type="hidden" name="fieldname" value=""> <input type="hidden" name="varvalue" value=""> <input type="hidden" name="varvalue2" value=""> <input type="hidden" name="Action" value=""> </form> <!-- END CODE--> <?php int_footer(); ?> \ No newline at end of file Property changes on: trunk/admin/config/addlang.php ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.10 \ No newline at end of property +1.11 \ No newline at end of property