openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit e94de29fe094c13f74f267b3a48c50ec6f001d5b
parent 0be6b4501d58cc28f1361b1ae65cf7ac41f80092
Author: dankert <devnull@localhost>
Date:   Mon, 13 Dec 2004 23:55:41 +0100

Neue Konstanten, Lesen der DB-Config aus mehreren Dateien

Diffstat:
do.php | 160++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
1 file changed, 101 insertions(+), 59 deletions(-)

diff --git a/do.php b/do.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.8 2004-11-27 13:12:26 dankert +// Revision 1.9 2004-12-13 22:55:41 dankert +// Neue Konstanten, Lesen der DB-Config aus mehreren Dateien +// +// Revision 1.8 2004/11/27 13:12:26 dankert // Erzeugen object-Objekt wenn Parameter "objectid" vorhanden // // Revision 1.7 2004/11/24 21:31:44 dankert @@ -45,76 +48,118 @@ // Controller // --------------------------------------------------------------------------- -$conf_php = 'php'; - -require_once( "serviceClasses/GlobalFunctions.class.$conf_php" ); -require_once( "serviceClasses/Html.class.$conf_php" ); -require_once( "serviceClasses/Upload.class.$conf_php" ); -require_once( "serviceClasses/Ftp.class.$conf_php" ); -require_once( "serviceClasses/Text.class.$conf_php" ); -require_once( "serviceClasses/Publish.class.$conf_php" ); -require_once( "serviceClasses/Api.class.$conf_php" ); -require_once( "serviceClasses/TreeElement.class.$conf_php" ); -require_once( "serviceClasses/AbstractTree.class.$conf_php" ); -require_once( "serviceClasses/AdministrationTree.class.$conf_php" ); -require_once( "serviceClasses/ProjectTree.class.$conf_php" ); -require_once( "objectClasses/Value.class.$conf_php" ); -require_once( "objectClasses/Acl.class.$conf_php" ); -require_once( "objectClasses/Template.class.$conf_php" ); -require_once( "objectClasses/Object.class.$conf_php" ); -require_once( "objectClasses/Folder.class.$conf_php" ); -require_once( "objectClasses/Link.class.$conf_php" ); -require_once( "objectClasses/File.class.$conf_php" ); -require_once( "objectClasses/User.class.$conf_php" ); -require_once( "objectClasses/Group.class.$conf_php" ); -require_once( "objectClasses/Project.class.$conf_php" ); -require_once( "objectClasses/Page.class.$conf_php" ); -require_once( "objectClasses/Language.class.$conf_php" ); -require_once( "objectClasses/Model.class.$conf_php" ); -require_once( "objectClasses/Element.class.$conf_php" ); -require_once( "db/db.class.php" ); -require_once( "db/postgresql.class.php" ); -require_once( "db/mysql.class.php" ); +define('PHP_EXT' ,'php' ); +define('IMG_EXT' ,'.gif' ); +define('MAX_FOLDER_DEPTH',5 ); +define('OR_CONFIG_DIR' ,'config' ); +define('OR_VERSION' ,'0.3' ); +define('OR_TITLE' ,'OpenRat'); + +define('OR_TYPE_PAGE' ,'page' ); +define('OR_TYPE_FILE' ,'file' ); +define('OR_TYPE_LINK' ,'link' ); +define('OR_TYPE_FOLDER','folder'); + +define('OR_ACTIONCLASSES_DIR' ,'./actionClasses/' ); +define('OR_OBJECTCLASSES_DIR' ,'./objectClasses/' ); +define('OR_SERVICECLASSES_DIR','./serviceClasses/'); +define('OR_DBCLASSES_DIR' ,'./db/' ); +define('OR_DYNAMICCLASSES_DIR','./dynamicClasses/'); +define('OR_THEMES_DIR' ,'./themes/' ); +define('OR_TMP_DIR' ,'./tmp/' ); + +require_once( OR_SERVICECLASSES_DIR."GlobalFunctions.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."Html.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."Upload.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."Ftp.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."Text.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."Publish.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."Api.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."TreeElement.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."AbstractTree.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."AdministrationTree.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."ProjectTree.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."Dynamic.class.".PHP_EXT ); +require_once( OR_SERVICECLASSES_DIR."Code.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Value.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Acl.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Template.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Object.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Folder.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Link.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."File.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."User.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Group.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Project.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Page.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Language.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Model.class.".PHP_EXT ); +require_once( OR_OBJECTCLASSES_DIR."Element.class.".PHP_EXT ); +require_once( OR_DBCLASSES_DIR."db.class.php" ); +require_once( OR_DBCLASSES_DIR."postgresql.class.php" ); +require_once( OR_DBCLASSES_DIR."mysql.class.php" ); session_start(); require_once( "functions/request.inc.php" ); +require_once( OR_SERVICECLASSES_DIR."Session.class.".PHP_EXT ); + +$conf = Session::getConfig(); + // Wenn Konfiguration noch nicht in Session vorhanden, dann // aus Datei lesen. -if ( !isset( $SESS['conf'] )) +if ( !is_array( $conf ) ) { - // Falls Konfigurationsdatei unter /etc - // vorhanden ist, diese benutzen. - if ( is_file('/etc/openrat/config.ini.php') ) - $conf_filename = '/etc/openrat/config.ini.php'; - else $conf_filename = './config.ini.php'; + $conf_filename = OR_CONFIG_DIR.'/config.ini.php'; + + if ( !is_file( $conf_filename ) ) + die( $conf_file.': file not found' ); // Datei lesen, parsen und in Session schreiben $conf = parse_ini_file( $conf_filename,true ); - $SESS['conf'] = $conf; -} -else -{ - // bereits gelesene und in Session vorhandene Konfiguration benutzen - $conf = $SESS['conf']; + + $db_files = Array(); + $handle = opendir ( $conf['database']['dir'] ); + $prefix = $conf['database']['prefix']; + $suffix = $conf['database']['suffix']; + $conf['databases'] = array(); + + while ( $file = readdir($handle) ) + { + if ( substr($file,0,strlen($prefix))==$prefix && + substr($file,strlen($file)-strlen($suffix),strlen($suffix))==$suffix ) + { + $name = substr($file,strlen($prefix),strlen($file)-strlen($suffix)-strlen($prefix)); + $dbnames[] = $name; + $dbconf = parse_ini_file($conf['database']['dir'].'/'.$file); + + if ( $dbconf['enabled'] ) + $conf['databases'][$name] = $dbconf; + } + } + closedir($handle); + + Session::setConfig( $conf ); } -define('PHP_EXT' ,$conf_php ); + define('FILE_SEP',$conf['interface']['file_separator']); -define('REQ_PARAM_ACTION' ,'action'); -define('REQ_PARAM_SUBACTION' ,'subaction'); -define('REQ_PARAM_CALLACTION' ,'callAction'); +define('REQ_PARAM_ACTION' ,'action' ); +define('REQ_PARAM_SUBACTION' ,'subaction' ); +define('REQ_PARAM_CALLACTION' ,'callAction' ); define('REQ_PARAM_CALLSUBACTION','callSubaction'); +define('TEMPLATE_DIR',OR_THEMES_DIR.$conf['interface']['theme'].'/templates'); +define('CSS_DIR' ,OR_THEMES_DIR.$conf['interface']['theme'].'/css' ); +define('IMAGE_DIR' ,OR_THEMES_DIR.$conf['interface']['theme'].'/images' ); -require_once( "serviceClasses/Logger.class.$conf_php" ); -require_once( "serviceClasses/Session.class.$conf_php" ); +require_once( OR_SERVICECLASSES_DIR."Logger.class.".PHP_EXT ); require_once( "functions/config.inc.php" ); -require_once( "functions/language.inc.$conf_php" ); -require_once( "functions/theme.inc.$conf_php" ); -require_once( "functions/db.inc.$conf_php" ); +require_once( "functions/language.inc.".PHP_EXT ); +require_once( "functions/theme.inc.".PHP_EXT ); +require_once( "functions/db.inc.".PHP_EXT ); // Request-Variablen in Session speichern request_into_session('action' ); @@ -128,7 +173,7 @@ request_into_session('userid' ); request_into_session('groupid' ); request_into_session('languageid'); -if (isset($REQ['objectid'])) +if ( isset($REQ['objectid']) ) { $o = new Object( $REQ['objectid'] ); Session::setObject($o); @@ -143,9 +188,6 @@ if ( is_object( $db ) ) Session::setDatabase( $db ); } -//if ( isset($SESS['dbid'])) -// $db = db_connection(); - if ( isset( $SESS['action'] ) ) $action = $SESS['action']; else $action = 'index'; @@ -159,9 +201,9 @@ else $subaction = ''; $actionClassName = strtoupper(substr($action,0,1)).substr($action,1).'Action'; -require( 'actionClasses/Action.class.php' ); -require( 'actionClasses/ObjectAction.class.php' ); -require( 'actionClasses/'.$actionClassName.'.class.php' ); +require( OR_ACTIONCLASSES_DIR.'/Action.class.php' ); +require( OR_ACTIONCLASSES_DIR.'/ObjectAction.class.php' ); +require( OR_ACTIONCLASSES_DIR.'/'.$actionClassName.'.class.php' ); $do = new $actionClassName; $do->actionName = $action;