Index: trunk/kernel/include/config.php =================================================================== diff -u -N -r676 -r912 --- trunk/kernel/include/config.php (.../config.php) (revision 676) +++ trunk/kernel/include/config.php (.../config.php) (revision 912) @@ -1,4 +1,5 @@ Connect($db_info['DBHost'],$db_info['DBUser'],$db_info['DBUserPassword'],$db_info['DBName']); + + $sub_folder=$tool_db->GetOne('SELECT VariableValue FROM '.TABLE_PREFIX.'ConfigurationValues WHERE VariableName=\'Site_Path\''); + define('BASE_PATH', $_SERVER['DOCUMENT_ROOT'].rtrim($sub_folder,'/')); + unset($sub_folder); + + /** + * Same as print_r, but for html pages + * + * @param string $s + * @param bool $returnResult + * @return string + * @access public + */ + function tool_printPre($s,$returnResult=false) + { + $ret='
'.print_r($s,true).''; + if($returnResult) return $ret; + echo $ret; + } + +?> \ No newline at end of file Index: trunk/tools/phrase_locator.php =================================================================== diff -u -N -r907 -r912 --- trunk/tools/phrase_locator.php (.../phrase_locator.php) (revision 907) +++ trunk/tools/phrase_locator.php (.../phrase_locator.php) (revision 912) @@ -1,34 +1,26 @@ GetCol($sql); + foreach ($db_phrases as $phrase) { - unset($phrases[ $row['Phrase'] ]); // phrase is translated + unset($phrases[$phrase]); // phrase is translated } - mysql_free_result($rs); $ret = Array(); foreach($phrases as $phrase => $dummy_value) { $ret[] = $phrase; } - print_pre($ret); + tool_printPre($ret); - if( unlink($dir.'new_phrases.txt') ) + if( unlink(BASE_PATH.'/new_phrases.txt') ) { - $fp = fopen($dir.'new_phrases.txt','w'); + $fp = fopen(BASE_PATH.'/new_phrases.txt','w'); foreach ($ret as $phrase) { fwrite($fp,$phrase."\n"); @@ -80,9 +68,4 @@ { die('Can\'t create file new_phrases.txt'); } - - function print_pre($s) - { - echo '
',print_r($s,true),''; - } ?> \ No newline at end of file Index: trunk/tools/flush_tables.php =================================================================== diff -u -N --- trunk/tools/flush_tables.php (revision 0) +++ trunk/tools/flush_tables.php (revision 912) @@ -0,0 +1,27 @@ +GetCol('SHOW TABLES LIKE \''.TABLE_PREFIX.'%\''); + foreach($tables as $table) + { + $tool_db->Query($sql_prefix.' '.$table); + } + +?> \ No newline at end of file Index: trunk/tools/xml2txt.php =================================================================== diff -u -N --- trunk/tools/xml2txt.php (revision 0) +++ trunk/tools/xml2txt.php (revision 912) @@ -0,0 +1,70 @@ +'DateFormat','TIMEFORMAT'=>'TimeFormat', + 'DECIMAL'=>'Decimal','THOUSANDS'=>'Thousands', + 'CHARSET'=>'Charset'); + + $fp = fopen(SRC_NAME,'r'); + $xml = fread($fp,filesize(SRC_NAME)); + fclose($fp); + + $objInXML = new xml_doc($xml); + unset($xml); + $objInXML->parse(); + $objInXML->getTag(0,$name,$attribs,$contents,$tags); + + $fp=fopen(DST_NAME,'w'); + + foreach($tags as $t) + { + $LangRoot =& $objInXML->getTagByID($t); + fwrite($fp,'PackName='.$LangRoot->attributes['PACKNAME']."\n"); + + foreach($LangRoot->children as $tag) + { + switch($tag->name) + { + case 'PHRASES': + $tag_index = 0; $tag_count = count($tag->children); + while($tag_index < $tag_count) + { + $inner_tag =& $tag->children[$tag_index]; + $Phrase = $inner_tag->attributes['LABEL']; + $Translation = $inner_tag->contents; + $PhraseType = $inner_tag->attributes['TYPE']; + fwrite($fp,'P_='.$Phrase.';'.$Translation.';'.$PhraseType."\n"); + $tag_index++; + } + break; + + case 'EVENTS': + $tag_index = 0; $tag_count = count($tag->children); + while($tag_index < $tag_count) + { + $inner_tag =& $tag->children[$tag_index]; + $event = $inner_tag->attributes["EVENT"]; + $MsgType = strtolower($inner_tag->attributes["MESSAGETYPE"]); + $template = $inner_tag->contents; + $Type = $inner_tag->attributes["TYPE"]; + + fwrite($fp,'E_='.$event.';'.$template.';'.$Type.';'.$MsgType."\n"); + $tag_index++; + } + break; + + default: + fwrite($fp,$xml2txt_map[$tag->name].'='.base64_encode($tag->contents)."\n"); + break; + } + } + } + + fclose($fp); +?> \ No newline at end of file Index: trunk/kernel/include/language.php =================================================================== diff -u -N -r898 -r912 --- trunk/kernel/include/language.php (.../language.php) (revision 898) +++ trunk/kernel/include/language.php (.../language.php) (revision 912) @@ -374,13 +374,13 @@ $this->Query_Item($sql); } - function &AddLanguage($PackName,$LocalName,$Enabled,$Primary, $IconUrl="",$Datefmt,$TimeFmt,$Dec,$Thousand) + 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", - "DecimalPoint","ThousandSep"), - array($PackName,$LocalName,$Enabled,$Primary,$IconUrl,$Datefmt,$TimeFmt,$Dec,$Thousand)); + "DecimalPoint","ThousandSep",'Charset'), + array($PackName,$LocalName,$Enabled,$Primary,$IconUrl,$Datefmt,$TimeFmt,$Dec,$Thousand,$Charset)); $l->Dirty(); $l->Create(); return $l; Index: trunk/kernel/include/db.class.php =================================================================== diff -u -N --- trunk/kernel/include/db.class.php (revision 0) +++ trunk/kernel/include/db.class.php (revision 912) @@ -0,0 +1,400 @@ +dbType = $dbType; + $this->initMetaFunctions(); + if(!$errorHandler) + { + $this->errorHandler = Array(&$this,'handleError'); + } + } + + /** + * Set's custom error + * + * @param int $code + * @param string $msg + * @access public + */ + function setError($code,$msg) + { + $this->errorCode=$code; + $this->errorMessage=$msg; + } + + /** + * Checks if previous query execution + * raised an error. + * + * @return bool + * @access public + */ + function hasError() + { + return !($this->errorCode == 0); + } + + /** + * Caches function specific to requested + * db type + * + * @access private + */ + function initMetaFunctions() + { + $ret = Array(); + switch($this->dbType) + { + case 'mysql': + $ret = Array(); // only define functions, that name differs from "dbType_