From 0a1f8f8ffe195e854f817e9cc8a179cbe57da5f2 Mon Sep 17 00:00:00 2001 From: Sam Hemelryk Date: Wed, 23 Dec 2009 01:47:57 +0000 Subject: [PATCH] mod-scorm MDL-20261 Added functions to extend navigation and removed update this module buttons --- lang/en_utf8/scorm.php | 1 + mod/scorm/lib.php | 51 ++++++++++++++++++++++++++++++++++++++++++ mod/scorm/player.php | 3 +-- mod/scorm/view.php | 1 - 4 files changed, 53 insertions(+), 3 deletions(-) diff --git a/lang/en_utf8/scorm.php b/lang/en_utf8/scorm.php index 81977d8996..5e56041ebb 100644 --- a/lang/en_utf8/scorm.php +++ b/lang/en_utf8/scorm.php @@ -155,6 +155,7 @@ $string['scorm:savetrack'] = 'Save tracks'; $string['scorm:skipview'] = 'Skip overview'; $string['scorm:viewreport'] = 'View reports'; $string['scorm:viewscores'] = 'View scores'; +$string['scormadministration'] = 'SCORM/AICC administration'; $string['scormclose'] = 'Until'; $string['scormcourse'] = 'Learning Course'; $string['scormopen'] = 'Open'; diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php index 147a36b927..42c90a8367 100755 --- a/mod/scorm/lib.php +++ b/mod/scorm/lib.php @@ -938,3 +938,54 @@ function scorm_supports($feature) { default: return null; } } + +/** + * This function extends the global navigaiton for the site. + * It is important to note that you should not rely on PAGE objects within this + * body of code as there is no guarantee that during an AJAX request they are + * available + * + * @param navigation_node $navigation The scorm node within the global navigation + * @param stdClass $course The course object returned from the DB + * @param stdClass $module The module object returned from the DB + * @param stdClass $cm The course module isntance returned from the DB + */ +function scorm_extend_navigation($navigation, $course, $module, $cm) { + /** + * This is currently just a stub so that it can be easily expanded upon. + * When expanding just remove this comment and the line below and then add + * you content. + */ + $navigation->nodetype = navigation_node::NODETYPE_LEAF; +} + +/** + * This function extends the settings navigation block for the site. + * + * It is safe to rely on PAGE here as we will only ever be within the module + * context when this is called. + * + * @param settings_navigation $settings + * @param stdClass $module + */ +function scorm_extend_settings_navigation($settings, $module) { + global $PAGE, $CFG, $DB; + + // Load the scorm instance from the database + $scorm = $DB->get_record('scorm', array('id'=>$PAGE->cm->instance)); + // Add a scorm node to the settings navigation. + $scormnavkey = $settings->add(get_string('scormadministration', 'scorm')); + $scormnav = $settings->get($scormnavkey); + $scormnav->forceopen = true; + + // If the user has the capability add an update this module link for the scorm instance + if (has_capability('moodle/course:manageactivities', $PAGE->cm->context)) { + $url = new moodle_url($CFG->wwwroot.'/course/mod.php', array('update'=>$PAGE->cm->id, 'return'=>true, 'sesskey'=>sesskey())); + $scormnav->add(get_string('updatethis', '', get_string('modulename', 'scorm')), $url); + } + + // Check if any children have been added. If not remove the node to save on clutter. + if (count($scormnav->children)<1) { + $settings->remove_child($scormnavkey); + } +} \ No newline at end of file diff --git a/mod/scorm/player.php b/mod/scorm/player.php index bf07086f54..f35a41d87a 100755 --- a/mod/scorm/player.php +++ b/mod/scorm/player.php @@ -76,7 +76,6 @@ $PAGE->set_title($pagetitle); $PAGE->set_heading($course->fullname); $PAGE->navbar->add(format_string($scorm->name,true), new moodle_url($CFG->wwwroot.'/mode/scorm/view.php', array('id'=>$cm->id))); - $PAGE->set_button($OUTPUT->update_module_button($cm->id, 'scorm')); if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', get_context_instance(CONTEXT_COURSE,$course->id))) { echo $OUTPUT->header(); @@ -162,7 +161,7 @@ $exitlink = ''.$strexit.' '; - $PAGE->set_button($exitlink.$OUTPUT->update_module_button($cm->id, 'scorm')); + $PAGE->set_button($exitlink); echo $PAGE->requires->data_for_js('scormplayerdata', Array('cwidth'=>$scorm->width,'cheight'=>$scorm->height))->in_head(); echo $PAGE->requires->js('mod/scorm/request.js')->in_head(); diff --git a/mod/scorm/view.php b/mod/scorm/view.php index 770acfe654..fd19ffadf8 100755 --- a/mod/scorm/view.php +++ b/mod/scorm/view.php @@ -61,7 +61,6 @@ // $PAGE->set_title($pagetitle); $PAGE->set_heading($course->fullname); - $PAGE->set_button($OUTPUT->update_module_button($cm->id, 'scorm')); echo $OUTPUT->header(); if (has_capability('mod/scorm:viewreport', $context)) { -- 2.39.5