[svn r10044] All the new or updated files for the ajax refresh of the time spent in a course

skala
Eric Marguin 19 years ago
parent 2165b010e3
commit 37cf473961
  1. 6
      main/inc/course_tracking.js
  2. 12
      main/inc/global.inc.php
  3. 1
      main/inc/lib/database.lib.php
  4. 47
      main/inc/local.inc.php
  5. 33
      main/inc/update_course_tracking.php
  6. 3
      main/install/dokeos_main.sql
  7. 12
      main/install/install_db.inc.php

@ -0,0 +1,6 @@
function update_course_tracking(){
xajax_updateCourseTracking(user_id);
}

@ -91,6 +91,13 @@ require_once(api_get_path(LIBRARY_PATH).'database.lib.php');
require_once(api_get_path(LIBRARY_PATH).'display.lib.php');
require_once(api_get_path(LIBRARY_PATH).'text.lib.php');
//Include the librarie ajax for the course time refresh
require_once(api_get_path(LIBRARY_PATH)."xajax/xajax.inc.php");
//Include the file for the updateCourseTracking function
require_once(api_get_path(INCLUDE_PATH)."update_course_tracking.php");
if(empty($statsDbName) && $already_installed)
{
@ -106,6 +113,9 @@ if (! $dbHost)
die($error_message);
}
$xajax->processRequests();
unset($error_message);
$selectResult = mysql_select_db($mainDbName,$dokeos_database_connection) or die ('<center>WARNING ! SYSTEM UNABLE TO SELECT THE MAIN DOKEOS DATABASE</center>');
@ -397,7 +407,7 @@ foreach($language_files as $index => $language_file)
$tbl_track_login = Database :: get_statistic_table(STATISTIC_TRACK_E_LOGIN_TABLE);
$sql_last_connection="SELECT login_id, login_date FROM $tbl_track_login WHERE login_user_id='".$_SESSION["_uid"]."' ORDER BY login_date DESC LIMIT 0,1";
$sql_last_connection="SELECT login_id, login_date FROM $tbl_track_login WHERE login_user_id='".$_user["user_id"]."' ORDER BY login_date DESC LIMIT 0,1";
$q_last_connection=mysql_query($sql_last_connection);
$i_id_last_connection=mysql_result($q_last_connection,0,"login_id");

@ -67,6 +67,7 @@ define("STATISTIC_TRACK_E_DOWNLOADS_TABLE", "track_e_downloads");
define("STATISTIC_TRACK_E_LINKS_TABLE", "track_e_links");
define("STATISTIC_TRACK_E_ONLINE_TABLE", "track_e_online");
define("STATISTIC_TRACK_E_HOTPOTATOES_TABLE", "track_e_hotpotatoes");
define("STATISTIC_TRACK_E_COURSE_ACCESS_TABLE", "track_e_course_access");
//scorm database tables
define("SCORM_MAIN_TABLE", "scorm_main");
define("SCORM_SCO_DATA_TABLE", "scorm_sco_data");

