Index: trunk/admin/install.php =================================================================== diff -u -r1633 -r1649 --- trunk/admin/install.php (.../install.php) (revision 1633) +++ trunk/admin/install.php (.../install.php) (revision 1649) @@ -1,4 +1,5 @@ Execute($sql); - - $sql = "CREATE TABLE $EventTable SELECT Template,MessageType,EventId,LanguageId FROM ".$g_TablePrefix."EmailMessage WHERE EmailMessageId=-1"; - $ado->Execute($sql); - $sql = "SELECT EventId,Event,Type FROM ".$g_TablePrefix."Events"; - $rs = $ado->Execute($sql); - $Events = Array(); - while($rs && !$rs->EOF) + // KERNEL 4 INIT: BEGIN + define('FULL_PATH', realpath(dirname(__FILE__).'/..')); + define('APPLICATION_CLASS', 'MyApplication'); + define('ADMINS_LIST','/in-portal/users/users.php'); + include_once(FULL_PATH.'/kernel/kernel4/startup.php'); + + $application =& kApplication::Instance(); + $application->Init(); + // KERNEL 4 INIT: END + + $lang_xml =& $application->recallObject('LangXML'); + + $lang_xml->renameTable('phrases', TABLE_PREFIX.'ImportPhrases'); + $lang_xml->renameTable('emailmessages', TABLE_PREFIX.'ImportEvents'); + + if(!$force_finish) { - $Events[$rs->fields["Event"]."_".$rs->fields["Type"]] = $rs->fields["EventId"]; - $rs->MoveNext(); + $lang_xml->lang_object->TableName = $application->getUnitOption('lang','TableName'); } - - if(count($_POST["lang"])>0) - { - $Langs = $_POST["lang"]; - for($x=0;$xparse(); - - $objInXML->getTag(0,$name,$attribs,$contents,$tags); - - if(is_array($tags)) - { - foreach($tags as $t) - { - $LangRoot =& $objInXML->getTagByID($t); - $PackName = $LangRoot->attributes["PACKNAME"]; - $l = $objLanguages->GetItemByField("PackName",$PackName); - if(is_object($l)) - { - $LangId = $l->Get("LanguageId"); - $NewLang = false; - } - else - { - $l = new clsLanguage(); - $l->Set("Enabled",1); - $l->Create(); - $NewLang = true; - $LangId = $l->Get("LanguageId"); - } - foreach($LangRoot->children as $tag) - { - switch($tag->name) - { - case "PHRASES": - foreach($tag->children as $PhraseTag) - { - $Phrase = $ado->qstr($PhraseTag->attributes["LABEL"]); - $Translation = $ado->qstr(base64_decode($PhraseTag->contents)); - - $PhraseType = $PhraseTag->attributes["TYPE"]; - $psql = "INSERT INTO $PhraseTable (Phrase,Translation,PhraseType,LanguageId) VALUES ($Phrase,$Translation,$PhraseType,$LangId)"; - - $ado->Execute($psql); - //echo "$psql
\n"; - } - break; - case "DATEFORMAT": - $DateFormat = $tag->contents; - break; - case "TIMEFORMAT": - $TimeFormat = $tag->contents; - break; - case "DECIMAL": - $Decimal = $tag->contents; - break; - case "THOUSANDS": - $Thousands = $tag->contents; - break; - case "EVENTS": - foreach($tag->children as $EventTag) - { - $event = $EventTag->attributes["EVENT"]; - $MsgType = strtolower($EventTag->attributes["MESSAGETYPE"]); - $template = base64_decode($EventTag->contents); - $Type = $EventTag->attributes["TYPE"]; - $EventId = $Events[$event."_".$Type]; - - $esql = "INSERT INTO $EventTable (Template,MessageType,EventId,LanguageId) VALUES ('$template','$MsgType',$EventId,$LangId)"; - $ado->Execute($esql); - //echo htmlentities($esql)."
\n"; - } - break; - } - if($NewLang) - { - $l->Set("PackName",$PackName); - $l->Set("LocalName",$PackName); - $l->Set("DateFormat",$DateFormat); - $l->Set("TimeFormat",$TimeFormat); - $l->Set("DecimalPoint",$Decimal); - $l->Set("ThousandSep",$Thousands); - $l->Update(); - } - } - } - } - - } - $state="lang_install"; - } - else { - $state="lang_select"; - } - } - else { - $general_error = 'Database error! No language tables found!'; - } + $languages = $application->GetVar('lang'); + if($languages) + { + $kernel_db =& $application->GetADODBConnection(); + $modules_table = $application->getUnitOption('mod','TableName'); + + $modules = $kernel_db->GetCol('SELECT Path, Name FROM '.$modules_table, 'Name'); + $modules['In-Portal'] = ''; + + foreach($languages as $lang_file) + { + foreach($modules as $module_name => $module_folder) + { + $lang_path = DOC_ROOT.BASE_PATH.'/'.$module_folder.ADMIN_DIR.'/install/langpacks'; + $lang_xml->Parse($lang_path.'/'.$lang_file, Array(0,1,2), ''); + } + } + + $state = 'lang_install'; + } + else + { + $state = 'lang_select'; + } + + $application->Done(); + } + else + { + $general_error = 'Database error! No language tables found!'; + } } if($state=="lang_install") { - /* do pack install */ - $Offset = (int)$_GET["Offset"]; - $Status = (int)$_GET["Status"]; - $PhraseTable = $g_TablePrefix."ImportPhrases"; - $EventTable = $g_TablePrefix."ImportEvents"; - if($Status==0) - { - $Total = TableCount($PhraseTable,"",0); - } - else - { - $Total = TableCount($EventTable,"",0); - } - - if($Status==0) - { - $Offset = $objLanguages->ReadImportTable($PhraseTable, 1,"0,1,2", $force_finish ? false : true, 200,$Offset); - if($Offset>=$Total) - { - $Offset=0; - $Status=1; - } - - $next_step = GetVar('next_step', true); - + /* do pack install */ + $Offset = (int)$_GET["Offset"]; + $Status = (int)$_GET["Status"]; + + $PhraseTable = $g_TablePrefix."ImportPhrases"; + $EventTable = $g_TablePrefix."ImportEvents"; + + $Total = TableCount($Status == 0 ? $PhraseTable : $EventTable, '', 0); + + if($Status == 0) + { + $Offset = $objLanguages->ReadImportTable($PhraseTable, 1,"0,1,2", $force_finish ? false : true, 200,$Offset); + if($Offset >= $Total) + { + $Offset=0; + $Status=1; + } + + $next_step = GetVar('next_step', true); + if($force_finish == true) $next_step = 3; $NextUrl = $_SERVER['PHP_SELF']."?Offset=$Offset&Status=$Status&state=lang_install&next_step=$next_step&install_type=$install_type"; if($force_finish == true) $NextUrl .= '&ff=1'; $include_file = $pathtoroot.$admin."/install/lang_run.php"; - } - else - { - if(!is_object($objMessageList)) - $objMessageList = new clsEmailMessageList(); - - - $Offset = $objMessageList->ReadImportTable($EventTable, $force_finish ? false : true,100,$Offset); - - if($Offset>$Total) - { - $next_step = GetVar('next_step', true); - - if($force_finish == true) $next_step = 3; - $NextUrl = $_SERVER['PHP_SELF']."?Offset=$Offset&Status=$Status&State=lang_install&next_step=$next_step&install_type=$install_type"; - if($force_finish == true) $NextUrl .= '&ff=1'; - $include_file = $pathtoroot.$admin."/install/lang_run.php"; - } - else - { - $db =&GetADODBConnection(); - $prefix = $g_TablePrefix; - $db->Execute('DROP TABLE IF EXISTS '.$prefix.'ImportPhrases'); - $db->Execute('DROP TABLE IF EXISTS '.$prefix.'ImportEvents'); - if( !$force_finish ) - { - $state = 'lang_default'; - } - else - { - $_POST['next_step'] = 4; - $state = 'finish'; - $include_file = $pathtoroot.$admin."/install/install_finish.php"; - } - } - } + } + else + { + if(!is_object($objMessageList)) + $objMessageList = new clsEmailMessageList(); + + $Offset = $objMessageList->ReadImportTable($EventTable, $force_finish ? false : true,100,$Offset); + + if($Offset > $Total) + { + $next_step = GetVar('next_step', true); + + if($force_finish == true) $next_step = 3; + $NextUrl = $_SERVER['PHP_SELF']."?Offset=$Offset&Status=$Status&State=lang_install&next_step=$next_step&install_type=$install_type"; + if($force_finish == true) $NextUrl .= '&ff=1'; + $include_file = $pathtoroot.$admin."/install/lang_run.php"; + } + else + { + $db =& GetADODBConnection(); + $prefix = $g_TablePrefix; + $db->Execute('DROP TABLE IF EXISTS '.$PhraseTable); + $db->Execute('DROP TABLE IF EXISTS '.$EventTable); + + if(!$force_finish) + { + $state = 'lang_default'; + } + else + { + $_POST['next_step'] = 4; + $state = 'finish'; + $include_file = $pathtoroot.$admin."/install/install_finish.php"; + } + } + } } if($state=="lang_default_set")