Permalink
Browse files

Merge branch 'm21_MDL-26942' of git://github.com/danmarsden/moodle in…

…to MOODLE_21_STABLE
  • Loading branch information...
2 parents a19c77b + 60201a6 commit 1187c38d6d5b24aba8defd83b2d677bc10e91164 @stronk7 stronk7 committed Jul 11, 2011
Showing with 259 additions and 727 deletions.
  1. +0 −241 mod/scorm/datamodels/aicclib.php
  2. +0 −242 mod/scorm/datamodels/scorm_12lib.php
  3. +0 −244 mod/scorm/datamodels/scorm_13lib.php
  4. +259 −0 mod/scorm/locallib.php
@@ -329,244 +329,3 @@ function scorm_parse_aicc($scorm) {
return true;
}
-
-function scorm_get_toc($user,$scorm,$cmid,$toclink=TOCJSLINK,$currentorg='',$scoid='',$mode='normal',$attempt='',$play=false, $tocheader=false) {
- global $CFG, $DB, $PAGE, $OUTPUT;
-
- $modestr = '';
- if ($mode == 'browse') {
- $modestr = '&mode='.$mode;
- }
-
- $result = new stdClass();
- if ($tocheader) {
- $result->toc = '<div id="scorm_layout">';
- $result->toc .= '<div id="scorm_toc">';
- $result->toc .= '<div id="scorm_tree">';
- }
- $result->toc .= '<ul>';
- $tocmenus = array();
- $result->prerequisites = true;
- $incomplete = false;
-
- //
- // Get the current organization infos
- //
- if (!empty($currentorg)) {
- if (($organizationtitle = $DB->get_field('scorm_scoes','title', array('scorm'=>$scorm->id,'identifier'=>$currentorg))) != '') {
- if ($play) {
- $result->toctitle = "$organizationtitle";
- }
- else {
- $result->toc .= "\t<li>$organizationtitle</li>\n";
- }
- $tocmenus[] = $organizationtitle;
- }
- }
- //
- // If not specified retrieve the last attempt number
- //
- if (empty($attempt)) {
- $attempt = scorm_get_last_attempt($scorm->id, $user->id);
- }
- $result->attemptleft = $scorm->maxattempt - $attempt;
- if ($scoes = scorm_get_scoes($scorm->id, $currentorg)){
- //
- // Retrieve user tracking data for each learning object
- //
- $usertracks = array();
- foreach ($scoes as $sco) {
- if (!empty($sco->launch)) {
- if (empty($scoid)) {
- $scoid = $sco->id;
- }
- if ($usertrack = scorm_get_tracks($sco->id,$user->id,$attempt)) {
- if ($usertrack->status == '') {
- $usertrack->status = 'notattempted';
- }
- $usertracks[$sco->identifier] = $usertrack;
- }
- }
- }
-
- $level=0;
- $sublist=1;
- $previd = 0;
- $nextid = 0;
- $findnext = false;
- $parents[$level]='/';
-
- foreach ($scoes as $pos => $sco) {
- $isvisible = false;
- $sco->title = $sco->title;
- if (!isset($sco->isvisible) || (isset($sco->isvisible) && ($sco->isvisible == 'true'))) {
- $isvisible = true;
- }
- if ($parents[$level]!=$sco->parent) {
- if ($newlevel = array_search($sco->parent,$parents)) {
- for ($i=0; $i<($level-$newlevel); $i++) {
- $result->toc .= "\t\t</li></ul></li>\n";
- }
- $level = $newlevel;
- } else {
- $i = $level;
- $closelist = '';
- while (($i > 0) && ($parents[$level] != $sco->parent)) {
- $closelist .= "\t\t</li></ul></li>\n";
- $i--;
- }
- if (($i == 0) && ($sco->parent != $currentorg)) {
- $result->toc .= "\t\t<ul>\n";
- $level++;
- } else {
- $result->toc .= $closelist;
- $level = $i;
- }
- $parents[$level]=$sco->parent;
- }
- }
- if ($isvisible) {
- $result->toc .= "\t\t<li>";
- }
- if (isset($scoes[$pos+1])) {
- $nextsco = $scoes[$pos+1];
- } else {
- $nextsco = false;
- }
- $nextisvisible = false;
- if (!isset($nextsco->isvisible) || (isset($nextsco->isvisible) && ($nextsco->isvisible == 'true'))) {
- $nextisvisible = true;
- }
- if ($nextisvisible && ($nextsco !== false) && ($sco->parent != $nextsco->parent) && (($level==0) || (($level>0) && ($nextsco->parent == $sco->identifier)))) {
- $sublist++;
- }
- if (empty($sco->title)) {
- $sco->title = $sco->identifier;
- }
- if (!empty($sco->launch)) {
- if ($isvisible) {
- $score = '';
- if (empty($scoid) && ($mode != 'normal')) {
- $scoid = $sco->id;
- }
- if (isset($usertracks[$sco->identifier])) {
- $usertrack = $usertracks[$sco->identifier];
- $strstatus = get_string($usertrack->status,'scorm');
- if ($sco->scormtype == 'sco') {
- $statusicon = '<img src="'.$OUTPUT->pix_url($usertrack->status, 'scorm').'" alt="'.$strstatus.'" title="'.$strstatus.'" />';
- } else {
- $statusicon = '<img src="'.$OUTPUT->pix_url('assetc', 'scorm').'" alt="'.get_string('assetlaunched','scorm').'" title="'.get_string('assetlaunched','scorm').'" />';
- }
-
- if (($usertrack->status == 'notattempted') || ($usertrack->status == 'incomplete') || ($usertrack->status == 'browsed')) {
- $incomplete = true;
- if ($play && empty($scoid)) {
- $scoid = $sco->id;
- }
- }
- if ($usertrack->score_raw != '' && has_capability('mod/scorm:viewscores', get_context_instance(CONTEXT_MODULE,$cmid))) {
- $score = '('.get_string('score','scorm').':&nbsp;'.$usertrack->score_raw.')';
- }
- $strsuspended = get_string('suspended','scorm');
- if ($incomplete && isset($usertrack->{'cmi.core.exit'}) && ($usertrack->{'cmi.core.exit'} == 'suspend')) {
- $statusicon = '<img src="'.$OUTPUT->pix_url('suspend', 'scorm').'" alt="'.$strstatus.' - '.$strsuspended.'" title="'.$strstatus.' - '.$strsuspended.'" />';
- }
- } else {
- if ($play && empty($scoid)) {
- $scoid = $sco->id;
- }
- $incomplete = true;
- if ($sco->scormtype == 'sco') {
- $statusicon = '<img src="'.$OUTPUT->pix_url('notattempted', 'scorm').'" alt="'.get_string('notattempted','scorm').'" title="'.get_string('notattempted','scorm').'" />';
- } else {
- $statusicon = '<img src="'.$OUTPUT->pix_url('asset', 'scorm').'" alt="'.get_string('asset','scorm').'" title="'.get_string('asset','scorm').'" />';
- }
- }
- if ($sco->id == $scoid) {
- $findnext = true;
- }
-
- if (($nextid == 0) && (scorm_count_launchable($scorm->id,$currentorg) > 1) && ($nextsco!==false) && (!$findnext)) {
- if (!empty($sco->launch)) {
- $previd = $sco->id;
- }
- }
- if (empty($sco->prerequisites) || scorm_eval_prerequisites($sco->prerequisites,$usertracks)) {
- if ($sco->id == $scoid) {
- $result->prerequisites = true;
- }
-
- $thisscoidstr = '&scoid='.$sco->id;
- $link = 'a='.$scorm->id.$thisscoidstr.'&currentorg='.$currentorg.$modestr.'&attempt='.$attempt;
-
- if ($toclink == TOCFULLURL) { //display toc with urls for structure page
- $url = $CFG->wwwroot.'/mod/scorm/player.php?a='.$scorm->id.'&amp;currentorg='.$currentorg.$modestr.'&amp;scoid='.$sco->id;
- $result->toc .= $statusicon.'&nbsp;<a href="'.$url.'">'.format_string($sco->title).'</a>'.$score."\n";
- } else {
- if ($sco->launch) {
- $result->toc .= '<a title="'.$link.'">'.$statusicon.'&nbsp;'.format_string($sco->title).'&nbsp;'.$score.'</a>';
- } else {
- $result->toc .= '<span>'.$statusicon.'&nbsp;'.format_string($sco->title).'</span>';
- }
- }
- $tocmenus[$sco->id] = scorm_repeater('&minus;',$level) . '&gt;' . format_string($sco->title);
- } else {
- if ($sco->id == $scoid) {
- $result->prerequisites = false;
- }
- if ($play) {
- // should be disabled
- $result->toc .= '<span>'.$statusicon.'&nbsp;'.format_string($sco->title).'</span>';
- } else {
- $result->toc .= $statusicon.'&nbsp;'.format_string($sco->title)."\n";
- }
- }
- if (($nextsco === false) || $nextsco->parent == $sco->parent) {
- $result->toc .= '</li>';
- }
- }
- } else {
- $result->toc .= '&nbsp;'.format_string($sco->title)."</li>\n";
- }
- if (($nextsco !== false) && ($nextid == 0) && ($findnext)) {
- if (!empty($nextsco->launch)) {
- $nextid = $nextsco->id;
- }
- }
- }
- for ($i=0;$i<$level;$i++) {
- $result->toc .= "\t\t</ul></li>\n";
- }
-
- if ($play) {
- $sco = scorm_get_sco($scoid);
- $sco->previd = $previd;
- $sco->nextid = $nextid;
- $result->sco = $sco;
- $result->incomplete = $incomplete;
- } else {
- $result->incomplete = $incomplete;
- }
- }
- $result->toc .= '</ul>';
-
- // NEW IMS TOC
- if ($tocheader) {
- $result->toc .= '</div></div></div>';
- $result->toc .= '<div id="scorm_navpanel"></div>';
- }
-
-
- if ($scorm->hidetoc == 0) {
- $result->toc .= html_writer::script(js_writer::set_variable('scormdata', array(
- 'plusicon' => $OUTPUT->pix_url('plus', 'scorm'),
- 'minusicon' => $OUTPUT->pix_url('minus', 'scorm'))));
- $result->toc .= html_writer::script('', $CFG->wwwroot.'/lib/cookies.js');
- $result->toc .= html_writer::script('', $CFG->wwwroot.'/mod/scorm/datamodels/scorm_datamodels.js');
- }
-
- $url = new moodle_url('/mod/scorm/player.php?a='.$scorm->id.'&currentorg='.$currentorg.$modestr);
- $result->tocmenu = $OUTPUT->single_select($url, 'scoid', $tocmenus, $sco->id, null, "tocmenu");
-
- return $result;
-}
Oops, something went wrong.

0 comments on commit 1187c38

Please sign in to comment.