Files
moodle/mod/scorm/report/reportlib.php
T
Dan Marsden b565637322 MDL-41290 SCORM: Improve user report
put descriptions in help popups instead of in table.

AMOS BEGIN
MOV [interactionscorrectcount, mod_scorm],[trackcorrectcount_help, mod_scorm]
MOV [interactionslatency, mod_scorm],[tracklatency_help, mod_scorm]
MOV [interactionsresult, mod_scorm],[trackresult_help, mod_scorm]
MOV [interactionsscoremin, mod_scorm],[trackscoremin_help, mod_scorm]
MOV [interactionsscoremax, mod_scorm],[trackscoremax_help, mod_scorm]
MOV [interactionsscoreraw, mod_scorm],[trackscoreraw_help, mod_scorm]
MOV [interactionssuspenddata, mod_scorm],[tracksuspenddata_help, mod_scorm]
MOV [interactionstime, mod_scorm],[tracktime_help, mod_scorm]
MOV [interactionsweight, mod_scorm],[trackweight_help, mod_scorm]
AMOS END

Move userreport into /report and rename parameters to be more useful

fix overcomplicated parameter handling

remove SCORM 2004 specific reporting of objectives and interactions to simplify page - these will appear in full list of tracking data instead
Also remove duplicated data - the general tracks info is repated 3 times on the page so isn't required.

remove link to player as loading scos this way is problematic

split out user tracks table into it's own file

convert tracks table to flexible table and allow export

add new interactions report

add tabs to allow navigation between reports

force wrapping of track data value even when no spaces

fix some coding guideline stuff
2013-09-04 09:56:48 +12:00

84 lines
2.8 KiB
PHP

<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Returns an array of reports to which are currently readable.
* @package mod_scorm
* @author Ankit Kumar Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/* Generates and returns list of available Scorm report sub-plugins
*
* @param context context level to check caps against
* @return array list of valid reports present
*/
function scorm_report_list($context) {
global $CFG;
static $reportlist;
if (!empty($reportlist)) {
return $reportlist;
}
$installed = core_component::get_plugin_list('scormreport');
foreach ($installed as $reportname => $notused) {
$pluginfile = $CFG->dirroot.'/mod/scorm/report/'.$reportname.'/report.php';
if (is_readable($pluginfile)) {
include_once($pluginfile);
$reportclassname = "scorm_{$reportname}_report";
if (class_exists($reportclassname)) {
$report = new $reportclassname();
if ($report->canview($context)) {
$reportlist[] = $reportname;
}
}
}
}
return $reportlist;
}
/**
* Returns The maximum numbers of Questions associated with an Scorm Pack
*
* @param int Scorm ID
* @return int an integer representing the question count
*/
function get_scorm_question_count($scormid) {
global $DB;
$count = 0;
$params = array();
$select = "scormid = ? AND ";
$select .= $DB->sql_like("element", "?", false);
$params[] = $scormid;
$params[] = "cmi.interactions_%.id";
$rs = $DB->get_recordset_select("scorm_scoes_track", $select, $params, 'element');
$keywords = array("cmi.interactions_", ".id");
if ($rs->valid()) {
foreach ($rs as $record) {
$num = trim(str_ireplace($keywords, '', $record->element));
if (is_numeric($num) && $num > $count) {
$count = $num;
}
}
// Done as interactions start at 0 (do only if we have something to report).
$count++;
}
$rs->close(); // closing recordset
return $count;
}