_dbDriver) { case 'mysql': case 'mysqli': case 'mysqlnd': case 'pgsql': $tmp = explode(":", $settings->_dbHostname); $dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0]; if(isset($tmp[1])) $dsn .= ";port=".$tmp[1]; break; case 'sqlite': $dsn = $settings->_dbDriver.":".$settings->_dbDatabase; break; } $connTmp = new PDO($dsn, $settings->_dbUser, $settings->_dbPass); return $connTmp; } /* }}} */ function printError($error) { /* {{{ */ print "
\n"; print $error; print "
"; } /* }}} */ function printWarning($error) { /* {{{ */ print "
"; print "Warning
"; print $error; print "
"; } /* }}} */ function printCheckError($resCheck) { /* {{{ */ $hasError = false; foreach($resCheck as $keyRes => $paramRes) { if(isset($paramRes['type']) && $paramRes['type'] == 'error') $hasError = true; $errorMes = getMLText("settings_$keyRes"). " : " . getMLText("settings_".$paramRes["status"]); if (isset($paramRes["currentvalue"])) $errorMes .= "
=> " . getMLText("settings_currentvalue") . " : " . $paramRes["currentvalue"]; if (isset($paramRes["suggestionvalue"])) $errorMes .= "
=> " . getMLText("settings_suggestionvalue") . " : " . $paramRes["suggestionvalue"]; if (isset($paramRes["suggestion"])) $errorMes .= "
=> " . getMLText("settings_".$paramRes["suggestion"]); if (isset($paramRes["systemerror"])) $errorMes .= "
=> " . $paramRes["systemerror"]; if(isset($paramRes['type']) && $paramRes['type'] == 'error') printError($errorMes); else printWarning($errorMes); } return $hasError; } /* }}} */ function fileExistsInIncludePath($file) { /* {{{ */ $paths = explode(PATH_SEPARATOR, get_include_path()); $found = false; foreach($paths as $p) { $fullname = $p.DIRECTORY_SEPARATOR.$file; if(is_file($fullname)) { $found = $fullname; break; } } return $found; } /* }}} */ /** * Load default settings + set */ define("SEEDDMS_INSTALL", "on"); define("SEEDDMS_VERSION", "6.0.6"); require_once('../inc/inc.ClassSettings.php'); $configDir = Settings::getConfigDir(); /** * Check if ENABLE_INSTALL_TOOL exists in config dir */ if (!$configDir) { echo "Fatal error! I could not even find a configuration directory."; exit; } if (!file_exists($configDir."/ENABLE_INSTALL_TOOL")) { echo "For installation of SeedDMS, you must create the file conf/ENABLE_INSTALL_TOOL"; exit; } if (!file_exists($configDir."/settings.xml")) { if(!copy("settings.xml.template_install", $configDir."/settings.xml")) { echo "Could not create initial configuration file from template. Check directory permission of conf/."; exit; } } // Set folders settings $settings = new Settings(); $settings->load($configDir."/settings.xml"); $rootDir = realpath (".."); $rootDir = str_replace ("\\", "/" , $rootDir) . "/"; $installPath = realpath ("install.php"); $installPath = str_replace ("\\", "/" , $installPath); $tmpToDel = str_replace ($rootDir, "" , $installPath); $httpRoot = str_replace ($tmpToDel, "" , $_SERVER["REQUEST_URI"]); do { $httpRoot = str_replace ("//", "/" , $httpRoot, $count); } while ($count<>0); if(!$settings->_rootDir) $settings->_rootDir = $rootDir; elseif(realpath ("..") != realpath($settings->_rootDir)) { // Fix rootDir if required $msg = "Your Root directory has been modified to fit your installation path!"; $settings->_rootDir = realpath ("..")."/"; } if(!$settings->_contentDir) { $settings->_contentDir = realpath($settings->_rootDir."..") . '/data/'; $settings->_luceneDir = $settings->_contentDir . 'lucene/'; $settings->_stagingDir = $settings->_contentDir . 'staging/'; $settings->_cacheDir = $settings->_contentDir . 'cache/'; $settings->_backupDir = $settings->_contentDir . 'backup/'; } else { if(!$settings->_cacheDir) { $settings->_cacheDir = $settings->_contentDir . 'cache/'; } } $settings->_httpRoot = $httpRoot; if(isset($settings->_extraPath)) ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path')); /** * Include GUI + Language */ $theme = "bootstrap"; include("../inc/inc.Language.php"); include "../languages/en_GB/lang.inc"; include("../inc/inc.ClassUI.php"); UI::htmlStartPage("INSTALL"); UI::globalBanner(); UI::contentStart(); UI::contentHeading("SeedDMS Installation for version ".SEEDDMS_VERSION); if(isset($msg)) echo "
".$msg."
"; UI::contentContainerStart(); /** * Show phpinfo */ if (isset($_GET['phpinfo'])) { echo '' . getMLText("back") . ''; phpinfo(); UI::contentContainerEnd(); UI::contentEnd(); UI::htmlEndPage(); exit(); } /** * check if ENABLE_INSTALL_TOOL shall be removed */ if (isset($_GET['disableinstall'])) { /* {{{ */ if(file_exists($configDir."/ENABLE_INSTALL_TOOL")) { if(unlink($configDir."/ENABLE_INSTALL_TOOL")) { echo getMLText("settings_install_disabled"); echo "

"; echo '' . getMLText("settings_more_settings") .''; } else { echo getMLText("settings_cannot_disable"); echo "

"; echo '' . getMLText("back") . ''; } } else { echo getMLText("settings_cannot_disable"); echo "

"; echo '' . getMLText("back") . ''; } UI::contentContainerEnd(); UI::contentEnd(); UI::htmlEndPage(); exit(); } /* }}} */ /** * Check System */ if (printCheckError( $settings->checkSystem())) { /* {{{ */ if (function_exists("apache_get_version")) { echo "
Apache version: " . apache_get_version(); } echo "
PHP version: " . phpversion(); echo "
PHP include path: " . ini_get('include_path'); echo '
'; echo '
'; echo '' . getMLText("refresh") . ''; echo ' - '; echo '' . getMLText("version_info") . ''; exit; } /* }}} */ if (isset($_POST["action"])) $action=$_POST["action"]; else if (isset($_GET["action"])) $action=$_GET["action"]; else $action=NULL; $showform = true; if ($action=="setSettings") { /** * Get Parameters */ $settings->_rootDir = $_POST["rootDir"]; $settings->_httpRoot = $_POST["httpRoot"]; $settings->_contentDir = $_POST["contentDir"]; $settings->_luceneDir = $_POST["luceneDir"]; $settings->_stagingDir = $_POST["stagingDir"]; $settings->_cacheDir = $_POST["cacheDir"]; $settings->_extraPath = $_POST["extraPath"]; $settings->_dbDriver = $_POST["dbDriver"]; $settings->_dbHostname = $_POST["dbHostname"]; $settings->_dbDatabase = $_POST["dbDatabase"]; $settings->_dbUser = $_POST["dbUser"]; $settings->_dbPass = $_POST["dbPass"]; $settings->_coreDir = $_POST["coreDir"]; $settings->_luceneClassDir = $_POST["luceneClassDir"]; if(isset($settings->_extraPath)) ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path')); /** * Check Parameters, require version 3.3.x */ $hasError = printCheckError( $settings->check(substr(str_replace('.', '', SEEDDMS_VERSION), 0,2))); if (!$hasError) { // Create database if (isset($_POST["createDatabase"])) { $createOK = false; $errorMsg = ""; $connTmp =openDBConnection($settings); if ($connTmp) { // read SQL file if ($settings->_dbDriver=="mysql") $queries = file_get_contents("create_tables-innodb.sql"); elseif($settings->_dbDriver=="sqlite") $queries = file_get_contents("create_tables-sqlite3.sql"); elseif($settings->_dbDriver=="pgsql") $queries = file_get_contents("create_tables-postgres.sql"); else die(); // generate SQL query $queries = explode(";", $queries); // execute queries foreach($queries as $query) { // var_dump($query); $query = trim($query); if (!empty($query)) { $connTmp->exec($query); if ($connTmp->errorCode() != 0) { $errorMsg .= $connTmp->errorInfo()[2] . "
"; } } } } // error ? if (empty($errorMsg)) $createOK = true; $connTmp = null; // Show error if (!$createOK) { echo $errorMsg; $hasError = true; } } // create database if (!$hasError) { // Save settings $settings->save(); $needsupdate = false; $connTmp =openDBConnection($settings); if ($connTmp) { switch($settings->_dbDriver) { case 'mysql': case 'mysqli': case 'mysqlnd': case 'sqlite': $sql = 'select * from `tblVersion`'; break; case 'pgsql': $sql = 'select * from "tblVersion"'; break; } $res = $connTmp->query($sql); if($res) { if($rec = $res->fetch(PDO::FETCH_ASSOC)) { $updatedirs = array(); $d = dir("."); while (false !== ($entry = $d->read())) { if(preg_match('/update-([0-9.]*)/', $entry, $matches)) { $updatedirs[] = $matches[1]; } } $d->close(); echo "Your current database schema has version ".$rec['major'].'.'.$rec['minor'].'.'.$rec['subminor'].". Please run all (if any)
of the update scripts below in the listed order.

"; $connTmp = null; if($updatedirs) { asort($updatedirs); foreach($updatedirs as $updatedir) { if($updatedir > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) { $needsupdate = true; print "

Database update to version ".$updatedir." needed

"; if(file_exists('update-'.$updatedir.'/update.txt')) { print "

Please read the comments on updating this version. Read now

"; } print "

Run the update script.

"; } } } else { print "

Your current database is up to date.

"; } } if(!$needsupdate) { echo getMLText("settings_install_success"); echo "

"; echo getMLText("settings_delete_install_folder"); echo "

"; echo '' . getMLText("settings_disable_install") . ''; echo "

"; echo '' . getMLText("settings_more_settings") .''; $showform = false; } } else { print "

You does not seem to have a valid database. The table tblVersion is missing.

"; } } } } // Back link echo '
'; echo '
'; // echo '' . getMLText("back") . ''; } if($showform) { /** * Set parameters */ ?>
"> "> "> "> "> "> "> "> "> "> "> "> "> ">
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
" />
_printDisclaimer = false; $settings->_footNote = false; // end of the page UI::contentContainerEnd(); UI::contentEnd(); UI::htmlEndPage(); ?>