Index: trunk/admin/install.php =================================================================== diff -u -N -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") Index: trunk/admin/index4.php =================================================================== diff -u -N -r1566 -r1649 --- trunk/admin/index4.php (.../index4.php) (revision 1566) +++ trunk/admin/index4.php (.../index4.php) (revision 1649) @@ -6,7 +6,7 @@ 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"); +include_once(FULL_PATH.'/kernel/kernel4/startup.php'); /* kApplication $application Index: trunk/kernel/units/general/inp_login_event_handler.php =================================================================== diff -u -N -r1566 -r1649 --- trunk/kernel/units/general/inp_login_event_handler.php (.../inp_login_event_handler.php) (revision 1566) +++ trunk/kernel/units/general/inp_login_event_handler.php (.../inp_login_event_handler.php) (revision 1649) @@ -4,11 +4,9 @@ { function OnSessionExpire() { - if( defined('ADMIN') && ADMIN ) + if( $this->Application->IsAdmin() ) { - $admin_dir = $this->Application->ConfigValue('AdminDirectory'); - if(!$admin_dir) $admin_dir = 'admin'; - $location = $this->Application->BaseURL().$admin_dir.'/index.php?expired=1'; + $location = $this->Application->BaseURL().ADMIN_DIR.'/index.php?expired=1'; header('Location: '.$location); exit; } Index: trunk/admin/install/general_error.php =================================================================== diff -u -N -r41 -r1649 --- trunk/admin/install/general_error.php (.../general_error.php) (revision 41) +++ trunk/admin/install/general_error.php (.../general_error.php) (revision 1649) @@ -19,8 +19,8 @@ - + Index: trunk/core/units/general/inp_login_event_handler.php =================================================================== diff -u -N -r1566 -r1649 --- trunk/core/units/general/inp_login_event_handler.php (.../inp_login_event_handler.php) (revision 1566) +++ trunk/core/units/general/inp_login_event_handler.php (.../inp_login_event_handler.php) (revision 1649) @@ -4,11 +4,9 @@ { function OnSessionExpire() { - if( defined('ADMIN') && ADMIN ) + if( $this->Application->IsAdmin() ) { - $admin_dir = $this->Application->ConfigValue('AdminDirectory'); - if(!$admin_dir) $admin_dir = 'admin'; - $location = $this->Application->BaseURL().$admin_dir.'/index.php?expired=1'; + $location = $this->Application->BaseURL().ADMIN_DIR.'/index.php?expired=1'; header('Location: '.$location); exit; } Index: trunk/kernel/include/language.php =================================================================== diff -u -N -r1633 -r1649 --- trunk/kernel/include/language.php (.../language.php) (revision 1633) +++ trunk/kernel/include/language.php (.../language.php) (revision 1649) @@ -344,7 +344,8 @@ $sql = "UPDATE ".$this->SourceTable." SET PrimaryLang=0 "; $this->adodbConnection->Execute($sql); $l = $this->GetItem($lang_id); - $l->Set("PrimaryLang","1"); + $l->Set('PrimaryLang', 1); + $l->Set('Enabled', 1); $l->Update(); $this->m_Primary =$lang_id; } Index: trunk/core/units/languages/import_xml.php =================================================================== diff -u -N -r1641 -r1649 --- trunk/core/units/languages/import_xml.php (.../import_xml.php) (revision 1641) +++ trunk/core/units/languages/import_xml.php (.../import_xml.php) (revision 1649) @@ -90,6 +90,12 @@ $this->ip_address = getenv('HTTP_X_FORWARDED_FOR') ? getenv('HTTP_X_FORWARDED_FOR') : getenv('REMOTE_ADDR'); } + function renameTable($table_prefix, $new_name) + { + $this->Conn->Query('ALTER TABLE '.$this->tables[$table_prefix].' RENAME '.$new_name); + $this->tables[$table_prefix] = $new_name; + } + /** * Create temp table for prefix, if table already exists, then delete it and create again * Index: trunk/index.php =================================================================== diff -u -N -r1566 -r1649 --- trunk/index.php (.../index.php) (revision 1566) +++ trunk/index.php (.../index.php) (revision 1649) @@ -5,11 +5,8 @@ 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"); +include_once(FULL_PATH.'/kernel/kernel4/startup.php'); -/* - kApplication $application -*/ $application =& kApplication::Instance(); $application->Init(); $application->Run(); Index: trunk/kernel/units/languages/import_xml.php =================================================================== diff -u -N -r1641 -r1649 --- trunk/kernel/units/languages/import_xml.php (.../import_xml.php) (revision 1641) +++ trunk/kernel/units/languages/import_xml.php (.../import_xml.php) (revision 1649) @@ -90,6 +90,12 @@ $this->ip_address = getenv('HTTP_X_FORWARDED_FOR') ? getenv('HTTP_X_FORWARDED_FOR') : getenv('REMOTE_ADDR'); } + function renameTable($table_prefix, $new_name) + { + $this->Conn->Query('ALTER TABLE '.$this->tables[$table_prefix].' RENAME '.$new_name); + $this->tables[$table_prefix] = $new_name; + } + /** * Create temp table for prefix, if table already exists, then delete it and create again * Index: trunk/core/units/general/my_application.php =================================================================== diff -u -N -r1583 -r1649 --- trunk/core/units/general/my_application.php (.../my_application.php) (revision 1583) +++ trunk/core/units/general/my_application.php (.../my_application.php) (revision 1649) @@ -1,46 +1,55 @@ -registerClass('Inp1Parser',MODULES_PATH.'/kernel/units/general/inp1_parser.php','Inp1Parser'); - - $this->registerClass('InpSession',MODULES_PATH.'/kernel/units/general/inp_ses_storage.php','Session'); - $this->registerClass('InpSessionStorage',MODULES_PATH.'/kernel/units/general/inp_ses_storage.php','SessionStorage'); - - $this->registerClass('kCatDBItem',MODULES_PATH.'/kernel/units/general/cat_dbitem.php'); - $this->registerClass('kCatDBList',MODULES_PATH.'/kernel/units/general/cat_dblist.php'); - $this->registerClass('kCatDBEventHandler',MODULES_PATH.'/kernel/units/general/cat_event_handler.php'); - $this->registerClass('InpLoginEventHandler',MODULES_PATH.'/kernel/units/general/inp_login_event_handler.php','login_EventHandler'); - $this->registerClass('InpDBEventHandler',MODULES_PATH.'/kernel/units/general/inp_db_event_handler.php','kDBEventHandler'); - $this->registerClass('InpTempTablesHandler',MODULES_PATH.'/kernel/units/general/inp_temp_handler.php','kTempTablesHandler'); - $this->registerClass('InpUnitConfigReader',MODULES_PATH.'/kernel/units/general/inp_unit_config_reader.php','kUnitConfigReader'); - - $this->registerClass('InpCustomFieldsHelper',MODULES_PATH.'/kernel/units/general/custom_fields.php','InpCustomFieldsHelper'); - $this->registerClass('kCountryStatesHelper',MODULES_PATH.'/kernel/units/general/country_states.php','CountryStatesHelper'); - } - - /** - * Checks if user is logged in, and creates - * user object if so. User object can be recalled - * later using "u" prefix. Also you may - * get user id by getting "u_id" variable. - * - * @access private - */ - function ValidateLogin() - { - $session =& $this->recallObject('Session'); - $user_id = $session->GetField('PortalUserId'); - if (!$user_id) $user_id = -2; - $this->SetVar('u_id', $user_id); - $this->StoreVar('user_id', $user_id); - } - } - +registerClass('Inp1Parser',MODULES_PATH.'/kernel/units/general/inp1_parser.php','Inp1Parser'); + + $this->registerClass('InpSession',MODULES_PATH.'/kernel/units/general/inp_ses_storage.php','Session'); + $this->registerClass('InpSessionStorage',MODULES_PATH.'/kernel/units/general/inp_ses_storage.php','SessionStorage'); + + $this->registerClass('kCatDBItem',MODULES_PATH.'/kernel/units/general/cat_dbitem.php'); + $this->registerClass('kCatDBList',MODULES_PATH.'/kernel/units/general/cat_dblist.php'); + $this->registerClass('kCatDBEventHandler',MODULES_PATH.'/kernel/units/general/cat_event_handler.php'); + $this->registerClass('InpLoginEventHandler',MODULES_PATH.'/kernel/units/general/inp_login_event_handler.php','login_EventHandler'); + $this->registerClass('InpDBEventHandler',MODULES_PATH.'/kernel/units/general/inp_db_event_handler.php','kDBEventHandler'); + $this->registerClass('InpTempTablesHandler',MODULES_PATH.'/kernel/units/general/inp_temp_handler.php','kTempTablesHandler'); + $this->registerClass('InpUnitConfigReader',MODULES_PATH.'/kernel/units/general/inp_unit_config_reader.php','kUnitConfigReader'); + + $this->registerClass('InpCustomFieldsHelper',MODULES_PATH.'/kernel/units/general/custom_fields.php','InpCustomFieldsHelper'); + $this->registerClass('kCountryStatesHelper',MODULES_PATH.'/kernel/units/general/country_states.php','CountryStatesHelper'); + } + + /** + * Checks if user is logged in, and creates + * user object if so. User object can be recalled + * later using "u" prefix. Also you may + * get user id by getting "u_id" variable. + * + * @access private + */ + function ValidateLogin() + { + $session =& $this->recallObject('Session'); + $user_id = $session->GetField('PortalUserId'); + if (!$user_id) $user_id = -2; + $this->SetVar('u_id', $user_id); + $this->StoreVar('user_id', $user_id); + } + + function Init() + { + parent::Init(); + + $admin_dir = $this->ConfigValue('AdminDirectory'); + if(!$admin_dir) $admin_dir = 'admin'; + define('ADMIN_DIR', $admin_dir); + } + } + ?> \ No newline at end of file Index: trunk/kernel/units/general/my_application.php =================================================================== diff -u -N -r1583 -r1649 --- trunk/kernel/units/general/my_application.php (.../my_application.php) (revision 1583) +++ trunk/kernel/units/general/my_application.php (.../my_application.php) (revision 1649) @@ -1,46 +1,55 @@ -registerClass('Inp1Parser',MODULES_PATH.'/kernel/units/general/inp1_parser.php','Inp1Parser'); - - $this->registerClass('InpSession',MODULES_PATH.'/kernel/units/general/inp_ses_storage.php','Session'); - $this->registerClass('InpSessionStorage',MODULES_PATH.'/kernel/units/general/inp_ses_storage.php','SessionStorage'); - - $this->registerClass('kCatDBItem',MODULES_PATH.'/kernel/units/general/cat_dbitem.php'); - $this->registerClass('kCatDBList',MODULES_PATH.'/kernel/units/general/cat_dblist.php'); - $this->registerClass('kCatDBEventHandler',MODULES_PATH.'/kernel/units/general/cat_event_handler.php'); - $this->registerClass('InpLoginEventHandler',MODULES_PATH.'/kernel/units/general/inp_login_event_handler.php','login_EventHandler'); - $this->registerClass('InpDBEventHandler',MODULES_PATH.'/kernel/units/general/inp_db_event_handler.php','kDBEventHandler'); - $this->registerClass('InpTempTablesHandler',MODULES_PATH.'/kernel/units/general/inp_temp_handler.php','kTempTablesHandler'); - $this->registerClass('InpUnitConfigReader',MODULES_PATH.'/kernel/units/general/inp_unit_config_reader.php','kUnitConfigReader'); - - $this->registerClass('InpCustomFieldsHelper',MODULES_PATH.'/kernel/units/general/custom_fields.php','InpCustomFieldsHelper'); - $this->registerClass('kCountryStatesHelper',MODULES_PATH.'/kernel/units/general/country_states.php','CountryStatesHelper'); - } - - /** - * Checks if user is logged in, and creates - * user object if so. User object can be recalled - * later using "u" prefix. Also you may - * get user id by getting "u_id" variable. - * - * @access private - */ - function ValidateLogin() - { - $session =& $this->recallObject('Session'); - $user_id = $session->GetField('PortalUserId'); - if (!$user_id) $user_id = -2; - $this->SetVar('u_id', $user_id); - $this->StoreVar('user_id', $user_id); - } - } - +registerClass('Inp1Parser',MODULES_PATH.'/kernel/units/general/inp1_parser.php','Inp1Parser'); + + $this->registerClass('InpSession',MODULES_PATH.'/kernel/units/general/inp_ses_storage.php','Session'); + $this->registerClass('InpSessionStorage',MODULES_PATH.'/kernel/units/general/inp_ses_storage.php','SessionStorage'); + + $this->registerClass('kCatDBItem',MODULES_PATH.'/kernel/units/general/cat_dbitem.php'); + $this->registerClass('kCatDBList',MODULES_PATH.'/kernel/units/general/cat_dblist.php'); + $this->registerClass('kCatDBEventHandler',MODULES_PATH.'/kernel/units/general/cat_event_handler.php'); + $this->registerClass('InpLoginEventHandler',MODULES_PATH.'/kernel/units/general/inp_login_event_handler.php','login_EventHandler'); + $this->registerClass('InpDBEventHandler',MODULES_PATH.'/kernel/units/general/inp_db_event_handler.php','kDBEventHandler'); + $this->registerClass('InpTempTablesHandler',MODULES_PATH.'/kernel/units/general/inp_temp_handler.php','kTempTablesHandler'); + $this->registerClass('InpUnitConfigReader',MODULES_PATH.'/kernel/units/general/inp_unit_config_reader.php','kUnitConfigReader'); + + $this->registerClass('InpCustomFieldsHelper',MODULES_PATH.'/kernel/units/general/custom_fields.php','InpCustomFieldsHelper'); + $this->registerClass('kCountryStatesHelper',MODULES_PATH.'/kernel/units/general/country_states.php','CountryStatesHelper'); + } + + /** + * Checks if user is logged in, and creates + * user object if so. User object can be recalled + * later using "u" prefix. Also you may + * get user id by getting "u_id" variable. + * + * @access private + */ + function ValidateLogin() + { + $session =& $this->recallObject('Session'); + $user_id = $session->GetField('PortalUserId'); + if (!$user_id) $user_id = -2; + $this->SetVar('u_id', $user_id); + $this->StoreVar('user_id', $user_id); + } + + function Init() + { + parent::Init(); + + $admin_dir = $this->ConfigValue('AdminDirectory'); + if(!$admin_dir) $admin_dir = 'admin'; + define('ADMIN_DIR', $admin_dir); + } + } + ?> \ No newline at end of file Index: trunk/admin/install/sel_license.php =================================================================== diff -u -N -r1263 -r1649 --- trunk/admin/install/sel_license.php (.../sel_license.php) (revision 1263) +++ trunk/admin/install/sel_license.php (.../sel_license.php) (revision 1649) @@ -40,8 +40,8 @@ - - + + Index: trunk/admin/install/modselect.php =================================================================== diff -u -N -r791 -r1649 --- trunk/admin/install/modselect.php (.../modselect.php) (revision 791) +++ trunk/admin/install/modselect.php (.../modselect.php) (revision 1649) @@ -47,8 +47,8 @@ - - + +