From e14cc31e9eb2c081f2c45b5ee9c0fca8c43a0a35 Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Mon, 15 Jan 2007 22:55:24 +0100 Subject: [PATCH] [svn r10740] Updated code to use separate SQL files for user and stats database Removed creation of SCORM database (deprecated and moved into course db as lp* tables) --- main/install/install_db.inc.php | 248 +-------------------------- main/install/install_upgrade.lib.php | 21 +++ 2 files changed, 25 insertions(+), 244 deletions(-) diff --git a/main/install/install_db.inc.php b/main/install/install_db.inc.php index e1185c0d53..d98cf51e6c 100644 --- a/main/install/install_db.inc.php +++ b/main/install/install_db.inc.php @@ -87,7 +87,6 @@ $dbPrefixForm=eregi_replace('[^a-z0-9_-]','',$dbPrefixForm); $dbNameForm=eregi_replace('[^a-z0-9_-]','',$dbNameForm); $dbStatsForm=eregi_replace('[^a-z0-9_-]','',$dbStatsForm); -$dbScormForm=eregi_replace('[^a-z0-9_-]','',$dbScormForm); $dbUserForm=eregi_replace('[^a-z0-9_-]','',$dbUserForm); if(!empty($dbPrefixForm) && !ereg('^'.$dbPrefixForm,$dbNameForm)) @@ -100,11 +99,6 @@ if(!empty($dbPrefixForm) && !ereg('^'.$dbPrefixForm,$dbStatsForm)) $dbStatsForm=$dbPrefixForm.$dbStatsForm; } -if(!empty($dbPrefixForm) && !ereg('^'.$dbPrefixForm,$dbScormForm)) -{ - $dbScormForm=$dbPrefixForm.$dbScormForm; -} - if(!empty($dbPrefixForm) && !ereg('^'.$dbPrefixForm,$dbUserForm)) { $dbUserForm=$dbPrefixForm.$dbUserForm; @@ -112,7 +106,6 @@ if(!empty($dbPrefixForm) && !ereg('^'.$dbPrefixForm,$dbUserForm)) $mysqlMainDb=$dbNameForm; $mysqlStatsDb=$dbStatsForm; -$mysqlScormDb=$dbScormForm; $mysqlUserDb=$dbUserForm; if(empty($mysqlMainDb) || $mysqlMainDb == 'mysql' || $mysqlMainDb == $dbPrefixForm) @@ -125,11 +118,6 @@ if(empty($mysqlStatsDb) || $mysqlStatsDb == 'mysql' || $mysqlStatsDb == $dbPrefi $mysqlStatsDb=$dbPrefixForm.'stats'; } -if(empty($mysqlScormDb) || $mysqlScormDb == 'mysql' || $mysqlScormDb == $dbPrefixForm) -{ - $mysqlScormDb=$dbPrefixForm.'scorm'; -} - if(empty($mysqlUserDb) || $mysqlUserDb == 'mysql' || $mysqlUserDb == $dbPrefixForm) { $mysqlUserDb=$dbPrefixForm.'user'; @@ -146,7 +134,7 @@ if(!$singleDbForm) } mysql_query("CREATE DATABASE IF NOT EXISTS `$mysqlMainDb`") or die(mysql_error()); -if($mysqlStatsDb == $mysqlMainDb && $mysqlScormDb == $mysqlMainDb && $mysqlUserDb == $mysqlMainDb) +if($mysqlStatsDb == $mysqlMainDb && $mysqlUserDb == $mysqlMainDb) { $singleDbForm=true; } @@ -169,24 +157,6 @@ if($mysqlStatsDb != $mysqlMainDb) } } -/** -* CREATING THE SCORM DATABASE -*/ -if($mysqlScormDb != $mysqlMainDb) -{ - if(!$singleDbForm) - { - // multi DB mode AND scorm has its own DB so create it - mysql_query("DROP DATABASE IF EXISTS `$mysqlScormDb`") or die(mysql_error()); - mysql_query("CREATE DATABASE `$mysqlScormDb`") or die(mysql_error()); - } - else - { - // single DB mode so $mysqlScormDb MUST BE the SAME than $mysqlMainDb - $mysqlScormDb=$mysqlMainDb; - } -} - /** * CREATING THE USER DATABASE */ @@ -239,203 +209,11 @@ load_main_database($installation_settings); mysql_select_db($mysqlStatsDb) or die(mysql_error()); -mysql_query("CREATE TABLE `track_c_browsers` ( - `id` int(11) NOT NULL auto_increment, - `browser` varchar(255) NOT NULL default '', - `counter` int(11) NOT NULL default '0', - PRIMARY KEY (`id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_c_countries` ( - `id` int(11) NOT NULL auto_increment, - `code` varchar(40) NOT NULL default '', - `country` varchar(50) NOT NULL default '', - `counter` int(11) NOT NULL default '0', - PRIMARY KEY (`id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_c_os` ( - `id` int(11) NOT NULL auto_increment, - `os` varchar(255) NOT NULL default '', - `counter` int(11) NOT NULL default '0', - PRIMARY KEY (`id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_c_providers` ( - `id` int(11) NOT NULL auto_increment, - `provider` varchar(255) NOT NULL default '', - `counter` int(11) NOT NULL default '0', - PRIMARY KEY (`id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_c_referers` ( - `id` int(11) NOT NULL auto_increment, - `referer` varchar(255) NOT NULL default '', - `counter` int(11) NOT NULL default '0', - PRIMARY KEY (`id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_access` ( - `access_id` int(11) NOT NULL auto_increment, - `access_user_id` int unsigned default NULL, - `access_date` datetime NOT NULL default '0000-00-00 00:00:00', - `access_cours_code` varchar(40) NOT NULL default '0', - `access_tool` varchar(30) default NULL, - PRIMARY KEY (`access_id`), - KEY `access_user_id` (`access_user_id`), - KEY `access_cours_code` (`access_cours_code`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_lastaccess` ( - `access_id` bigint(20) NOT NULL auto_increment, - `access_user_id` int unsigned default NULL, - `access_date` datetime NOT NULL default '0000-00-00 00:00:00', - `access_cours_code` varchar(40) NOT NULL default '0', - `access_tool` varchar(30) default NULL, - `access_session_id` int unsigned default NULL, - PRIMARY KEY (`access_id`), - KEY `access_user_id` (`access_user_id`), - KEY `access_cours_code` (`access_cours_code`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_default` ( - `default_id` int(11) NOT NULL auto_increment, - `default_user_id` int unsigned NOT NULL default '0', - `default_cours_code` varchar(40) NOT NULL default '', - `default_date` datetime NOT NULL default '0000-00-00 00:00:00', - `default_event_type` varchar(20) NOT NULL default '', - `default_value_type` varchar(20) NOT NULL default '', - `default_value` tinytext NOT NULL, - PRIMARY KEY (`default_id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_downloads` ( - `down_id` int(11) NOT NULL auto_increment, - `down_user_id` int unsigned default NULL, - `down_date` datetime NOT NULL default '0000-00-00 00:00:00', - `down_cours_id` varchar(20) NOT NULL default '0', - `down_doc_path` varchar(255) NOT NULL default '0', - PRIMARY KEY (`down_id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_exercices` ( - `exe_id` int(11) NOT NULL auto_increment, - `exe_user_id` int unsigned default NULL, - `exe_date` datetime NOT NULL default '0000-00-00 00:00:00', - `exe_cours_id` varchar(40) NOT NULL default '', - `exe_exo_id` mediumint unsigned NOT NULL default '0', - `exe_result` smallint NOT NULL default '0', - `exe_weighting` smallint NOT NULL default '0', - PRIMARY KEY (`exe_id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_attempt` ( - `exe_id` int default NULL, - `user_id` int NOT NULL default '0', - `question_id` int NOT NULL default '0', - `answer` text NOT NULL, - `teacher_comment` text NOT NULL, - `marks` int NOT NULL default '0', - `course_code` varchar(40) NOT NULL default '', - `position` int default '0' - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_hotpotatoes` ( - `exe_name` VARCHAR( 255 ) NOT NULL , - `exe_user_id` int unsigned DEFAULT NULL , - `exe_date` DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL , - `exe_cours_id` varchar(40) NOT NULL , - `exe_result` smallint DEFAULT '0' NOT NULL , - `exe_weighting` smallint DEFAULT '0' NOT NULL - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_links` ( - `links_id` int NOT NULL auto_increment, - `links_user_id` int unsigned default NULL, - `links_date` datetime NOT NULL default '0000-00-00 00:00:00', - `links_cours_id` varchar(20) NOT NULL default '0', - `links_link_id` int(11) NOT NULL default '0', - PRIMARY KEY (`links_id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_login` ( - `login_id` int NOT NULL auto_increment, - `login_user_id` int unsigned NOT NULL default '0', - `login_date` datetime NOT NULL default '0000-00-00 00:00:00', - `login_ip` varchar(39) NOT NULL default '', - `logout_date` datetime NULL default NULL, - PRIMARY KEY (`login_id`), - KEY `login_user_id` (`login_user_id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_online` ( - `login_id` int NOT NULL auto_increment, - `login_user_id` int unsigned NOT NULL default '0', - `login_date` datetime NOT NULL default '0000-00-00 00:00:00', - `login_ip` varchar(39) NOT NULL default '', - `course` varchar(40) default NULL, - PRIMARY KEY (`login_id`), - KEY `login_user_id` (`login_user_id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_open` ( - `open_id` int(11) NOT NULL auto_increment, - `open_remote_host` tinytext NOT NULL, - `open_agent` tinytext NOT NULL, - `open_referer` tinytext NOT NULL, - `open_date` datetime NOT NULL default '0000-00-00 00:00:00', - PRIMARY KEY (`open_id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_uploads` ( - `upload_id` int NOT NULL auto_increment, - `upload_user_id` int unsigned default NULL, - `upload_date` datetime NOT NULL default '0000-00-00 00:00:00', - `upload_cours_id` varchar(20) NOT NULL default '0', - `upload_work_id` int(11) NOT NULL default '0', - PRIMARY KEY (`upload_id`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `track_e_course_access` ( - `course_access_id` int(11) NOT NULL auto_increment, - `course_code` varchar(40) NOT NULL, - `user_id` int(11) NOT NULL, - `login_course_date` datetime NOT NULL default '0000-00-00 00:00:00', - `logout_course_date` datetime default NULL, - `counter` int(11) NOT NULL, - PRIMARY KEY (`course_access_id`) - )" -) or die(mysql_error()); - +load_database_script('dokeos_stats.sql'); $track_countries_table = "track_c_countries"; fill_track_countries_table($track_countries_table); -/** -* creating the tables of the SCORM database -*/ - -mysql_select_db($mysqlScormDb) or die(mysql_error()); - -mysql_query("CREATE TABLE `scorm_main` ( - `contentId` int(5) unsigned NOT NULL auto_increment, - `contentTitle` varchar(100) default NULL, - `dokeosCourse` varchar(100) default NULL, - PRIMARY KEY (`contentId`) - ) TYPE=MyISAM") or die(mysql_error()); - -mysql_query("CREATE TABLE `scorm_sco_data` ( - `contentId` int(5) default NULL, - `scoId` int(5) NOT NULL auto_increment, - `scoIdentifier` varchar(100) default NULL, - `scoTitle` varchar(100) default NULL, - `status` varchar(100) default NULL, - `studentId` int(10) default NULL, - `score` int(10) default NULL, - `time` varchar(20) default NULL, - KEY `scoId` (`scoId`) - ) TYPE=MyISAM") or die(mysql_error()); - /** * creating the tables of the USER database * this is where the personal agenda items are storen, the user defined course categories (sorting of my courses) @@ -443,24 +221,6 @@ mysql_query("CREATE TABLE `scorm_sco_data` ( mysql_select_db($mysqlUserDb) or die(mysql_error()); -// creating the table where the personal agenda items are stored -mysql_query("CREATE TABLE `personal_agenda` ( - `id` int NOT NULL auto_increment, - `user` int unsigned, - `title` text, - `text` text, - `date` datetime default NULL, - `enddate` datetime default NULL, - `course` varchar(255), - UNIQUE KEY `id` (`id`)) - TYPE=MyISAM") or die(mysql_error()); - -// creating the table that is used for the user defined course categories -mysql_query("CREATE TABLE `user_course_category` ( - `id` int unsigned NOT NULL auto_increment, - `user_id` int unsigned NOT NULL default '0', - `title` text NOT NULL, - `sort` INT(11), - PRIMARY KEY (`id`) - ) TYPE=MyISAM") or die(mysql_error()); +load_database_script('dokeos_user.sql'); + ?> \ No newline at end of file diff --git a/main/install/install_upgrade.lib.php b/main/install/install_upgrade.lib.php index 64e79d55ce..935d90339d 100644 --- a/main/install/install_upgrade.lib.php +++ b/main/install/install_upgrade.lib.php @@ -253,6 +253,27 @@ function load_main_database($installation_settings) } } +/** +* Creates the structure of the stats database +* @param string Name of the file containing the SQL script inside the install directory +*/ +function load_database_script($db_script) +{ + $dokeos_sql_file_string = file_get_contents($db_script); + + //split in array of sql strings + $sql_instructions = array(); + $success = split_sql_file($sql_instructions, $dokeos_sql_file_string); + + //execute the sql instructions + $count = count($sql_instructions); + for ($i = 0; $i < $count; $i++) + { + $this_sql_query = $sql_instructions[$i]['query']; + mysql_query($this_sql_query); + } +} + /** * Function copied and adapted from phpMyAdmin 2.6.0 PMA_splitSqlFile (also GNU GPL) *