reports: scorm module

skala
arnaud 14 years ago
parent c7cfcebf0a
commit cc59da47b5
  1. 124
      main/reports/modules/scorm.php
  2. 4
      main/reports/reports.lib.php

@ -0,0 +1,124 @@
<?php
$reports_modules['scorm'] = array ();
function reports_modules_scorm_init() {
}
function reports_modules_scorm_init_forEachCourses($course_code, $course_id, $course_db) {
global $reports_modules;
$reports_modules_scorm_toolid = reports_getToolId(TOOL_LEARNPATH);
// package level
array_push($reports_modules['scorm'],
array('keys_query' =>
'select '.$course_id.' as course_id, '.
$reports_modules_scorm_toolid.' as tool_id, '.
'lp.id as child_id, lp.name as child_name, '.
"'".$course_db."'".' as course_db from '.
Database::get_course_table(TABLE_LP_MAIN, $course_db).
' lp',
'values_query_function' => 'reports_modules_scorm_packageVal'));
// sco level
array_push($reports_modules['scorm'],
array('keys_query' =>
'select '.$course_id.' as course_id, '.
$reports_modules_scorm_toolid.' as tool_id, '.
'lp.id as child_id, lp.name as child_name, '.
'lpi.id as subchild_id, lpi.title as subchild_name, '.
"'".$course_db."'".' as course_db from '.
Database::get_course_table(TABLE_LP_MAIN, $course_db).
' lp,'.
Database::get_course_table(TABLE_LP_ITEM, $course_db).
' lpi where lp.id = lpi.lp_id',
'values_query_function' => 'reports_modules_scorm_scoVal'));
// objectives level
array_push($reports_modules['scorm'],
array('keys_query' =>
'select distinct '.$course_id.' as course_id, '.
$reports_modules_scorm_toolid.' as tool_id, '.
'lp.id as child_id, lp.name as child_name, '.
'lpi.id as subchild_id, '.
'lpi.title as subchild_name, '.
'null as subsubchild_id, '.
'lpivo.objective_id as subsubchild_name, '.
"'".$course_db."'".' as course_db from '.
Database::get_course_table(TABLE_LP_MAIN, $course_db).
' lp,'.
Database::get_course_table(TABLE_LP_ITEM, $course_db).
' lpi, '.
Database::get_course_table(TABLE_LP_ITEM_VIEW, $course_db).
' lpiv, '.
Database::get_course_table(TABLE_LP_IV_OBJECTIVE, $course_db).
' lpivo '.
'where lp.id = lpi.lp_id '.
'and lpi.id = lpiv.lp_item_id '.
'and lpiv.id = lpivo.lp_iv_id ',
'values_query_function' => 'reports_modules_scorm_objVal'));
}
function reports_modules_scorm_packageVal($scorm, $key_id) {
return array('type'=> 'sql', 'sql' =>
'select '.$key_id.', user_id as uid, '.
'session_id, view_count as attempt, null as score, '.
'progress as progress, '.
'null as time from '.
Database::get_course_table(TABLE_LP_VIEW, $scorm['course_db']).
' where lp_id = '.$scorm['child_id']);
}
function reports_modules_scorm_scoVal($scorm, $key_id) {
return array('type'=> 'sql', 'sql' =>
'select '.$key_id.', lpv.user_id as uid, '.
'lpv.session_id, lpiv.view_count as attempt, '.
'lpiv.score as score, '.
'(case lpiv.status '.
'when "incomplete" then 0 '.
'when "completed" then 1 '.
'when "passed" then 2 '.
'when "failed" then 3 '.
'when "browsed" then 4 '.
'when "not attempted" then 5 '.
'else 6 '.
'end) as progress, '.
'lpiv.total_time as time from '.
Database::get_course_table(TABLE_LP_VIEW, $scorm['course_db']).
' lpv, '.
Database::get_course_table(TABLE_LP_ITEM_VIEW, $scorm['course_db']).
' lpiv '.
' where lpv.lp_id = '.$scorm['child_id'].
' and lpiv.lp_item_id = '.$scorm['subchild_id'].
' and lpiv.lp_view_id = lpv.id');
}
function reports_modules_scorm_objectiveVal($scorm, $key_id) {
return array('type'=> 'sql', 'sql' =>
'select '.$key_id.', lpv.user_id as uid, '.
'lpv.session_id, lpiv.view_count as attempt, '.
'lpivo.score_row as score, '.
'(case lpivo.status '.
'when "incomplete" then 0 '.
'when "completed" then 1 '.
'when "passed" then 2 '.
'when "failed" then 3 '.
'when "browsed" then 4 '.
'when "not attempted" then 5 '.
'else 6 '.
'end) as progress, '.
'null as time from '.
Database::get_course_table(TABLE_LP_VIEW, $scorm['course_db']).
' lpv, '.
Database::get_course_table(TABLE_LP_ITEM_VIEW, $scorm['course_db']).
' lpiv, '.
Database::get_course_table(TABLE_LP_IV_OBJECTIVE, $scorm['course_db']).
' lpivo '.
' where lpv.lp_id = '.$scorm['child_id'].
' and lpiv.lp_item_id = '.$scorm['subchild_id'].
' and lpivo.objective_id = '.$scorm['subsubchild_name'].
' and lpiv.lp_view_id = lpv.id'.
' and lpivo.lp_iv_id=lpiv.id');
}

@ -7,9 +7,9 @@ define ('REPORTS_PROGRESS_COMPLETED', 1);
$reports_modules = array();
$reports_enabled_modules = array('quiz','course');
$reports_enabled_modules = array('quiz','course','scorm');
$reports_enabled_templates = array('exercicesMultiCourses', 'courseTime');
$reports_enabled_templates = array('exercicesMultiCourses', 'courseTime','scorm');
// load templates

Loading…
Cancel
Save