seeddms-code/inc/inc.Settings.php

125 lines
3.9 KiB
PHP

<?php
// MyDMS. Document Management System
// Copyright (C) 2002-2005 Markus Westphal
// Copyright (C) 2006-2008 Malcolm Cowe
// Copyright (C) 2010 Matteo Lucarelli
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
$_tmp = dirname($_SERVER['SCRIPT_FILENAME']);
if(is_link($_tmp)) {
$_arr = preg_split('/\//', $_tmp);
array_pop($_arr);
$_configDir = implode('/', $_arr).'/conf';
// include(implode('/', $_arr)."/conf/conf.Settings.php");
} else {
// include("../conf/conf.Settings.php");
}
// ----------------------------
// Update previous version <3.0
// ----------------------------
if (file_exists("../inc/inc.Settings.old.php")) {
// Change class name
$str = file_get_contents("../inc/inc.Settings.old.php");
$str = str_replace("class Settings" , "class OLDSettingsOLD", $str);
$str = str_replace("Settings()" , "OLDSettingsOLD()", $str);
file_put_contents("../inc/inc.Settings.old.php", $str);
include "inc.Settings.old.php";
$settingsOLD = $settings;
} else {
$settingsOLD = null;
}
require_once('inc.ClassSettings.php');
if(defined("SEEDDMS_CONFIG_FILE"))
$settings = new Settings(SEEDDMS_CONFIG_FILE);
else
$settings = new Settings();
if(!defined("SEEDDMS_INSTALL") && file_exists(dirname($settings->_configFilePath)."/ENABLE_INSTALL_TOOL")) {
die("SeedDMS won't run unless your remove the file ENABLE_INSTALL_TOOL from your configuration directory.");
}
// ----------------------------
// Update previous version <3.0
// ----------------------------
if (isset($settingsOLD)) {
$class_vars = get_class_vars(get_class($settingsOLD));
foreach ($class_vars as $name => $value) {
if (property_exists ("Settings", $name))
$settings->$name = $value;
}
$settings->save();
echo "Update finish, you must delete " . realpath("../inc/inc.Settings.old.php") . " file";
exit;
}
if(isset($settings->_extraPath))
ini_set('include_path', $settings->_extraPath. PATH_SEPARATOR .ini_get('include_path'));
if(isset($settings->_maxExecutionTime))
ini_set('max_execution_time', $settings->_maxExecutionTime);
if (get_magic_quotes_gpc()) {
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (is_array($v)) {
$process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)];
} else {
$process[$key][stripslashes($k)] = stripslashes($v);
}
}
}
unset($process);
}
$indexconf = null;
if($settings->_enableFullSearch) {
if($settings->_fullSearchEngine == 'sqlitefts') {
$indexconf = array(
'Indexer' => 'SeedDMS_SQLiteFTS_Indexer',
'Search' => 'SeedDMS_SQLiteFTS_Search',
'IndexedDocument' => 'SeedDMS_SQLiteFTS_IndexedDocument'
);
require_once('SeedDMS/SQLiteFTS.php');
} else {
$indexconf = array(
'Indexer' => 'SeedDMS_Lucene_Indexer',
'Search' => 'SeedDMS_Lucene_Search',
'IndexedDocument' => 'SeedDMS_Lucene_IndexedDocument'
);
if(!empty($settings->_luceneClassDir))
require_once($settings->_luceneClassDir.'/Lucene.php');
else
require_once('SeedDMS/Lucene.php');
}
}
/* Add root Dir. Needed because the view classes are included
* relative to it.
*/
ini_set('include_path', $settings->_rootDir. PATH_SEPARATOR .ini_get('include_path'));
?>