>>> /* Database connection The only time paramaters are needed is to connect, otherwise the variables are not required "around" the application. ie Connected and done. Prefered is an array as $DB in capitals, ie $DB['engine'] = 'type'; $DB['host'] = 'ip'; $DB['user'] = 'me'; $DB['password'] = 'secret'; $DB['database'] = 'db_name'; The connection paramaters are all contained within one array structure With this array structure the connection can be passed around, to functions However it can also leak so it can be destroyed eg $dbClass->connect($DB); unset($DB); // only the paranoid survive Also there is a scenario where we are devloping and using this file and the database paramaters might leak into svn etc. (This idea is borrowed from the tikiwiki.org project) To resolve this there is a file called db_local.php.skel which is not detected rename this to db_local.php and edit the paramaters. */ //* Detect the local database settings ie $DB array() //* Copy db_local.php.skel for and change for local development if(file_exists(dirname(__FILE__).'/db_local.php')){ require_once(dirname(__FILE__).'/db_local.php'); $conf['db_type'] = $DB['type']; $conf['db_host'] = $DB['host']; $conf['db_user'] = $DB['user']; $conf['db_password'] = $DB['password']; $conf['db_database'] = $DB['database']; }else{ //** Database Settings $conf['db_type'] = 'mysql'; $conf['db_host'] = 'localhost'; $conf['db_user'] = 'root'; $conf['db_password'] = ''; $conf['db_database'] = 'ispconfig3'; } /* Dynamic constants are another technique as well as key files as constants. The base root directory is the interface/ directory which is the top level for php From this eveything else is be defined underneath as constants The constants are directory paths with no trailing / This should do away with the $conf['rootpath'] etc The $conf['fs_div'] is unnecessary if only / is used, will work on windoze also */ //** The main ROOT is the parent directory to this file, ie interface define('ISPC_ROOT', realpath('../')); define('ISPC_CLASS_PATH', ISPC_ROOT.'/lib/classes'); define('ISPC_TEMP_PATH', ISPC_ROOT.'/temp'); define('ISPC_CACHE_PATH', ISPC_ROOT.'/cache'); //<< End pedro rfc block //** Database Settings /* See above $conf['db_type'] = 'mysql'; $conf['db_host'] = 'localhost'; $conf['db_user'] = 'root'; $conf['db_password'] = ''; $conf['db_database'] = 'ispconfig3'; */ $conf['rootpath'] = substr(dirname(__FILE__),0,-4); $conf['fs_div'] = '/'; // File system divider, \\ on windows and / on linux and unix $conf['classpath'] = $conf['rootpath'].$conf['fs_div'].'lib'.$conf['fs_div'].'classes'; $conf['temppath'] = $conf['rootpath'].$conf['fs_div'].'temp'; // predro notes: not sure this is the right thing ? $conf['cache_dir'] = $conf['rootpath'].$conf['fs_div'].'/cache'; define('DIR_TRENNER', $conf['fs_div']); define('SERVER_ROOT', $conf['rootpath']); define('INCLUDE_ROOT', SERVER_ROOT.DIR_TRENNER.'lib'); define('CLASSES_ROOT', INCLUDE_ROOT.DIR_TRENNER.'classes'); /* pedro notes ? this stuff is REALLY not necessay, can leak everywhere */ define('DB_TYPE', $conf['db_type']); define('DB_HOST', $conf['db_host']); define('DB_DATABASE',$conf['db_database']); define('DB_USER', $conf['db_user']); define('DB_PASSWORD', $conf['db_password']); //** External programs //$conf["programs"]["convert"] = "/usr/bin/convert"; $conf['programs']['wput'] = $conf['rootpath']."\\tools\\wput\\wput.exe"; //** Themes $conf['theme'] = 'default'; $conf['html_content_encoding'] = 'text/html; charset=iso-8859-1'; $conf['logo'] = 'themes/default/images/mydnsconfig_logo.gif'; //** Default Language $conf['language'] = 'en'; //** Auto Load Modules $conf['start_db'] = true; $conf['start_session'] = true; //** DNS Settings //* Automatically create PTR records? $conf['auto_create_ptr'] = 1; //* must be set if $conf['auto_create_ptr'] is 1. Don't forget the trailing dot! $conf['default_ns'] = 'ns1.example.com.'; //* Admin email address. Must be set if $conf['auto_create_ptr'] is 1. Replace "@" with ".". Don't forget the trailing dot! $conf['default_mbox'] = 'admin.example.com.'; $conf['default_ttl'] = 86400; $conf['default_refresh'] = 28800; $conf['default_retry'] = 7200; $conf['default_expire'] = 604800; $conf['default_minimum_ttl'] = 86400; ?>