$section) { foreach($section as $key => $value) { $key = "g_".str_replace('-', '', $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"; // simulate rootURL variable: begin $rootURL = 'http://'.dirname($_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']); $tmp = explode('/', $rootURL); if( $tmp[ count($tmp) - 1 ] == $admin) unset( $tmp[ count($tmp) - 1 ] ); $rootURL = implode('/', $tmp).'/'; unset($tmp); //echo "RU: $rootURL
"; // simulate rootURL variable: end $db_savings = Array('dbinfo', 'db_config_save', 'db_reconfig_save'); //, 'reinstall_process' if( isset($g_DBType) && $g_DBType && strlen($state)>0 && !in_array($state, $db_savings) ) { 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"); $helpURL = $rootURL.$admin.'/help/install_help.php?destform=popup&help_usage=install'; ?> In-Portal Installation
">
'; } $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 .= '

'; } $general_error .= "In-portal's Theme directory must be writable (".$pathtoroot."themes/)."; //die(); } if(!is_writable($pathtoroot."kernel/images/")) { if ($general_error != '') { $general_error .= '

'; } $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 .= '

'; } $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 .= '

'; } $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") { $login_err_mesg = ''; // always init vars before use if( !isset($g_License) ) $g_License = ''; $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 { $act = ''; if (ConvertVersion($g_InPortal) >= ConvertVersion("1.0.5")) { $act = 'check'; } $rfile = @fopen(GET_LICENSE_URL."?login=".md5($_POST['UserName'])."&password=".md5($_POST['UserPass'])."&action=$act&license_code=".base64_encode($g_LicenseCode)."&version=".GetMaxPortalVersion($pathtoroot.$admin)."&domain=".base64_encode($_SERVER['HTTP_HOST']), "r"); if (!$rfile) { $login_err_mesg = "Unable to connect to the Intechnic server!"; $LoggedIn = false; } else { $rcontents = ''; while (!feof($rfile)) { $line = fgets($rfile, 10000); $rcontents .= $line; } @fclose($rfile); if (substr($rcontents, 0, 5) == 'Error') { $login_err_mesg = substr($rcontents, 6); $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); // removing other tables $tables = $ado->MetaTables(); foreach($tables as $tab_name) { if (strstr($tab_name, $g_TablePrefix."ses_")) { $sql = "DROP TABLE IF EXISTS $tab_name"; $ado->Execute($sql); } } /* 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 = $login_err_mesg;//"Invalid Username or Password - Try Again"; } } if ($state == "upgrade") { $ado =& inst_GetADODBConnection(); $Modules = array(); $Texts = array(); if (ConvertVersion(GetMaxPortalVersion($pathtoroot.$admin)) >= ConvertVersion("1.0.5") && ($g_LicenseCode == '' && $g_License != '')) { $state = 'reinstall'; $inst_error = "Your license must be updated before you can upgrade. Please don't use 'Existing License' option, instead either Download from Intechnic or Upload a new license file!"; } else { $sql = "SELECT Name, Version FROM ".$g_TablePrefix."Modules ORDER BY LoadOrder asc"; $rs = $ado->Execute($sql); $i = 0; while ($rs && !$rs->EOF) { $p = strtolower($rs->fields['Name']); if ($p == 'in-portal') { $p = ''; } $dir_name = $pathtoroot.$p."/admin/install/upgrades/"; $dir = @dir($dir_name); while ($file = $dir->read()) { if ($file != "." && $file != ".." && !is_dir($dir_name.$file)) { if (strstr($file, 'inportal_upgrade_v')) { $file = str_replace("inportal_upgrade_v", "", $file); $file = str_replace(".sql", "", $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 && ConvertVersion($file) > ConvertVersion($rs->fields['Version'])) { if ($Modules[$i-1] == $rs->fields['Name']) { $Texts[$i-1] = $rs->fields['Name']." (".$rs->fields['Version']." ".prompt_language("la_to")." ".$file.")"; $i--; } else { $Texts[$i] = $rs->fields['Name']." (".$rs->fields['Version']." ".prompt_language("la_to")." ".$file.")"; $Modules[$i] = $rs->fields['Name']; } $i++; } } } } $rs->MoveNext(); } $include_file = $pathtoroot.$admin."/install/upgrade.php"; } } if ($state == "upgrade_process") { $ado =& inst_GetADODBConnection(); $mod_arr = $_POST['modules']; $mod_str = ''; foreach ($mod_arr as $tmp_mod) { $mod_str .= "'$tmp_mod',"; } $mod_str = substr($mod_str, 0, strlen($mod_str) - 1); $sql = "SELECT Name FROM ".$g_TablePrefix."Modules WHERE Name IN ($mod_str) ORDER BY LoadOrder"; $rs = $ado->Execute($sql); $mod_arr = array(); while ($rs && !$rs->EOF) { $mod_arr[] = $rs->fields['Name']; $rs->MoveNext(); } foreach($mod_arr as $p) { $mod_name = strtolower($p); $sql = "SELECT Version FROM ".$g_TablePrefix."Modules WHERE Name = '$p'"; $rs = $ado->Execute($sql); $current_version = $rs->fields['Version']; if ($mod_name == 'in-portal') { $mod_name = ''; } $dir_name = $pathtoroot.$mod_name."/admin/install/upgrades/"; $dir = @dir($dir_name); $upgrades_arr = Array(); $new_version = ''; while ($file = $dir->read()) { if ($file != "." && $file != ".." && !is_dir($dir_name.$file)) { if (strstr($file, 'inportal_upgrade_v')) { $upgrades_arr[] = $file; } } } usort($upgrades_arr, "VersionSort"); foreach($upgrades_arr as $file) { $file_tmp = str_replace("inportal_upgrade_v", "", $file); $file_tmp = str_replace(".sql", "", $file_tmp); if (ConvertVersion($file_tmp) > ConvertVersion($current_version)) { $filename = $pathtoroot.$mod_name."/admin/install/upgrades/$file"; //echo "Running: $filename
"; if(file_exists($filename)) { RunSQLFile($ado, $filename); } } } set_ini_value("Module Versions", $p, GetMaxPortalVersion($pathtoroot.$mod_name."/admin/")); save_values(); } $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 = inst_parse_portal_ini($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 = VerifyDB('db_reconfig', 'finish', 'SaveDBConfig', true); } if($state=="db_reconfig") { $include_file = $pathtoroot.$admin."/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 = inst_parse_portal_ini($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 = $pathtoroot.$admin."/install/warning.php"; } } else { if ($_POST['backupdate'] != '') { $include_file = $pathtoroot.$admin."/install/restore_select.php"; $restore_error = "$backupfile not found or could not be read"; } else { $include_file = $pathtoroot.$admin."/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 = $pathtoroot.$admin."/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 = $pathtoroot.$admin."/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 = inst_parse_portal_ini($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 = VerifyDB('dbinfo', 'license'); } if($state=="dbinfo") { if ($install_type == '') { $install_type = 1; } $include_file = $pathtoroot.$admin."/install/dbinfo.php"; } if ($state == "download_license") { $ValidLicense = FALSE; $lic_login = isset($_POST['login']) ? $_POST['login'] : ''; $lic_password = isset($_POST['password']) ? $_POST['password'] : ''; if ($lic_login != '' && $lic_password != '') { // Here we determine weather login is ok & check available licenses $rfile = @fopen(GET_LICENSE_URL."?login=".md5($_POST['login'])."&password=".md5($_POST['password'])."&version=".GetMaxPortalVersion($pathtoroot.$admin)."&domain=".base64_encode($_SERVER['HTTP_HOST']), "r"); if (!$rfile) { $get_license_error = "Unable to connect to the Intechnic server! Please try again later!"; $state = "get_license"; $include_file = $pathtoroot.$admin."/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 = $pathtoroot.$admin."/install/get_license.php"; } else { if (substr($rcontents, 0, 3) == "SEL") { $state = "download_license"; $license_select = substr($rcontents, 4); $include_file = $pathtoroot.$admin."/install/download_license.php"; } else { // Here we get one license $tmp_data = explode('Code==:', $rcontents); $data = base64_decode(str_replace("In-Portal License File - do not edit!\n", "", $tmp_data[0])); inst_ParseLicense($data); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); if($ValidLicense) { set_ini_value("Intechnic","License",base64_encode($data)); set_ini_value("Intechnic","LicenseCode",$tmp_data[1]); 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 = $pathtoroot.$admin."/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'])."&version=".GetMaxPortalVersion($pathtoroot.$admin)."&domain=".base64_encode($_POST['domain']), "r"); if (!$rfile) { $get_license_error = "Unable to connect to the Intechnic server! Please try again later!"; $state = "get_license"; $include_file = $pathtoroot.$admin."/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 = $pathtoroot.$admin."/install/download_license.php"; } else { $tmp_data = explode('Code==:', $rcontents); $data = base64_decode(str_replace("In-Portal License File - do not edit!\n", "", $tmp_data[0])); inst_ParseLicense($data); $ValidLicense = ((strlen($i_User)>0) && (strlen($i_Pswd)>0)); if($ValidLicense) { set_ini_value("Intechnic","License",base64_encode($data)); // old licensing script doen't return 2nd parameter (licanse code) if( isset($tmp_data[1]) ) set_ini_value("Intechnic","LicenseCode",$tmp_data[1]); save_values(); $state="domain_select"; } else { $license_error="Invalid License File"; } if(!$ValidLicense) { $state="license"; } } } } } if($state=="license_process") { $ValidLicense = FALSE; $tmp_lic_opt = GetVar('lic_opt', true); switch($tmp_lic_opt) { case 1: /* download from intechnic */ $include_file = $pathtoroot.$admin."/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); } $tmp_data = inst_LoadLicense(FALSE,$pathtoroot."themes/tmp.lic"); $data = $tmp_data[0]; @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)); set_ini_value("Intechnic","LicenseCode",$tmp_data[1]); 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: //set_ini_value("Intechnic","License",base64_encode("local")); //set_ini_value("Intechnic","LicenseCode",base64_encode("local")); //save_values(); $state="domain_select"; break; } if($ValidLicense) $state="domain_select"; } if($state=="license") { $include_file = $pathtoroot.$admin."/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 "
"; print_r($dir); echo "
"; while ($file = $dir->read()) { if ($file != "." && $file != ".." && !is_dir($dir_name.$file)) { if (strstr($file, 'inportal_upgrade_v')) { $file = str_replace("inportal_upgrade_v", "", $file); $file = str_replace(".sql", "", $file); if ($p == '') { $p = 'in-portal'; } $sql = "SELECT Version FROM ".$g_TablePrefix."Modules WHERE Name = '".$p."'"; $rs = $ado->Execute($sql); if (ConvertVersion($rs->fields['Version']) < ConvertVersion($file)) { $show_upgrade = true; } } } } } if ( !isset($install_type) || $install_type == '') { $install_type = 2; } $include_file = $pathtoroot.$admin."/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 = $pathtoroot.$admin."/install/login.php"; } if($state=="set_domain") { if( !is_array($i_Keys) || !count($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']; if (strstr($domain, $i_Keys[0]['domain']) || inst_IsLocalSite($domain)) { set_ini_value("Intechnic","Domain",$domain); save_values(); $state="runsql"; } else { $DomainError = 'Domain name selected does not match domain name in the license!'; $state = "domain_select"; } } else { $domain = str_replace(" ", "", $_POST["other"]); if ($domain != '') { if (strstr($domain, $i_Keys[0]['domain']) || inst_IsLocalSite($domain)) { set_ini_value("Intechnic","Domain",$domain); save_values(); $state="runsql"; } else { $DomainError = 'Domain name entered does not match domain name in the license!'; $state = "domain_select"; } } 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 = $pathtoroot.$admin."/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 = $pathtoroot.$admin."/install/install_finish.php"; $state="finish"; } } if ($state == "finish") { $ado =& inst_GetADODBConnection(); $PhraseTable = GetTablePrefix()."ImportPhrases"; $EventTable = GetTablePrefix()."ImportEvents"; $ado->Execute("DROP TABLE IF EXISTS $PhraseTable"); $ado->Execute("DROP TABLE IF EXISTS $EventTable"); $include_file = $pathtoroot.$admin."/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 = $pathtoroot.$admin."/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;$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!'; } } 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", $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 = GetTablePrefix(); $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"; } } } } if($state=="lang_default_set") { // phpinfo(INFO_VARIABLES); /*$ado =& inst_GetADODBConnection(); $PhraseTable = GetTablePrefix()."ImportPhrases"; $EventTable = GetTablePrefix()."ImportEvents"; $ado->Execute("DROP TABLE IF EXISTS $PhraseTable"); $ado->Execute("DROP TABLE IF EXISTS $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 = $pathtoroot.$admin."/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( !isset($objTagList) || !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 != '' && !strstr($file, 'changelog') && !strstr($file, 'readme')) { $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 = $pathtoroot.$admin."/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["HTTP_HOST"]); //$g_DomainName= $_SERVER["HTTP_HOST"]; 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); $sql = "UPDATE ".$g_TablePrefix."ConfigurationValues SET VariableValue = '".$_SERVER['DOCUMENT_ROOT'].$sitepath."admin/backupdata' WHERE VariableName='Backup_Path'"; $ado->Execute($sql); $Modules = inst_GetModuleList(); $include_file = $pathtoroot.$admin."/install/modselect.php"; } if(substr($state,0,10)=="postconfig") { $p = explode("_",$state); $step = $p[1]; if ($_POST['Site_Path'] != '') { $sql = "SELECT Name, Version FROM ".$g_TablePrefix."Modules"; $rs = $ado->Execute($sql); $modules_str = ''; while ($rs && !$rs->EOF) { $modules_str .= $rs->fields['Name'].' ('.$rs->fields['Version'].'),'; $rs->MoveNext(); } $modules_str = substr($modules_str, 0, strlen($modules_str) - 1); $rfile = @fopen(GET_LICENSE_URL."?url=".base64_encode($_SERVER['HTTP_HOST'].$_POST['Site_Path'])."&modules=".base64_encode($modules_str)."&license_code=".base64_encode($g_LicenseCode)."&version=".GetMaxPortalVersion($pathtoroot.$admin)."&domain=".md5($_SERVER['HTTP_HOST']), "r"); if (!$rfile) { //$get_license_error = "Unable to connect to the Intechnic server! Please try again later!"; //$state = "postconfig_1"; //$include_file = $pathtoroot.$admin."/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($oldstepSaveItems($_POST,TRUE); } } $section = $configs[$step]; $module = $mods[$step]; $title = $titles[$step]; $step++; if($step <= count($configs)+1) { $include_file = $pathtoroot.$admin."/install/postconfig.php"; } else $state = "theme_sel"; } if($state=="theme_sel") { $objThemes->CreateMissingThemes(); $include_file = $pathtoroot.$admin."/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 = $pathtoroot.$admin."/install/install_finish.php"; $state="finish"; } if ($state == "adm_login") { echo ""; } // init variables $vars = Array('db_error','restore_error','PassError','DomainError','login_error','inst_error'); foreach($vars as $var_name) ReSetVar($var_name); switch($state) { case "modselect": $title = "Select Modules"; $help = "

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.

"; break; case "reinstall": $title = "Installation Maintenance"; $help = "

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 .=" (Use Username 'root' if using your root password)

"; $help .= "

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.

"; $help .="

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.

"; $help .="

The Update License Information 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

"; break; case "RootPass": $title = "Set Admin Root Password"; $help = "

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.

"; break; case "finish": $title = "Thank You!"; $help ="

Thanks for using In-Portal! Be sure to visit www.in-portal.net "; $help.=" for the latest news, module releases and support.

"; break; case "license": $title = "License Configuration"; $help ="

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.

"; $help.="

If a valid license has been detected on your server, you can choose the Use Existing License "; $help.="and continue the installation process

"; break; case "domain_select": $title="Select Licensed Domain"; $help ="

Select the domain you wish to configure In-Portal for. The Other option "; $help.=" can be used to configure In-Portal for use on a local domain.

"; $help.="

For local domains, enter the hostname or LAN IP Address of the machine running In-Portal.

"; break; case "db_reconfig": case "dbinfo": $title="Database Configuration"; $help = "

In-Portal needs to connect to your Database Server. Please provide the database server type*, "; $help .="host name (normally \"localhost\"), Database user name, and database Password. "; $help .="These fields are required to connect to the database.

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 before 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.

"; break; case "lang_select": $title="Language Pack Installation"; $help = "

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 must be installed.

"; break; case "lang_default": $title="Select Default Language"; $help = "

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.

"; break; case "lang_install": $title="Installing Language Packs"; $help = "

The language packs you have selected are being installed. You may install more languages at a "; $help.="later time from the Regional admin section.

"; break; case "postconfig_1": $help = "

These options define the general operation of In-Portal. Items listed here are "; $help .="required for In-Portal's operation.

When you have finished, click save to continue.

"; break; case "postconfig_2": $help = "

User Management configuration options determine how In-Portal manages your user base.

"; $help .="

The groups listed to the right are pre-defined by the installation process and may be changed "; $help .="through the Groups section of admin.

"; break; case "postconfig_3": $help = "

The options listed here are used to control the category list display functions of In-Portal.

"; break; case "theme_sel": $title="Select Default Theme"; $help = "

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.

"; break; case "get_license": $title="Download License from Intechnic"; $help ="

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.="

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.

"; break; case "download_license": $title="Download License from Intechnic"; $help ="

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.="

Please choose the license from the drop down for this site!

"; break; case "restore_select": $title="Select Restore File"; $help = "

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 .="Update button.

"; case "restore_run": $title= "Restore in Progress"; $help = "

Restoration of your system is in progress. When the restore has completed, the installation "; $help .="will continue as normal. Hitting the Cancel button will restart the entire installation process. "; break; case "warning": $title = "Restore in Progress"; $help = "

Please approve that you understand that you are restoring your In-Portal data base from other version of In-Portal.

"; break; case "update": $title = "Update In-Portal"; $help = "

Select modules from the list, you need to update to the last downloaded version of In-Portal

"; break; } $tmp_step = GetVar('next_step', true); if (!$tmp_step) { $tmp_step = 1; } if ( isset($got_license) && $got_license == 1) { $tmp_step++; } $next_step = $tmp_step + 1; if ($general_error != '') { $state = ''; $title = ''; $help = ''; $general_error = $general_error.'

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!

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; } ?>
In-portal In-portal  
In-Portal Version : English US



Installation
  1. class="current">Database Configuration
  2. class="current">Select License
  3. class="current">Select Domain
  4. class="current">Set Root Password
  5. class="current">Select Modules to Install
  6. class="current">Install Language Packs
  7. class="current">Post-Install Configuration
  8. class="current">Finish
  1. class="current">License Verification
  1. License Verification
  2. class="current">Database Configuration
  3. class="current">Select License
  4. class="current">Select Domain
  5. class="current">Set Root Password
  6. class="current">Select Modules to Install
  7. class="current">Install Language Packs
  8. class="current">Post-Install Configuration
  9. class="current">Finish
  1. class="current">License Verification
  2. class="current">Select License
  3. class="current">Select Domain
  4. class="current">Set Root Password
  5. class="current">Select Modules to Install
  6. class="current">Install Language Packs
  7. class="current">Post-Install Configuration
  8. class="current">Finish
  1. class="current">License Verification
  2. class="current">Select License
  3. class="current">Select Domain
  4. class="current">Finish
  1. class="current">License Verification
  2. class="current">Select Backup File
  3. class="current">Finish
  1. class="current">License Verification
  2. class="current">Database Configuration
  3. class="current">Finish
  1. class="current">License Verification
  2. class="current">Select Modules to Upgrade
  3. class="current">Language Pack Upgrade
  4. class="current">Finish

Powered by In-portal © 1997-2004, Intechnic Corporation. All rights reserved.