b565637322
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
84 lines
2.8 KiB
PHP
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;
|
|
}
|
|
|