Index: trunk/admin/install.php =================================================================== --- trunk/admin/install.php (revision 25) +++ trunk/admin/install.php (revision 26) @@ -1,1827 +1,1852 @@ <?php error_reporting(0); //$new_version = '1.0.2'; +//echo '<pre>'.print_r($_REQUEST, true).'</pre>'; + define("GET_LICENSE_URL", "http://www.in-portal.net/licensing/license.php"); define('BACKUP_NAME', 'dump(.*).txt'); // how backup dump files are named $general_error = ''; if ($_POST['install_type'] != '') { $install_type = $_POST['install_type']; } else if ($_GET['install_type'] != '') { $install_type = $_GET['install_type']; } +$force_finish = isset($_REQUEST['ff']) ? true : false; + $pathtoroot = ""; if(!strlen($pathtoroot)) { //$path=dirname(realpath($_SERVER['SCRIPT_FILENAME']));PATH_TRANSLATED $path=dirname(realpath($_SERVER['PATH_TRANSLATED'])); 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; } } $path_char = GetPathChar(); //phpinfo(INFO_VARIABLES); $sub = substr($pathtoroot,strlen($pathchar)*-1); if($sub!=$pathchar) { $pathtoroot = $pathtoroot.$pathchar; } $is_install = TRUE; $admin = substr($path,strlen($pathtoroot)); $state = $_GET["state"]; if(!strlen($state)) { $state = $_POST["state"]; } include("install/install_lib.php"); $ini_file = $pathtoroot."config.php"; if(file_exists($ini_file)) { $write_access = is_writable($ini_file); $ini_vars = parse_ini_file($ini_file,TRUE); foreach($ini_vars as $secname => $section) { foreach($section as $key => $value) { $key = "g_".$key; global $$key; $$key = $value; } } } else { $state=""; $write_access = is_writable($pathtoroot); if($write_access) { set_ini_value("Database", "DBType", ""); set_ini_value("Database", "DBHost", ""); set_ini_value("Database", "DBUser", ""); set_ini_value("Database", "DBUserPassword", ""); set_ini_value("Database", "DBName", ""); set_ini_value("Module Versions", "In-Portal", ""); save_values(); } } $titles[1] = "General Site Setup"; $configs[1] = "in-portal:configure_general"; $mods[1] = "In-Portal"; $titles[2] = "User Setup"; $configs[2] = "in-portal:configure_users"; $mods[2] = "In-Portal:Users"; $titles[3] = "Category Display Setup"; $configs[3] = "in-portal:configure_categories"; $mods[3] = "In-Portal"; if(strlen($g_DBType)>0 && strlen($state)>0 && $state !="dbinfo" && $state !="db_config_save") { require_once($pathtoroot."kernel/startup.php"); $localURL=$rootURL."kernel/"; $adminURL = $rootURL.$admin; $imagesURL = $adminURL."/images"; //admin only util $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."/toolbar.php"); } function GetPathChar($path = null) { if( !isset($path) ) $path = $GLOBALS['pathtoroot']; $pos = strpos($path, ':'); return ($pos === false) ? "/" : "\\"; } function SuperStrip($str, $inverse = false) { $str = $inverse ? str_replace("%5C","\\",$str) : str_replace("\\","%5C",$str); return stripslashes($str); } require_once($pathtoroot.$admin."/install/inst_ado.php"); ?> <html> <head> <title>In-Portal Installation</title> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> <meta name="generator" content="Notepad"> <link rel="stylesheet" type="text/css" href="include/style.css"> <LINK REL="stylesheet" TYPE="text/css" href="install/2col.css"> <SCRIPT LANGUAGE="JavaScript1.2"> function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function swap(imgid, src){ var ob = document.getElementById(imgid); ob.src = 'images/' + src; } function Continue() { document.iform1.submit(); } </SCRIPT> </head> <body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" style="height: 100%"> <form enctype="multipart/form-data" name="iform1" id="iform1" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"> <tr> <td height="90"> <table cellpadding="0" cellspacing="0" border="0" width="100%" height="90"> <tr> <td rowspan="3" valign="top"><a href="http://www.in-portal.net" target="_top"><img alt="In-portal" src="images/globe.gif" width="84" height="91" border="0"></a></td> <td rowspan="3" valign="top"><a href="http://www.in-portal.net" target="_top"><img alt="In-portal" src="images/logo.gif" width="150" height="91" border="0"></a></td> <td rowspan="3" width="100000" align="right"> </td> <td width="400"><img alt="" src="images/blocks.gif" width="400" height="73"></td> </tr> <tr><td align="right" background="images/version_bg.gif" class="head_version" valign="top"><img alt="" src="images/spacer.gif" width="1" height="14">In-Portal Version 1.0.0: English US</td></tr> <tr><td><img alt="" src="images/blocks2.gif" width="400" height="2"><br></td></tr> <tr><td bgcolor="black" colspan="4"><img alt="" src="images/spacer.gif" width="1" height="1"><br></td></tr> </table> </td> </tr> <?php require_once($pathtoroot."kernel/include/adodb/adodb.inc.php"); if(!strlen($state)) $state = @$_POST["state"]; //echo $state; if(strlen($state)==0) { $ado = inst_GetADODBConnection(); if($ado) { $installed = TableExists($ado,"ConfigurationAdmin,Category,Permissions"); } if(!minimum_php_version("4.1.2")) { $general_error = "You have version ".phpversion()." - please upgrade!"; //die(); } if(!$write_access) { if ($general_error != '') { $general_error .= '<br /><br />'; } $general_error .= "Install cannot write to config.php in the root directory of your in-portal installation ($pathtoroot)."; //die(); } if(!is_writable($pathtoroot."themes/")) { if ($general_error != '') { $general_error .= '<br /><br />'; } $general_error .= "In-portal's Theme directory must be writable (".$pathtoroot."themes/)."; //die(); } if(!is_writable($pathtoroot."kernel/images/")) { if ($general_error != '') { $general_error .= '<br /><br />'; } $general_error .= "In-portal's Image Upload directory must be writable (".$pathtoroot."kernel/images/)."; //die(); } if(!is_writable($pathtoroot."admin/backupdata/")) { if ($general_error != '') { $general_error .= '<br /><br />'; } $general_error .= "In-portal's Backup directory must be writable (".$pathtoroot."admin/backupdata/)."; //die(); } if(!is_writable($pathtoroot."admin/export/")) { if ($general_error != '') { $general_error .= '<br /><br />'; } $general_error .= "In-portal's Exportd directory must be writable (".$pathtoroot."admin/export/)."; //die(); } if($installed) { $state="reinstall"; } else { $state="dbinfo"; } } if($state=="reinstall_process") { $lic = base64_decode($g_License); if(strlen($lic)) { inst_ParseLicense($lic); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); } $LoggedIn = FALSE; if($_POST["UserName"]=="root") { $ado = inst_GetADODBConnection(); $sql = "SELECT * FROM ".$g_TablePrefix."ConfigurationValues WHERE VariableName='RootPass'"; $rs = $ado->Execute($sql); if($rs && !$rs->EOF) { $RootPass = $rs->fields["VariableValue"]; if(strlen($RootPass)>0) $LoggedIn = ($RootPass==md5($_POST["UserPass"])); } } else { $rfile = @fopen(GET_LICENSE_URL."?login=".md5($_POST['UserName'])."&password=".md5($_POST['UserPass'])."&domain=".$_SERVER['SERVER_NAME'], "r"); if (!$rfile) { $LoggedIn = false; } else { $rcontents = ''; while (!feof($rfile)) { $line = fgets($rfile, 10000); $rcontents .= $line; } @fclose($rfile); if (substr($rcontents, 0, 5) == 'Error') { $LoggedIn = false; } else { $LoggedIn = true; } } //$LoggedIn = ($i_User == $_POST["UserName"] && ($i_Pswd == $_POST["UserPass"]) && strlen($i_User)>0) || strlen($i_User)==0; } if($LoggedIn) { if (!(int)$_POST["inp_opt"]) { $state="reinstall"; $inst_error = "Please select one of the options above!"; } else { switch((int)$_POST["inp_opt"]) { case 0: $inst_error = "Please select an option above"; break; case 1: /* clean out all tables */ $install_type = 4; $ado = inst_GetADODBConnection(); $filename = $pathtoroot.$admin."/install/inportal_remove.sql"; RunSchemaFile($ado,$filename); /* run install again */ $state="license"; break; case 2: $install_type = 3; $state="dbinfo"; break; case 3: $install_type = 5; $state="license"; break; case 4: $install_type = 6; /* clean out all tables */ $ado = inst_GetADODBConnection(); //$filename = $pathtoroot.$admin."/install/inportal_remove.sql"; //RunSchemaFile($ado,$filename); /* run install again */ $state="restore_select"; break; case 5: $install_type = 7; /* change DB config */ $state="db_reconfig"; break; case 6: $install_type = 8; $state = "upgrade"; break; } } } else { $state="reinstall"; $login_error = "Invalid Username or Password - Try Again"; } } if ($state == "upgrade") { $ado = inst_GetADODBConnection(); $Modules = array(); $Texts = array(); $sql = "SELECT Name, Version FROM ".$g_TablePrefix."Modules"; $rs = $ado->Execute($sql); while ($rs && !$rs->EOF) { $p = strtolower($rs->fields['Name']); // $modules .= strtolower($rs->fields['Name']).','; // $rs->MoveNext(); // } // $mod_arr = explode(",", substr($modules, 0, strlen($modules) - 1)); // foreach($mod_arr as $p) // { if ($p == 'in-portal') { $p = ''; } $dir_name = $pathtoroot.$p."/admin/install/upgrades/"; $dir = @dir($dir_name); //echo "<pre>"; print_r($dir); echo "</pre>"; while ($file = $dir->read()) { if ($file != "." && $file != ".." && !is_dir($dir_name.$file)) { $file = str_replace("inportal_upgrade_v", "", $file); $file = str_replace(".sql", "", $file); if ($file != '') { $sql = "SELECT count(*) AS count FROM ".$g_TablePrefix."Modules WHERE Name = '".$rs->fields['Name']."' AND Version = '$file'"; $rs1 = $ado->Execute($sql); if ($rs1->fields['count'] == 0) { // $sql = "SELECT Version FROM ".$g_TablePrefix."Modules WHERE Name = '".$p."'"; // $rs2 = $ado->Execute($sql); $Texts[] = $rs->fields['Name']." (".$rs->fields['Version']." ".prompt_language("la_to")." ".$file.")"; $Modules[] = $rs->fields['Name']; } } } } $rs->MoveNext(); } $include_file = "install/upgrade.php"; } if ($state == "upgrade_process") { $mod_arr = $_POST['modules']; foreach($mod_arr as $p) { $mod_name = strtolower($p); if ($mod_name == 'in-portal') { $mod_name = ''; } $dir_name = $pathtoroot.$mod_name."/admin/install/upgrades/"; $dir = @dir($dir_name); $new_version = ''; $tmp1 = 0; $tmp2 = 0; while ($file = $dir->read()) { if ($file != "." && $file != ".." && !is_dir($dir_name.$file)) { $file = str_replace("inportal_upgrade_v", "", $file); $file = str_replace(".sql", "", $file); if ($file != '') { $tmp1 = str_replace(".", "", $file); if ($tmp1 > $tmp2) { $new_version = $file; } } } $tmp2 = $tmp1; } $version_nrs = explode(".", $new_version); for ($i = 0; $i < $version_nrs[0] + 1; $i++) { for ($j = 0; $j < $version_nrs[1] + 1; $j++) { for ($k = 0; $k < $version_nrs[2] + 1; $k++) { $try_version = "$i.$j.$k"; $filename = $pathtoroot.$mod_name."/admin/install/upgrades/inportal_upgrade_v$try_version.sql"; if(file_exists($filename)) { RunSQLFile($ado, $filename); set_ini_value("Module Versions", $p, $try_version); save_values(); } } } } } - // upgrade language pack if some module upgrade options selected - if( isset($mod_arr) && is_array($mod_arr) ) - { - - } - - $state = "finish"; - $include_file = "install/install_finish.php"; + $state = 'languagepack_upgrade'; +} + + +// upgrade language pack +if($state=='languagepack_upgrade') +{ + $state = 'lang_install_init'; + $_POST['lang'][] = 'english.lang'; + $force_finish = true; } if($state=="db_reconfig_save") { $ini_vars = parse_ini_file($ini_file,TRUE); foreach($ini_vars as $secname => $section) { foreach($section as $key => $value) { $key = "g_".str_replace("-", "", $key); global $$key; $$key = $value; } } unset($ado); $ado = inst_GetADODBConnection(); if($ado->ErrorNo()!=0) { $db_error = "Connection Error: (".$ado->ErrorNo().") ".$ado->ErrorMsg(); $state = "db_reconfig"; } else { if(!TableExists($ado,"ConfigurationAdmin,Category,Permissions")) { $state="db_reconfig"; $db_error = "An In-Portal Database was not found at this location"; } else { set_ini_value("Database", "DBType",$_POST["ServerType"]); set_ini_value("Database", "DBHost",$_POST["ServerHost"]); set_ini_value("Database", "DBName",$_POST["ServerDB"]); set_ini_value("Database", "DBUser",$_POST["ServerUser"]); set_ini_value("Database", "DBUserPassword",$_POST["ServerPass"]); set_ini_value("Database","TablePrefix",$_POST["TablePrefix"]); save_values(); $state = "finish"; $include_file = "install/install_finish.php"; } } } if($state=="db_reconfig") { $include_file = "install/db_reconfig.php"; } if($state=="restore_file") { if($_POST["submit"]=="Update") { $filepath = $_POST["backupdir"]; $state="restore_select"; } else { $filepath = stripslashes($_POST['backupdir']); $backupfile = $filepath.$path_char.str_replace('(.*)', $_POST['backupdate'], BACKUP_NAME); if(file_exists($backupfile) && is_readable($backupfile)) { $ado = inst_GetADODBConnection(); $show_warning = false; if (!$_POST['warning_ok']) { // Here we comapre versions between backup and config $file_contents = file_get_contents($backupfile); $file_tmp_cont = explode("#------------------------------------------", $file_contents); $tmp_vers = $file_tmp_cont[0]; $vers_arr = explode(";", $tmp_vers); $ini_values = parse_ini_file($ini_file); foreach ($ini_values as $key => $value) { foreach ($vers_arr as $k) { if (strstr($k, $key)) { if (!strstr($k, $value)) { $show_warning = true; } } } } //$show_warning = true; } if (!$show_warning) { $filename = $pathtoroot.$admin.$path_char.'install'.$path_char.'inportal_remove.sql'; RunSchemaFile($ado,$filename); $state="restore_run"; } else { $state = "warning"; $include_file = "install/warning.php"; } } else { if ($_POST['backupdate'] != '') { $include_file = "install/restore_select.php"; $restore_error = "$backupfile not found or could not be read"; } else { $include_file = "install/restore_select.php"; $restore_error = "No backup selected!!!"; } } } //echo $restore_error; } if($state=="restore_select") { if( isset($_POST['backupdir']) ) $filepath = stripslashes($_POST['backupdir']); $include_file = "install/restore_select.php"; } if($state=="restore_run") { $ado = inst_GetADODBConnection(); $FileOffset = (int)$_GET["Offset"]; if(!strlen($backupfile)) $backupfile = SuperStrip($_GET['File'], true); $include_file = "install/restore_run.php"; } if($state=="db_config_save") { set_ini_value("Database", "DBType",$_POST["ServerType"]); set_ini_value("Database", "DBHost",$_POST["ServerHost"]); set_ini_value("Database", "DBName",$_POST["ServerDB"]); set_ini_value("Database", "DBUser",$_POST["ServerUser"]); set_ini_value("Database", "DBUserPassword",$_POST["ServerPass"]); set_ini_value("Database","TablePrefix",$_POST["TablePrefix"]); save_values(); $ini_vars = parse_ini_file($ini_file,TRUE); foreach($ini_vars as $secname => $section) { foreach($section as $key => $value) { $key = "g_".str_replace("-", "", $key); global $$key; $$key = $value; } } unset($ado); $ado = inst_GetADODBConnection(); if($ado->ErrorNo()!=0) { $db_error = "Connection Error: (".$ado->ErrorNo().") ".$ado->ErrorMsg(); $state = "dbinfo"; } else { if(TableExists($ado,"ConfigurationAdmin,Category,Permissions")) { $state="dbinfo"; $db_error = "An In-Portal Database already exists at this location"; } else $state = "license"; } } if($state=="dbinfo") { if ($install_type == '') { $install_type = 1; } $include_file = "install/dbinfo.php"; } if ($state == "download_license") { $ValidLicense = FALSE; if ($_POST['login'] != '' && $_POST['password'] != '') { // Here we determine weather login is ok & check available licenses $rfile = @fopen(GET_LICENSE_URL."?login=".md5($_POST['login'])."&password=".md5($_POST['password'])."&domain=".$_SERVER['SERVER_NAME'], "r"); if (!$rfile) { $get_license_error = "Unable to connect to the Intechnic server! Please try again later!"; $state = "get_license"; $include_file = "install/get_license.php"; } else { $rcontents = ''; while (!feof($rfile)) { $line = fgets($rfile, 10000); $rcontents .= $line; } @fclose($rfile); if (substr($rcontents, 0, 5) == 'Error') { $get_license_error = substr($rcontents, 6); $state = "get_license"; $include_file = "install/get_license.php"; } else { if (substr($rcontents, 0, 3) == "SEL") { $state = "download_license"; $license_select = substr($rcontents, 4); $include_file = "install/download_license.php"; } else { // Here we get one license $data = base64_decode(str_replace("In-Portal License File - do not edit!\n", "", $rcontents)); inst_ParseLicense($data); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); if($ValidLicense) { set_ini_value("Intechnic","License",base64_encode($data)); save_values(); $state="domain_select"; $got_license = 1; } else { $license_error="Invalid License File"; } if(!$ValidLicense) { $state="license"; } } } } } else if ($_POST['licenses'] == '') { $state = "get_license"; $get_license_error = "Username and / or password not specified!!!"; $include_file = "install/get_license.php"; } else { // Here we download license $rfile = @fopen(GET_LICENSE_URL."?license_id=".md5($_POST['licenses'])."&dlog=".md5($_POST['dlog'])."&dpass=".md5($_POST['dpass'])."&domain=".$_POST['domain'], "r"); if (!$rfile) { $get_license_error = "Unable to connect to the Intechnic server! Please try again later!"; $state = "get_license"; $include_file = "install/get_license.php"; } else { $rcontents = ''; while (!feof($rfile)) { $line = fgets($rfile, 10000); $rcontents .= $line; } @fclose($rfile); if (substr($rcontents, 0, 5) == 'Error') { $download_license_error = substr($rcontents, 6); $state = "download_license"; $include_file = "install/download_license.php"; } else { $data = base64_decode(str_replace("In-Portal License File - do not edit!\n", "", $rcontents)); inst_ParseLicense($data); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); if($ValidLicense) { set_ini_value("Intechnic","License",base64_encode($data)); save_values(); $state="domain_select"; } else { $license_error="Invalid License File"; } if(!$ValidLicense) { $state="license"; } } } } } if($state=="license_process") { $ValidLicense = FALSE; switch($_POST["lic_opt"]) { case 1: /* download from intechnic */ $include_file = "install/get_license.php"; $state = "get_license"; //if(!$ValidLicense) //{ // $state="license"; //} break; case 2: /* upload file */ $file = $_FILES["licfile"]; if(is_array($file)) { move_uploaded_file($file["tmp_name"],$pathtoroot."themes/tmp.lic"); $fp = @fopen($pathtoroot."themes/tmp.lic","rb"); if($fp) { $lic = fread($fp,filesize($pathtoroot."themes/tmp.lic")); fclose($fp); } $data = inst_LoadLicense(FALSE,$pathtoroot."themes/tmp.lic"); @unlink($pathtoroot."themes/tmp.lic"); inst_ParseLicense($data); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); if($ValidLicense) { set_ini_value("Intechnic","License",base64_encode($data)); save_values(); $state="domain_select"; } else $license_error="Invalid License File"; } if(!$ValidLicense) { $state="license"; } break; case 3: /* existing */ if(strlen($g_License)) { $lic = base64_decode($g_License); inst_ParseLicense($lic); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); if($ValidLicense) { $state="domain_select"; } else { $state="license"; $license_error="Invalid or corrupt license detected"; } } else { $state="license"; $license_error="Missing License File"; } if(!$ValidLicense) { $state="license"; } break; case 4: $state="domain_select"; break; } if($ValidLicense) $state="domain_select"; } if($state=="license") { $include_file = "install/sel_license.php"; } if($state=="reinstall") { $ado = inst_GetADODBConnection(); $show_upgrade = false; $sql = "SELECT Name FROM ".$g_TablePrefix."Modules"; $rs = $ado->Execute($sql); $modules = ''; while ($rs && !$rs->EOF) { $modules .= strtolower($rs->fields['Name']).','; $rs->MoveNext(); } $mod_arr = explode(",", substr($modules, 0, strlen($modules) - 1)); foreach($mod_arr as $p) { if ($p == 'in-portal') { $p = ''; } $dir_name = $pathtoroot.$p."/admin/install/upgrades/"; $dir = @dir($dir_name); //echo "<pre>"; print_r($dir); echo "</pre>"; while ($file = $dir->read()) { if ($file != "." && $file != ".." && !is_dir($dir_name.$file)) { $file = str_replace("inportal_upgrade_v", "", $file); $file = str_replace(".sql", "", $file); if ($file != '') { if ($p == '') { $p = 'in-portal'; } $sql = "SELECT Version FROM ".$g_TablePrefix."Modules WHERE Name = '".$p."'"; $rs = $ado->Execute($sql); if (str_replace(".", "", $rs->fields['Version']) < str_replace(".", "", $file)) { $show_upgrade = true; } } } } } if ($install_type == '') { $install_type = 2; } $include_file = "install/reinstall.php"; } if($state=="login") { $lic = base64_decode($g_License); if(strlen($lic)) { inst_ParseLicense($lic); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); } if(!$ValidLicense) { $state="license"; } else if($i_User == $_POST["UserName"] || $i_Pswd == $_POST["UserPass"]) { $state = "domain_select"; } else { $state="getuser"; $login_error = "Invalid User Name or Password. If you don't know your username or password, contact Intechnic Support"; } //die(); } if($state=="getuser") { $include_file = "install/login.php"; } if($state=="set_domain") { if(!is_array($i_Keys)) { $lic = base64_decode($g_License); if(strlen($lic)) { inst_ParseLicense($lic); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); } } if($_POST["domain"]==1) { $domain = $_SERVER['HTTP_HOST']; set_ini_value("Intechnic","Domain",$domain); save_values(); $state="runsql"; } else { $domain = str_replace(" ", "", $_POST["other"]); if ($domain != '') { set_ini_value("Intechnic","Domain",$domain); save_values(); $state="runsql"; } else { $DomainError = 'Please enter valid domain!'; $state = "domain_select"; } } } if($state=="domain_select") { if(!is_array($i_Keys)) { $lic = base64_decode($g_License); if(strlen($lic)) { inst_ParseLicense($lic); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); } } $include_file = "install/domain.php"; } if($state=="runsql") { $ado = inst_GetADODBConnection(); $installed = TableExists($ado,"ConfigurationAdmin,Category,Permissions"); if(!$installed) { // create tables $filename = $pathtoroot.$admin."/install/inportal_schema.sql"; RunSchemaFile($ado,$filename); // insert default info $filename = $pathtoroot.$admin."/install/inportal_data.sql"; RunSQLFile($ado,$filename); $sql = "SELECT Version FROM ".$g_TablePrefix."Modules WHERE Name = 'In-Portal'"; $rs = $ado->Execute($sql); set_ini_value("Module Versions", "In-Portal", $rs->fields['Version']); save_values(); require_once $pathtoroot.'kernel/include/tag-class.php'; if( !is_object($objTagList) ) $objTagList = new clsTagList(); // install kernel specific tags $objTagList->DeleteTags(); // delete all existing tags in db // create 3 predifined tags (because there no functions with such names $t = new clsTagFunction(); $t->Set("name","include"); $t->Set("description","insert template output into the current template"); $t->Create(); $t->AddAttribute("_template","tpl","Template to insert","",TRUE); $t->AddAttribute("_supresserror","bool","Supress missing template errors","",FALSE); $t->AddAttribute("_dataexists","bool","Only include template output if content exists (content is defined by the tags in the template)","",FALSE); $t->AddAttribute("_nodatatemplate","tpl","Template to include if the nodataexists condition is true","",FALSE); unset($t); $t = new clsTagFunction(); $t->Set("name","perm_include"); $t->Set("description","insert template output into the current template if permissions are set"); $t->Create(); $t->AddAttribute("_template","tpl","Template to insert","",TRUE); $t->AddAttribute("_noaccess","tpl","Template to insert if access is denied","",FALSE); $t->AddAttribute("_permission","","Comma-separated list of permissions, any of which will grant access","",FALSE); $t->AddAttribute("_module","","Used in place of the _permission attribute, this attribute verifies the module listed is enabled","",FALSE); $t->AddAttribute("_system","bool","Must be set to true if any permissions in _permission list is a system permission","",FALSE); $t->AddAttribute("_supresserror","bool","Supress missing template errors","",FALSE); $t->AddAttribute("_dataexists","bool","Only include template output if content exists (content is defined by the tags in the template)","",FALSE); $t->AddAttribute("_nodatatemplate","tpl","Template to include if the nodataexists condition is true","",FALSE); unset($t); $t = new clsTagFunction(); $t->Set("name","mod_include"); $t->Set("description","insert templates from all enabled modules. No error occurs if the template does not exist."); $t->Create(); $t->AddAttribute("_template","tpl","Template to insert. This template path should be relative to the module template root directory","",TRUE); $t->AddAttribute("_modules","","Comma-separated list of modules. Defaults to all enabled modules if not set","",FALSE); $t->AddAttribute("_supresserror","bool","Supress missing template errors","",FALSE); $t->AddAttribute("_dataexists","bool","Only include template output if content exists (content is defined by the tags in the template)","",FALSE); $t->AddAttribute("_nodatatemplate","tpl","Template to include if the nodataexists condition is true","",FALSE); $objTagList->ParseFile($pathtoroot.'kernel/parser.php'); // insert module tags if( is_array($ItemTagFiles) ) foreach($ItemTagFiles as $file) $objTagList->ParseItemFile($pathtoroot.$file); $state="RootPass"; } else { $include_file = "install/install_finish.php"; $state="finish"; } } if ($state == "finish") { $include_file = "install/install_finish.php"; } if($state=="RootSetPass") { $pass = $_POST["RootPass"]; if(strlen($pass)<4) { $PassError = "Root Password must be at least 4 characters"; $state = "RootPass"; } else if ($pass != $_POST["RootPassConfirm"]) { $PassError = "Passwords does not match"; $state = "RootPass"; } else { $pass = md5($pass); $sql = "UPDATE ".$g_TablePrefix."ConfigurationValues SET VariableValue = '$pass' WHERE VariableName='RootPass' OR VariableName='RootPassVerify'"; $ado = inst_GetADODBConnection(); $ado->Execute($sql); $state="modselect"; } } if($state=="RootPass") { $include_file = "install/rootpass.php"; } if($state=="lang_install_init") { include_once($pathtoroot."kernel/include/xml.php"); $ado = inst_GetADODBConnection(); if (TableExists($ado, "Language,Phrase")) { $MaxInserts = 200; $PhraseTable = GetTablePrefix()."ImportPhrases"; $EventTable = GetTablePrefix()."ImportEvents"; $sql = "CREATE TABLE $PhraseTable SELECT Phrase,Translation,PhraseType,LanguageId FROM ".GetTablePrefix()."Phrase WHERE PhraseId=-1"; $ado->Execute($sql); $sql = "CREATE TABLE $EventTable SELECT Template,MessageType,EventId,LanguageId FROM ".GetTablePrefix()."EmailMessage WHERE EmailMessageId=-1"; $ado->Execute($sql); $sql = "SELECT EventId,Event,Type FROM ".GetTablePrefix()."Events"; $rs = $ado->Execute($sql); $Events = array(); while($rs && !$rs->EOF) { $Events[$rs->fields["Event"]."_".$rs->fields["Type"]] = $rs->fields["EventId"]; $rs->MoveNext(); } if(count($_POST["lang"])>0) { $Langs = $_POST["lang"]; for($x=0;$x<count($Langs);$x++) { $lang = $Langs[$x]; $p = $pathtoroot.$admin."/install/langpacks/".$lang; /* parse xml file */ $fp = fopen($p,"r"); $xml = fread($fp,filesize($p)); fclose($fp); unset($objInXML); $objInXML = new xml_doc($xml); $objInXML->parse(); $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"); } 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 = $PhraseTag->attributes["LABEL"]; $Translation = 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 <br>\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)."<br>\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!'; } } if($state=="lang_install") { /* do pack install */ $Offset = (int)$_GET["Offset"]; $Status = (int)$_GET["Status"]; $PhraseTable = GetTablePrefix()."ImportPhrases"; $EventTable = GetTablePrefix()."ImportEvents"; if($Status==0) { $Total = TableCount($PhraseTable,"",0); } else { $Total = TableCount($EventTable,"",0); } if($Status==0) { - $Offset = $objLanguages->ReadImportTable($PhraseTable, 1,"0,1,2",TRUE,200,$Offset); + $Offset = $objLanguages->ReadImportTable($PhraseTable, 1,"0,1,2", $force_finish ? false : true, 200,$Offset); if($Offset>=$Total) { $Offset=0; $Status=1; } if ($_POST['next_step']) { $next_step = $_POST['next_step']; } else if ($_GET['next_step']) { $next_step = $_GET['next_step']; } + 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 = "install/lang_run.php"; } else { if(!is_object($objMessageList)) $objMessageList = new clsEmailMessageList(); - $Offset = $objMessageList->ReadImportTable($EventTable,TRUE,100,$Offset); + $Offset = $objMessageList->ReadImportTable($EventTable, $force_finish ? false : true,100,$Offset); if($Offset>$Total) { if ($_POST['next_step']) { $next_step = $_POST['next_step']; } else if ($_GET['next_step']) { $next_step = $_GET['next_step']; - } + } + 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 = "install/lang_run.php"; } else - $state="lang_default"; + { + if( !$force_finish ) + { + $state = 'lang_default'; + } + else + { + $_POST['next_step'] = 4; + $state = 'finish'; + $include_file = "install/install_finish.php"; + } + } } } + + + if($state=="lang_default_set") { // phpinfo(INFO_VARIABLES); $ado = inst_GetADODBConnection(); $PhraseTable = GetTablePrefix()."ImportPhrases"; $EventTable = GetTablePrefix()."ImportEvents"; $ado->Execute("DROP TABLE $PhraseTable"); $ado->Execute("DROP TABLE $EventTable"); $Id = $_POST["lang"]; $objLanguages->SetPrimary($Id); $state="postconfig_1"; } if($state=="lang_default") { $Packs = Array(); $objLanguages->Clear(); $objLanguages->LoadAllLanguages(); foreach($objLanguages->Items as $l) { $Packs[$l->Get("LanguageId")] = $l->Get("PackName"); } $include_file = "install/lang_default.php"; } if($state=="modinstall") { $doms = $_POST["domain"]; if(is_array($doms)) { $ado = inst_GetADODBConnection(); require_once $pathtoroot.'kernel/include/tag-class.php'; if( !is_object($objTagList) ) $objTagList = new clsTagList(); foreach($doms as $p) { $filename = $pathtoroot.$p."/admin/install.php"; if(file_exists($filename)) { include($filename); } } } $sql = "SELECT Name FROM ".GetTablePrefix()."Modules"; $rs = $ado->Execute($sql); while($rs && !$rs->EOF) { $p = $rs->fields['Name']; $mod_name = strtolower($p); if ($mod_name == 'in-portal') { $mod_name = ''; } $dir_name = $pathtoroot.$mod_name."/admin/install/upgrades/"; $dir = @dir($dir_name); $new_version = ''; $tmp1 = 0; $tmp2 = 0; while ($file = $dir->read()) { if ($file != "." && $file != ".." && !is_dir($dir_name.$file)) { $file = str_replace("inportal_upgrade_v", "", $file); $file = str_replace(".sql", "", $file); if ($file != '') { $tmp1 = str_replace(".", "", $file); if ($tmp1 > $tmp2) { $new_version = $file; } } } $tmp2 = $tmp1; } $version_nrs = explode(".", $new_version); for ($i = 0; $i < $version_nrs[0] + 1; $i++) { for ($j = 0; $j < $version_nrs[1] + 1; $j++) { for ($k = 0; $k < $version_nrs[2] + 1; $k++) { $try_version = "$i.$j.$k"; $filename = $pathtoroot.$mod_name."/admin/install/upgrades/inportal_upgrade_v$try_version.sql"; if(file_exists($filename)) { RunSQLFile($ado, $filename); set_ini_value("Module Versions", $p, $try_version); save_values(); } } } } $rs->MoveNext(); } $state="lang_select"; } if($state=="lang_select") { $Packs = GetLanguageList(); $include_file = "install/lang_select.php"; } if($state=="modselect") { /* /admin/install.php */ $UrlLen = (strlen($admin) + 12)*-1; $pathguess =substr($_SERVER["SCRIPT_NAME"],0,$UrlLen); $sitepath = $pathguess; $esc_path = str_replace("\\","/",$pathtoroot); $esc_path = str_replace("/","\\",$esc_path); //set_ini_value("Site","DomainName",$_SERVER["SERVER_NAME"]); //$g_DomainName= $_SERVER["SERVER_NAME"]; save_values(); $ado = inst_GetADODBConnection(); if(substr($sitepath,0,1)!="/") $sitepath="/".$sitepath; if(substr($sitepath,-1)!="/") $sitepath .= "/"; $sql = "UPDATE ".$g_TablePrefix."ConfigurationValues SET VariableValue = '$sitepath' WHERE VariableName='Site_Path'"; $ado->Execute($sql); $sql = "UPDATE ".$g_TablePrefix."ConfigurationValues SET VariableValue = '$g_Domain' WHERE VariableName='Server_Name'"; $ado->Execute($sql); $Modules = inst_GetModuleList(); $include_file = "install/modselect.php"; } if(substr($state,0,10)=="postconfig") { $p = explode("_",$state); $step = $p[1]; if ($_POST['Site_Path'] != '') { //echo "ok<br>"; $rfile = @fopen(GET_LICENSE_URL."?url=".base64_encode($_SERVER['SERVER_NAME'].$_POST['Site_Path'])."&domain=".md5($_SERVER['SERVER_NAME']), "r"); if (!$rfile) { $get_license_error = "Unable to connect to the Intechnic server! Please try again later!"; $state = "postconfig_1"; $include_file = "install/postconfig.php"; } else { $rcontents = ''; while (!feof($rfile)) { $line = fgets($rfile, 10000); $rcontents .= $line; } @fclose($rfile); } } if(strlen($_POST["oldstate"])>0) { $s = explode("_",$_POST["oldstate"]); $oldstep = $s[1]; if($oldstep<count($configs)) { $section = $configs[$oldstep]; $module = $mods[$oldstep]; $title = $titles[$oldstep]; $objAdmin = new clsConfigAdmin($module,$section,TRUE); $objAdmin->SaveItems($_POST,TRUE); } } $section = $configs[$step]; $module = $mods[$step]; $title = $titles[$step]; $step++; if($step <= count($configs)+1) { $include_file = "install/postconfig.php"; } else $state = "theme_sel"; } if($state=="theme_sel") { $objThemes->CreateMissingThemes(); $include_file = "install/theme_select.php"; } if($state=="theme_set") { ## get & define Non-Blocking & Blocking versions ## $blocking_sockets = minimum_php_version("4.3.0")? 0 : 1; $ado = inst_GetADODBConnection(); $sql = "UPDATE ".$g_TablePrefix."ConfigurationValues SET VariableValue = '$blocking_sockets' WHERE VariableName='SocketBlockingMode'"; $ado->Execute($sql); ## get & define Non-Blocking & Blocking versions ## $theme_id = $_POST["theme"]; $pathchar="/"; //$objThemes->SetPrimaryTheme($theme_id); $t = $objThemes->GetItem($theme_id); $t->Set("Enabled",1); $t->Set("PrimaryTheme",1); $t->Update(); $t->VerifyTemplates(); $include_file = "install/install_finish.php"; $state="finish"; } if ($state == "adm_login") { echo "<script>window.location='index.php';</script>"; } switch($state) { case "modselect": $title = "Select Modules"; $help = "<p>Select the In-Portal modules you wish to install. The modules listed to the right "; $help .="are all modules included in this installation that are licensed to run on this server. </p>"; break; case "reinstall": $title = "Installation Maintenance"; $help = "<p>A Configuration file has been detected on your system and it appears In-Portal is correctly installed. "; $help .="In order to work with the maintenance functions provided to the left you must provide the Intechnic "; $help .="Username and Password you used when obtaining the license file residing on the server, or your admin Root password. "; $help .=" <i>(Use Username 'root' if using your root password)</i></p>"; $help .= "<p>To removing your existing database and start with a fresh installation, select the first option "; $help .= "provided. Note that this operation cannot be undone and no backups are made! Use at your own risk.</p>"; $help .="<p>If you wish to scrap your current installation and install to a new location, choose the second option. "; $help .="If this option is selected you will be prompted for new database configuration information.</p>"; $help .="<p>The <i>Update License Information</i> option is used to update your In-Portal license data. Select this option if you have "; $help .="modified your licensing status with Intechnic, or you have received new license data via email</p>"; break; case "RootPass": $title = "Set Admin Root Password"; $help = "<p>The Root Password is initially required to access the admin sections of In-Portal. "; $help .="The root user cannot be used to access the front-end of the system, so it is recommended that you "; $help .="create additional users with admin privlidges.</p>"; break; case "finish": $title = "Thank You!"; $help ="<P>Thanks for using In-Portal! Be sure to visit <A TARGET=\"_new\" HREF=\"http://www.in-portal.net\">www.in-portal.net</A> "; $help.=" for the latest news, module releases and support. </p>"; break; case "license": $title = "License Configuration"; $help ="<p>A License is required to run In-Portal on a server connected to the Internet. You "; $help.="can run In-Portal on localhost, non-routable IP addresses, or other computers on your LAN. "; $help.="If Intechnic has provided you with a license file, upload it here. Otherwise select the first "; $help.="option to allow Install to download your license for you.</p>"; $help.="<p>If a valid license has been detected on your server, you can choose the <i>Use Existing License</i> "; $help.="and continue the installation process</p>"; break; case "domain_select": $title="Select Licensed Domain"; $help ="<p>Select the domain you wish to configure In-Portal for. The <i>Other</i> option "; $help.=" can be used to configure In-Portal for use on a local domain.</p>"; $help.="<p>For local domains, enter the hostname or LAN IP Address of the machine running In-Portal.</p>"; break; case "db_reconfig": case "dbinfo": $title="Database Configuration"; $help = "<p>In-Portal needs to connect to your Database Server. Please provide the database server type*, "; $help .="host name (<i>normally \"localhost\"</i>), Database user name, and database Password. "; $help .="These fields are required to connect to the database.</p><p>If you would like In-Portal "; $help .="to use a table prefix, enter it in the field provided. This prefix can be any "; $help .=" text which can be used in the names of tables on your system. The characters entered in this field "; $help .=" are placed <i>before</i> the names of the tables used by In-Portal. For example, if you enter \"inp_\""; $help .=" into the prefix field, the table named Category will be named inp_Category.</p>"; break; case "lang_select": $title="Language Pack Installation"; $help = "<p>Select the language packs you wish to install. Each language pack contains all the phrases "; $help .="used by the In-Portal administration and the default template set. Note that at least one "; $help .="pack <b>must</b> be installed.</p>"; break; case "lang_default": $title="Select Default Language"; $help = "<p>Select which language should be considered the \"default\" language. This is the language "; $help .="used by In-Portal when a language has not been selected by the user. This selection is applicable "; $help .="to both the administration and front-end.</p>"; break; case "lang_install": $title="Installing Language Packs"; $help = "<p>The language packs you have selected are being installed. You may install more languages at a "; $help.="later time from the Regional admin section.</p>"; break; case "postconfig_1": $help = "<P>These options define the general operation of In-Portal. Items listed here are "; $help .="required for In-Portal's operation.</p><p>When you have finished, click <i>save</i> to continue.</p>"; break; case "postconfig_2": $help = "<P>User Management configuration options determine how In-Portal manages your user base.</p>"; $help .="<p>The groups listed to the right are pre-defined by the installation process and may be changed "; $help .="through the Groups section of admin.</p>"; break; case "postconfig_3": $help = "<P>The options listed here are used to control the category list display functions of In-Portal. </p>"; break; case "theme_sel": $title="Select Default Theme"; $help = "<P>This theme will be used whenever a front-end session is started. "; $help .="If you intend to upload a new theme and use that as default, you can do so through the "; $help .="admin at a later date. A default theme is required for session management.</p>"; break; case "get_license": $title="Download License from Intechnic"; $help ="<p>A License is required to run In-Portal on a server connected to the Internet. You "; $help.="can run In-Portal on localhost, non-routable IP addresses, or other computers on your LAN.</p>"; $help.="<p>Here as you have selected download license from Intechnic you have to input your username and "; $help.="password of your In-Business account in order to download all your available licenses.</p>"; break; case "download_license": $title="Download License from Intechnic"; $help ="<p>A License is required to run In-Portal on a server connected to the Internet. You "; $help.="can run In-Portal on localhost, non-routable IP addresses, or other computers on your LAN.</p>"; $help.="<p>Please choose the license from the drop down for this site! </p> "; break; case "restore_select": $title="Select Restore File"; $help = "<P>Select the restore file to use to reinstall In-Portal. If your backups are not performed "; $help .= "in the default location, you can enter the location of the backup directory and click the "; $help .="<i>Update</i> button.</p>"; case "restore_run": $title= "Restore in Progress"; $help = "<P>Restoration of your system is in progress. When the restore has completed, the installation "; $help .="will continue as normal. Hitting the <i>Cancel</i> button will restart the entire installation process. "; break; case "warning": $title = "Restore in Progress"; $help = "<p>Please approve that you understand that you are restoring your In-Portal data base from other version of In-Portal.</p>"; break; case "update": $title = "Update In-Portal"; $help = "<p>Select modules from the list, you need to update to the last downloaded version of In-Portal</p>"; break; } if ($_POST['next_step']) { $tmp_step = $_POST['next_step']; } else if ($_GET['next_step']) { $tmp_step = $_GET['next_step']; } if (!$tmp_step) { $tmp_step = 1; } if ($got_license == 1) { $tmp_step++; } $next_step = $tmp_step + 1; if ($general_error != '') { $state = ''; $title = ''; $help = ''; $general_error = $general_error.'<br /><br />Installation cannot continue!'; } if ($include_file == '' && $general_error == '' && $state == '') { $state = ''; $title = ''; $help = ''; $filename = $pathtoroot.$admin."/install/inportal_remove.sql"; RunSQLFile($ado,$filename); $general_error = 'Unexpected installation error! <br /><br />Installation has been stopped!'; } if ($restore_error != '') { $next_step = 3; $tmp_step = 2; } if ($PassError != '') { $tmp_step = 4; $next_step = 5; } if ($DomainError != '') { $tmp_step--; $next_step = $tmp_step + 1; } if ($db_error != '') { $tmp_step--; $next_step = $tmp_step + 1; } if ($state == "warning") { $tmp_step--; $next_step = $tmp_step + 1; } ?> <tr height="100%"> <td valign="top"> <table cellpadding=10 cellspacing=0 border=0 width="100%" height="100%"> <tr valign="top"> <td style="width: 200px; background: #009ff0 url(images/bg_install_menu.gif) no-repeat bottom right; border-right: 1px solid #000"> <img src="images/spacer.gif" width="180" height="1" border="0" alt=""><br> <span class="admintitle-white">Installation</span> <!--<ol class="install"> <li class="current">Licence Verification <li>Configuration <li>File Permissions <li>Security <li>Integrity Check </ol> </td>--> <?php if ($general_error == '') { ?> <?php if ($install_type == 1) { ?> <ol class="install"> <li <?php if ($tmp_step == 1) { ?>class="current"<?php } ?>>Database Configuration <li <?php if ($tmp_step == 2 || $_POST['lic_opt'] == 1) { ?>class="current"<?php } ?>>Select License <li <?php if ($tmp_step == 3 && $_POST['lic_opt'] != 1) { ?>class="current"<?php } ?>>Select Domain <li <?php if ($tmp_step == 4 ) { ?>class="current"<?php } ?>>Set Root Password <li <?php if ($tmp_step == 5) { ?>class="current"<?php } ?>>Select Modules to Install <li <?php if ($tmp_step == 6) { ?>class="current"<?php } ?>>Install Language Packs <li <?php if ($tmp_step == 7) { ?>class="current"<?php } ?>>Post-Install Configuration <li <?php if ($tmp_step == 8) { ?>class="current"<?php } ?>>Finish </ol> <?php } else if ($install_type == 2) { ?> <ol class="install"> <li <?php if ($tmp_step == 1 || $login_error != '' || $inst_error != '') { ?>class="current"<?php } ?>>License Verification <!--<li <?php if (($tmp_step == 2 && $login_error == '' && $inst_error == '') || $_POST['lic_opt'] == 1) { ?>class="current"<?php } ?>>Select License <li <?php if ($tmp_step == 3 && $_POST['lic_opt'] != 1) { ?>class="current"<?php } ?>>Select Domain <li <?php if ($tmp_step == 4) { ?>class="current"<?php } ?>>Set Root Password <li <?php if ($tmp_step == 5) { ?>class="current"<?php } ?>>Select Modules to Install <li <?php if ($tmp_step == 6) { ?>class="current"<?php } ?>>Install Language Packs <li <?php if ($tmp_step == 7) { ?>class="current"<?php } ?>>Post-Install Configuration <li <?php if ($tmp_step == 8) { ?>class="current"<?php } ?>>Finish--> </ol> <?php } else if ($install_type == 3) { ?> <ol class="install"> <li>License Verification <li <?php if ($tmp_step == 2) { ?>class="current"<?php } ?>>Database Configuration <li <?php if ($tmp_step == 3 || $_POST['lic_opt'] == 1) { ?>class="current"<?php } ?>>Select License <li <?php if ($tmp_step == 4 && $_POST['lic_opt'] != 1) { ?>class="current"<?php } ?>>Select Domain <li <?php if ($tmp_step == 5) { ?>class="current"<?php } ?>>Set Root Password <li <?php if ($tmp_step == 6) { ?>class="current"<?php } ?>>Select Modules to Install <li <?php if ($tmp_step == 7) { ?>class="current"<?php } ?>>Install Language Packs <li <?php if ($tmp_step == 8) { ?>class="current"<?php } ?>>Post-Install Configuration <li <?php if ($tmp_step == 9) { ?>class="current"<?php } ?>>Finish </ol> <?php } else if ($install_type == 4) { ?> <ol class="install"> <li <?php if ($tmp_step == 1 || $login_error != '' || $inst_error != '') { ?>class="current"<?php } ?>>License Verification <li <?php if (($tmp_step == 2 && $login_error == '' && $inst_error == '') || $_POST['lic_opt'] == 1) { ?>class="current"<?php } ?>>Select License <li <?php if ($tmp_step == 3 && $_POST['lic_opt'] != 1) { ?>class="current"<?php } ?>>Select Domain <li <?php if ($tmp_step == 4) { ?>class="current"<?php } ?>>Set Root Password <li <?php if ($tmp_step == 5) { ?>class="current"<?php } ?>>Select Modules to Install <li <?php if ($tmp_step == 6) { ?>class="current"<?php } ?>>Install Language Packs <li <?php if ($tmp_step == 7) { ?>class="current"<?php } ?>>Post-Install Configuration <li <?php if ($tmp_step == 8) { ?>class="current"<?php } ?>>Finish </ol> <?php } else if ($install_type == 5) { ?> <ol class="install"> <li <?php if ($tmp_step == 1 || $login_error != '' || $inst_error != '') { ?>class="current"<?php } ?>>License Verification <li <?php if (($tmp_step == 2 && $login_error == '' && $inst_error == '') || $_POST['lic_opt'] == 1) { ?>class="current"<?php } ?>>Select License <li <?php if ($tmp_step == 3 && $_POST['lic_opt'] != 1) { ?>class="current"<?php } ?>>Select Domain <li <?php if ($tmp_step == 4) { ?>class="current"<?php } ?>>Finish </ol> <?php } else if ($install_type == 6) { ?> <ol class="install"> <li <?php if ($tmp_step == 1 || $login_error != '' || $inst_error != '') { ?>class="current"<?php } ?>>License Verification <li <?php if (($tmp_step == 2 && $login_error == '' && $inst_error == '') || $_GET['show_prev'] == 1 || $_POST['backupdir']) { ?>class="current"<?php } ?>>Select Backup File <li <?php if ($tmp_step == 3 && $_POST['lic_opt'] != 1 && $_GET['show_prev'] != 1 && !$_POST['backupdir']) { ?>class="current"<?php } ?>>Finish </ol> <?php } else if ($install_type == 7) { ?> <ol class="install"> <li <?php if ($tmp_step == 1 || $login_error != '' || $inst_error != '') { ?>class="current"<?php } ?>>License Verification <li <?php if ($tmp_step == 2 && $login_error == '' && $inst_error == '') { ?>class="current"<?php } ?>>Database Configuration <li <?php if ($tmp_step == 3) { ?>class="current"<?php } ?>>Finish </ol> <?php } else if ($install_type == 8) { ?> <ol class="install"> <li <?php if ($tmp_step == 1 || $login_error != '' || $inst_error != '') { ?>class="current"<?php } ?>>License Verification <li <?php if ($tmp_step == 2 && $login_error == '' && $inst_error == '') { ?>class="current"<?php } ?>>Select Modules to Upgrade - <li <?php if ($tmp_step == 3) { ?>class="current"<?php } ?>>Finish + <li <?php if ($tmp_step == 3) { ?>class="current"<?php } ?>>Language Pack Upgrade + <li <?php if ($tmp_step == 4) { ?>class="current"<?php } ?>>Finish </ol> <?php } ?> <?php include($include_file); ?> <?php } else { ?> <?php include("install/general_error.php"); ?> <?php } ?> <td width="40%" style="border-left: 1px solid #000; background: #f0f0f0"> <table width="100%" border="0" cellspacing="0" cellpadding="4"> <tr> <td class="subsectiontitle" style="border-bottom: 1px solid #000000; background-color:#999"><?php echo $title;?></td> </tr> <tr> <td class="text"><?php echo $help;?></td> </tr> </table> </td> </tr> </table> <br> </td> </tr> </table> </td> </tr> <tr> <td id="footer"> Powered by In-portal © 1997-2004, Intechnic Corporation. All rights reserved. <br><img src="images/spacer.gif" width="1" height="10" alt=""> </td> </tr> </table> </form> </body> </html> \ No newline at end of file Property changes on: trunk/admin/install.php ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.2 \ No newline at end of property +1.3 \ No newline at end of property Index: trunk/admin/install/lang_run.php =================================================================== --- trunk/admin/install/lang_run.php (revision 25) +++ trunk/admin/install/lang_run.php (revision 26) @@ -1,76 +1,77 @@ <?php function stats($caption,$myprogress,$totalnum) { - global $rootURL, $CancelURL, $admin; + global $rootURL, $CancelURL, $admin, $force_finish; + $step_num = $force_finish ? 3 : 6; if($totalnum>0) { $pct=round(($myprogress/ $totalnum)*100); } else $pct = 100; $o .=' <td> <img src="images/icon_install.gif" width="46" height="46" alt="" align="absmiddle"> <span class="admintitle">'.$caption.'</span><br><br> <!-- toolbar buttons //--> <table border="0" cellpadding="2" cellspacing="0" class="tableborder_full" width="100%" height="30"> <tr> - <td class="tablenav" width="580" nowrap background="images/tabnav_left.jpg"><span class="tablenav_link"> Step 6 - '.$caption."-".$pct.'%</span></td> + <td class="tablenav" width="580" nowrap background="images/tabnav_left.jpg"><span class="tablenav_link"> Step '.$step_num.' - '.$caption."-".$pct.'%</span></td> <td align="right" class="tablenav" background="images/tabnav_back.jpg" width="100%"><img src="images/blue_bar_help.gif" border="0" ><br></td> </tr> </table> <table border=0 cellpadding=0 cellspacing=0 width="100%" class="toolbar"> <tr> <td><img src="images/toolbar/tool_cancel.gif" id="img_Cancel" width="32" height="32" border="0" alt="Next Category" onMouseOut="swap(\'img_Cancel\', \'images/toolbar/tool_cancel.gif\');" onMouseOver="swap(\'img_Cancel\',\'images/toolbar/tool_cancel_f2.gif\');" onClick="history.go(-1);"></td> <!--<td><img src="images/toolbar/tool_divider.gif" width="4" height="32" border="0"><br></td>--> <td width="100%"> </td> </tr> </table> <!-- toolbar button \\--> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="tableborder"> <tr valign="top"> <td width="60%" bgcolor="#F0F0F0"><table width="100%" height="100%" border="0" cellspacing="0" cellpadding="4">'; echo "\n"; $o .= " <tr class=\"table_color2\"> <td ALIGN=\"center\"> <br/> <TABLE CLASS=\"tableborder_full\" width=\"75%\"> <TR border=1><TD bgcolor=\"#507F15\" width=\"".$pct."%\"> </TD>"; $comp_pct = 100-$pct; $o .= " <TD bgcolor=#FFFFFF width=\"".$comp_pct."%\"></TD></TR>"; $o .= " </TABLE><BR /><input type=button VALUE=\"Cancel\" CLASS=\"button\" ONCLICK=\"document.location='".$CancelURL."';\"> </td> </tr></table></td>"; //$o .= "<!--<tr><td class=\"tabletitle\" STYLE=\"border: 1px solid #000000;\" bgcolor=\"#333333\">".$caption."-".$pct."%</td></tr>-->"; //$o .= "<TR><TD align=\"middle\" bgcolor=\"#F0F0F0\"><br />"; //$o .= " <TABLE CLASS=\"tableborder_full\" width=\"75%\">"; //$o .=" <TR border=1><TD bgcolor=\"#507F15\" width=\"".$pct."%\"> </TD>"; //$comp_pct = 100-$pct; //$o .= " <TD bgcolor=#FFFFFF width=\"".$comp_pct."%\"></TD></TR>"; //$o .= " </TABLE>"; //$o .= " <BR /><input type=button VALUE=\"Cancel\" CLASS=\"button\" ONCLICK=\"document.location='".$CancelURL."';\">"; echo $o."\n"; //echo "</TD></TR></TABLE></td>"; } function reload($url) { print "<script language=\"javascript\">" ; print "setTimeout(\"document.location='$url';\",40);"; print " </script>"; //echo "<A HREF=\"$url\">Next </A>"; } $PageTitle = "Language Pack Installation In Progress"; $CancelURL = $rootURL ."admin/install.php"; stats($PageTitle,$Offset,$Total); reload($NextUrl); ?> Property changes on: trunk/admin/install/lang_run.php ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1 \ No newline at end of property +1.2 \ No newline at end of property