@@ -104,48 +104,51 @@ function get_connections($bd, $sub, $last_connect_minutes)
104104 //check the existence of configuration.php
105105 $ config_file = '' ;
106106 if (is_file ($ bd .'/ ' .$ dir .$ sub .'/app/config/configuration.php ' )) {
107- // Chamilo 1.10
107+ // Chamilo 1.10+
108108 $ config_file = $ bd .'/ ' .$ dir .$ sub .'/app/config/configuration.php ' ;
109109 } elseif (is_file ($ bd .'/ ' .$ dir .$ sub .'/main/inc/conf/configuration.php ' )) {
110110 // Chamilo 1.9
111111 $ config_file = $ bd .'/ ' .$ dir .$ sub .'/main/inc/conf/configuration.php ' ;
112112 }
113113 if (!empty ($ config_file )) {
114+ $ _configuration = [];
114115 $ inc = include_once ($ config_file );
115- $ dbh = mysqli_connect ($ _configuration ['db_host ' ], $ _configuration ['db_user ' ],
116- $ _configuration ['db_password ' ]);
116+ $ dsn = 'mysql:dbname= ' .$ _configuration ['main_database ' ].';host= ' .$ _configuration ['db_host ' ];
117+ try {
118+ $ dbh = new PDO ($ dsn , $ _configuration ['db_user ' ], $ _configuration ['db_password ' ]);
119+ } catch (PDOException $ e ) {
120+ die ('Failed to connect to database: ' .$ e ->getMessage ());
121+ }
117122 if ($ inc !== false && $ dbh !== false ) {
118- $ db = $ _configuration ['main_database ' ];
119123 $ sql = "SELECT CONCAT(UTC_DATE(),' ',UTC_TIME()) " ;
120- $ res = mysqli_query ( $ dbh, $ sql );
121- $ row = mysqli_fetch_row ( $ res );
124+ $ res = $ dbh-> query ( $ sql );
125+ $ row = $ res-> fetch ( );
122126 $ current_date = $ row [0 ];
127+ $ track_online_table = 'track_e_exercices ' ;
128+ // Make sure the right table is selected (exercices in 1.9.* and exercises after)
129+ $ vc = version_compare ($ _configuration ['software_version ' ], '1.10.0 ' );
130+ if ($ vc >= 0 ) {
131+ $ track_online_table = 'track_e_exercises ' ;
132+ }
123133 //$current_date=date('Y-m-d H:i:s',time());
124- $ track_online_table = $ db .'.track_e_exercices ' ;
125134 $ query = "SELECT count(distinct(exe_user_id)) " .
126135 " FROM " .$ track_online_table .
127136 " WHERE DATE_ADD(exe_date, " .
128137 "INTERVAL $ last_connect_minutes MINUTE) >= ' " .$ current_date ."' " ;
129138 //"INTERVAL $last_connect_minutes MINUTE) >= NOW() ";
130- //echo $query."\n";
131- $ res = mysqli_query ($ dbh , $ query );
139+ $ res = $ dbh ->query ($ query );
132140 if ($ res === false ) {
133141 $ num = 0 ;
134- //echo " There was a query error for the following portal\n";
135142 } else {
136- $ row = mysqli_fetch_row ( $ res );
143+ $ row = $ res-> fetch ( );
137144 $ num = $ row [0 ];
138145 }
139- //echo sprintf("[%7d]",$num)." users connected to ".$_configuration['root_web']." last $last_connect_minutes'\n";
140146 $ cut_point = 7 ;
141147 if (substr ($ _configuration ['root_web ' ], 0 , 5 ) == 'https ' ) {
142148 $ cut_point = 8 ;
143149 }
144150 $ connections [str_replace ('. ' , '_ ' , substr ($ _configuration ['root_web ' ], $ cut_point , -1 ))] = $ num ;
145151 $ match_count += $ num ;
146- mysqli_close ($ dbh );
147- } else {
148- //echo "$bd/$dir$sub:could not open configuration.php or database:\n";
149152 }
150153 }
151154 }
0 commit comments