2
0
mirror of https://github.com/ACSPRI/queXS synced 2024-04-02 12:12:16 +00:00
Files
CATI_Tool/include/limesurvey/admin/upgrade/cmd_install.php

187 lines
6.6 KiB
PHP

<?php
/*
* LimeSurvey
* Copyright (C) 2007 The LimeSurvey Project Team / Nicolas Barcet
* All rights reserved.
* License: http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* LimeSurvey is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*
* $Id: index.php 4729 2008-05-31 21:32:02Z nijaba $
*/
if (isset($argv[1]) && ($argv[1]=='install'|| $argv[1]=='upgrade') && isset($argv[2]) && isset($argv[3]))
{
require_once($argv[2]);
require_once($argv[3]);
}
else
{
require_once(dirname(__FILE__).'/../../config-defaults.php');
$cmd_install=true;
require_once(dirname(__FILE__).'/../../common.php');
}
// SET THE LANGUAGE???? -> DEFAULT SET TO EN FOR NOW
require_once($rootdir.'/classes/core/language.php');
$clang = new limesurvey_lang("en");
ob_implicit_flush(true);
if (isset($argv[1]) && $argv[1]=='install')
{
print("trying to create and populate $databasename on $databaselocation:$databaseport ($databasetype) \n");
if (!$database_exists) //Database named in config.php does not exist
{
if($connect->Execute("CREATE DATABASE $databasename;"))
{
print("\nDatabase $databasename on $databasetype CREATED \n");
}
else
{
print("\nDatabase $databasename on $databasetype COULD NOT BE CREATED \n");
print("\n".$connect->ErrorMsg());
return 1;
}
}
else
{
if ($databasetype=='mysql' || $databasetype=='mysqli') {$connect->Execute("ALTER DATABASE `$databasename` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;");} //Set the collation also for manually created DBs
print("\nDatabase $databasename on $databasetype EXISTS, not created \n");
}
// Connect to the database we created a sec ago or to the existing db.
if(!$connect->Connect($databaselocation,$databaseuser,$databasepass,$databasename))
{
print("\n".$connect->ErrorMsg());
return 1;
}
require_once($homedir."/classes/core/sha256.php");
$success = 0; // Let's be optimistic
$createdbtype=$databasetype;
if ($createdbtype=='mssql_n' || $createdbtype=='odbc_mssql' || $createdbtype=='odbtp') $createdbtype='mssql';
if ($createdbtype=='mssqlnative') $createdbtype == 'mssqlnative';
$sqlfile = dirname(__FILE__).'/create-'.$createdbtype.'.sql' ;
if (!empty($sqlfile)) {
if (!is_readable($sqlfile)) {
$success = false;
print "\nTried to populate database, but '". $sqlfile ."' doesn't exist!\n";
return $success;
} else {
$lines = file($sqlfile);
}
} else {
$sqlstring = trim($sqlstring);
if ($sqlstring{strlen($sqlstring)-1} != ";") {
$sqlstring .= ";"; // add it in if it's not there.
}
$lines[] = $sqlstring;
}
$command = '';
$connect->SetFetchMode(ADODB_FETCH_NUM);
foreach ($lines as $line) {
$line = rtrim($line);
$length = strlen($line);
if ($length and $line[0] <> '#' and substr($line,0,2) <> '--') {
if (substr($line, $length-1, 1) == ';') {
$line = substr($line, 0, $length-1); // strip ;
$command .= $line;
$command = str_replace('prefix_', $dbprefix, $command); // Table prefixes
$command = str_replace('$defaultuser', $defaultuser, $command); // variables By Moses
$command = str_replace('$defaultpass', SHA256::hashing($defaultpass), $command); // variables By Moses
$command = str_replace('$siteadminname', $siteadminname, $command);
$command = str_replace('$siteadminemail', $siteadminemail, $command); // variables By Moses
$command = str_replace('$defaultlang', $defaultlang, $command); // variables By Moses
$command = str_replace('$sessionname', 'ls'.sRandomChars(20,'123456789'), $command);
$command = str_replace('$databasetabletype', $databasetabletype, $command);
if(!$connect->Execute($command,false))
{
print ("\n".$clang->gT("Executing").".....".$command."...".$clang->gT('Failed! Reason:')."\n".$connect->ErrorMsg()."\n\n");
$success=1;
}
$command = '';
} else {
$command .= $line;
}
}
}
$connect->SetFetchMode(ADODB_FETCH_ASSOC);
if($success == 0)
{
print("Database $databasename on $databasetype POPULATED");
print("\n\neverything went fine");
return $success;
}
else
{
print("\n\nSomething is strange");
print("\nplease check you Database and Settings");
return $success;
}
// if (modify_database(dirname(__FILE__).'\create-'.$databasetype.'.sql'))
// {
// print("\nDatabase $databasename on $databasetype POPULATED \n");
// return 0;
// } else {
// print("Could not populate $databasename on $databasetype\n");
// return 1;
// }
}
elseif (isset($argv[1]) && $argv[1]=='upgrade')
{
$upgradedbtype=$databasetype;
if ($upgradedbtype=='mssql_n' || $upgradedbtype=='odbc_mssql' || $upgradedbtype=='odbtp') $upgradedbtype='mssql';
if ($upgradedbtype=='mssqnlative') $upgradedbtype='mssqlnative';
include ('upgrade-all.php');
include ('upgrade-'.$upgradedbtype.'.php');
$usquery = "SELECT stg_value FROM ".db_table_name("settings_global")." where stg_name='DBVersion'";
$usresult = db_execute_assoc($usquery);
$usrow = $usresult->FetchRow();
if (intval($usrow['stg_value'])<$dbversionnumber)
{
print("Upgrading db to $dbversionnumber\n");
db_upgrade_all(intval($usrow['stg_value']));
db_upgrade(intval($usrow['stg_value']));
} else {
print("Already at db version $dbversionnumber\n");
}
return 0;
}
else
{
print("LimeSurvey Commandline Install\n");
print("Usage: cmd_install <option> < <<path1>> <<path2>> >\n");
print("<option> - 'install' or 'upgrade' \n");
print("<<path1>> - Full path including filename to a custom config-defaults.php\n");
print("<<path2>> - Full path including filename to a custom common.php\n");
print("Paths are optional. If used both paths must be set.\n");
return 2;
}
?>