modDir = RP ."modules/"; $this->errors = ""; $toLoad = explode( "|", $bin->conf['modules'] ); foreach ( $toLoad as $id => $name ) $this->loadModule( $name ); if ( !empty( $this->errors ) ) $bin->kill( sprintf( $bin->lang['core']['modules']['display'], $this->errors ) ); } function isLoaded( $name ) { if ( in_array( $name, $this->loaded ) ) return true; return false; } function loadModule( $name ) { global $bin, $db; $name = explode( ":", $name ); if ( count( $name ) != 2 ) $name[1] = $name[0]; if ( !file_exists( $this->modDir . $name[1] .".php" ) ) { $this->errors .= sprintf( $bin->lang['core']['modules']['fileNotExists'], $name[1] ); return; } if ( isset( $bin->$name[0] ) ) { $this->errors .= sprintf( $bin->lang['core']['modules']['modExists'], $name[0] ); return; } require_once( $this->modDir . $name[1] .".php" ); $created = true; if ( preg_match( "#^(.+?)_driver$#i", $name[0] ) ) { $db->$name[1] = new $name[0]; if ( !isset( $db->$name[1] ) ) $created = false; else $db->$name[1]->inf = $bin->conf['db'][$name[1]]; } else { $bin->$name[0] = new $name[0]; if ( !isset( $bin->$name[0] ) ) $created = false; } if ( !$created ) { $this->errors .= sprintf( $bin->lang['core']['modules']['errCreating'], $name[0] ); return; } $this->loaded[] = $name[0]; } } ?>