@ -188,6 +188,9 @@ $login = isset($_POST["login"]) ? $_POST["login"] : '';
MAIN CODE
==============================================================================
*/
if (isset($_SESSION['_uid']) && $_SESSION['_uid'] && ! ($login || $logout))
{
// uid is in session => login already done, continue with this value
@ -480,7 +483,25 @@ if (isset($cidReset) && $cidReset) // course session data refresh requested or e
api_session_register('_cid');
api_session_register('_course');
//We add a new record in the course tracking table
$course_tracking_table = Database :: get_statistic_table(STATISTIC_TRACK_E_COURSE_ACCESS_TABLE);
$sql="INSERT INTO $course_tracking_table(course_code, user_id, login_course_date, logout_course_date, counter)" .
"VALUES('".$_course['official_code']."', '".$_user['user_id']."', NOW(), NOW(), '1')";
api_sql_query($sql,__FILE__,__LINE__);
if(api_get_setting("Ajax_course_tracking_refresh")!=0){
$i_milliseconds_for_refresh=intval(api_get_setting("Ajax_course_tracking_refresh"))*1000;
$htmlHeadXtra[] = $xajax->getJavascript(api_get_path(WEB_LIBRARY_PATH).'xajax/');
$htmlHeadXtra[] = "<script type=\"text/javascript\">var user_id=".$_user ['user_id'].";</script><script type=\"text/javascript\" src=\"".api_get_path(WEB_CODE_PATH)."inc/course_tracking.js\"></script><script type=\"text/javascript\">window.setInterval('update_course_tracking()',".$i_milliseconds_for_refresh.");</script>";
}
}
else
{
@ -505,6 +526,32 @@ else // continue with the previous values
{
$_cid = $_SESSION['_cid' ];
$_course = $_SESSION['_course'];
$course_tracking_table = Database :: get_statistic_table(STATISTIC_TRACK_E_COURSE_ACCESS_TABLE);
//We select the last record for the current course in the course tracking table
$sql="SELECT course_access_id FROM $course_tracking_table WHERE user_id='".$_user ['user_id']."' ORDER BY login_course_date DESC LIMIT 0,1";
$result=api_sql_query($sql,__FILE__,__LINE__);
$i_course_access_id = mysql_result($result,0,0);
//We update the course tracking table
$sql="UPDATE $course_tracking_table " .
"SET logout_course_date = NOW(), " .
"counter = counter+1 " .
"WHERE course_access_id='$i_course_access_id'";
api_sql_query($sql,__FILE__,__LINE__);
if(api_get_setting("Ajax_course_tracking_refresh")!=0){
$i_milliseconds_for_refresh=intval(api_get_setting("Ajax_course_tracking_refresh"))*1000;
$htmlHeadXtra[] = $xajax->getJavascript(api_get_path(WEB_LIBRARY_PATH).'xajax/');
$htmlHeadXtra[] = "<script type=\"text/javascript\">var user_id=".$_user ['user_id'].";</script><script type=\"text/javascript\" src=\"".api_get_path(WEB_CODE_PATH)."inc/course_tracking.js\"></script><script type=\"text/javascript\">setInterval('update_course_tracking()',".$i_milliseconds_for_refresh.");</script>";
}
}
}

@ -0,0 +1,33 @@
<?php
$xajax = new xajax();
$xajax->registerFunction("updateCourseTracking");
function updateCourseTracking($i_user_id){
$objResponse = new xajaxResponse();
$course_tracking_table = Database :: get_statistic_table(STATISTIC_TRACK_E_COURSE_ACCESS_TABLE);
//We select the last record for the current course in the course tracking table
$sql="SELECT course_access_id FROM $course_tracking_table WHERE user_id='$i_user_id' ORDER BY login_course_date DESC LIMIT 0,1";
$result=api_sql_query($sql,__FILE__,__LINE__);
$i_course_access_id = mysql_result($result,0,0);
//We update the course tracking table
$sql="UPDATE $course_tracking_table " .
"SET logout_course_date = NOW() " .
"WHERE course_access_id='$i_course_access_id'";
api_sql_query($sql,__FILE__,__LINE__);
return $objResponse;
}
?>

@ -490,7 +490,8 @@ INSERT INTO `settings_current` VALUES
(71, 'donotlistcampus', NULL, 'textfield', NULL, 'false', NULL, NULL, NULL, NULL),
(72, 'show_email_addresses', NULL,'radio','Platform','false','ShowEmailAddresses','ShowEmailAddressesComment',NULL,NULL),
(73, 'banner', NULL, NULL, 'Plugins', 'messages', '', NULL, NULL, NULL),
(74,'profile','phone','checkbox','User','true','ProfileChangesTitle','ProfileChangesComment',NULL,'phone');
(74,'profile','phone','checkbox','User','true','ProfileChangesTitle','ProfileChangesComment',NULL,'phone'),
(75, 'Ajax_course_tracking_refresh', NULL, 'textfield','Course','60', 'Ajax_course_tracking_refresh','Ajax_course_tracking_refresh_comment', NULL, NULL);

@ -396,6 +396,18 @@ mysql_query("CREATE TABLE `track_e_uploads` (
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());
$track_countries_table = "track_c_countries";
fill_track_countries_table($track_countries_table);

Loading…
Cancel
Save