Skip to content

Commit

Permalink
MDL-26482 SCORM add option to disable TOC completely - thanks to Clar…
Browse files Browse the repository at this point in the history
…k Burns for some help!
  • Loading branch information
danmarsden committed Jul 13, 2011
1 parent ecb8829 commit 99da7a9
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 41 deletions.
1 change: 1 addition & 0 deletions mod/scorm/lang/en/scorm.php
Expand Up @@ -68,6 +68,7 @@
$string['deleteallattempts'] = 'Delete all SCORM attempts';
$string['details'] = 'Track details';
$string['directories'] = 'Show the directory links';
$string['disabled'] = 'Disabled';
$string['display'] = 'Display package';
$string['displayattemptstatus'] = 'Display attempt status';
$string['displayattemptstatus_help'] = 'If enabled, scores and grades for attempts are displayed on the SCORM outline page.';
Expand Down
4 changes: 4 additions & 0 deletions mod/scorm/lib.php
Expand Up @@ -29,6 +29,10 @@
/** SCORM_TYPE_IMSREPOSITORY = imsrepository */
define('SCORM_TYPE_IMSREPOSITORY', 'imsrepository');

define('SCORM_TOC_SIDE', 0);
define('SCORM_TOC_HIDDEN', 1);
define('SCORM_TOC_POPUP', 2);
define('SCORM_TOC_DISABLED', 3);

/**
* Given an object containing all the necessary data,
Expand Down
7 changes: 4 additions & 3 deletions mod/scorm/locallib.php
Expand Up @@ -121,9 +121,10 @@ function scorm_get_skip_view_array() {
* @return array an array of hide table of contents options
*/
function scorm_get_hidetoc_array() {
return array(0 =>get_string('sided', 'scorm'),
1 => get_string('hidden', 'scorm'),
2 => get_string('popupmenu', 'scorm'));
return array(SCORM_TOC_SIDE =>get_string('sided', 'scorm'),
SCORM_TOC_HIDDEN => get_string('hidden', 'scorm'),
SCORM_TOC_POPUP => get_string('popupmenu', 'scorm'),
SCORM_TOC_DISABLED => get_string('disabled', 'scorm'));
}

/**
Expand Down
88 changes: 51 additions & 37 deletions mod/scorm/module.js
Expand Up @@ -28,18 +28,16 @@ mod_scorm_activate_item = null;
M.mod_scorm = {};

M.mod_scorm.init = function(Y, hide_nav, hide_toc, toc_title, window_name, launch_sco) {

var scorm_disable_toc = false;
var scorm_hide_nav = true;
var scorm_hide_toc = true;
if (hide_nav == 0) {
scorm_hide_nav = false;
}
else {
scorm_hide_nav = true;
}
if (hide_toc == 0) {
scorm_hide_toc = false;
}
else {
scorm_hide_toc = true;
} else if (hide_toc == 3) {
scorm_disable_toc = true;
}

var scorm_layout_widget;
Expand Down Expand Up @@ -285,23 +283,36 @@ M.mod_scorm.init = function(Y, hide_nav, hide_toc, toc_title, window_name, launc
YAHOO.widget.LayoutUnit.prototype.STR_COLLAPSE = M.str.moodle.hide;
YAHOO.widget.LayoutUnit.prototype.STR_EXPAND = M.str.moodle.show;

scorm_layout_widget = new YAHOO.widget.Layout('scorm_layout', {
minWidth: 255,
minHeight: 600,
units: [
{ position: 'left', body: 'scorm_toc', header: toc_title, width: 250, resize: true, gutter: '2px 5px 5px 2px', collapse: true, minWidth:250, maxWidth: 590},
{ position: 'center', body: '<div id="scorm_content"></div>', gutter: '2px 5px 5px 2px', scroll: true}
]
});
if (scorm_disable_toc) {
scorm_layout_widget = new YAHOO.widget.Layout('scorm_layout', {
minWidth: 255,
minHeight: 600,
units: [
{ position: 'left', body: 'scorm_toc', header: toc_title, width: 0, resize: true, gutter: '0px 0px 0px 0px', collapse: false},
{ position: 'center', body: '<div id="scorm_content"></div>', gutter: '0px 0px 0px 0px', scroll: true}
]
});
} else {
scorm_layout_widget = new YAHOO.widget.Layout('scorm_layout', {
minWidth: 255,
minHeight: 600,
units: [
{ position: 'left', body: 'scorm_toc', header: toc_title, width: 250, resize: true, gutter: '2px 5px 5px 2px', collapse: true, minWidth:250, maxWidth: 590},
{ position: 'center', body: '<div id="scorm_content"></div>', gutter: '2px 5px 5px 2px', scroll: true}
]
});
}

scorm_layout_widget.render();
var left = scorm_layout_widget.getUnitByPosition('left');
left.on('collapse', function() {
scorm_resize_frame();
});
left.on('expand', function() {
scorm_resize_frame();
});

if (!scorm_disable_toc) {
left.on('collapse', function() {
scorm_resize_frame();
});
left.on('expand', function() {
scorm_resize_frame();
});
}
// ugly resizing hack that works around problems with resizing of iframes and objects
left._resize.on('startResize', function() {
var obj = YAHOO.util.Dom.get('scorm_object');
Expand All @@ -314,10 +325,11 @@ M.mod_scorm.init = function(Y, hide_nav, hide_toc, toc_title, window_name, launc
});

// hide the TOC if that is the default
if (scorm_hide_toc == true) {
left.collapse();
if (!scorm_disable_toc) {
if (scorm_hide_toc == true) {
left.collapse();
}
}

// TOC tree
var tree = new YAHOO.widget.TreeView('scorm_tree');
scorm_tree_node = tree;
Expand All @@ -328,18 +340,20 @@ M.mod_scorm.init = function(Y, hide_nav, hide_toc, toc_title, window_name, launc
scorm_bloody_labelclick = true;
}
});
tree.subscribe('collapse', function(node) {
if (scorm_bloody_labelclick) {
scorm_bloody_labelclick = false;
return false;
}
});
tree.subscribe('expand', function(node) {
if (scorm_bloody_labelclick) {
scorm_bloody_labelclick = false;
return false;
}
});
if (!scorm_disable_toc) {
tree.subscribe('collapse', function(node) {
if (scorm_bloody_labelclick) {
scorm_bloody_labelclick = false;
return false;
}
});
tree.subscribe('expand', function(node) {
if (scorm_bloody_labelclick) {
scorm_bloody_labelclick = false;
return false;
}
});
}
tree.expandAll();
tree.render();

Expand Down
2 changes: 1 addition & 1 deletion mod/scorm/player.php
Expand Up @@ -209,7 +209,7 @@
<?php echo $mode == 'review' ? '<div id="scormmode" class="scorm-left">'.get_string('reviewmode', 'scorm')."</div>\n" : ''; ?>
<div id="scormnav" class="scorm-right">
<?php
if ($scorm->hidetoc == 2) {
if ($scorm->hidetoc == SCORM_TOC_POPUP) {
echo $result->tocmenu;
}
?>
Expand Down

0 comments on commit 99da7a9

Please sign in to comment.