Merge branch 'm20_MDL-26201_forcejs' of git://github.com/danmarsden/moodle
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Mon, 31 Jan 2011 18:14:55 +0000 (19:14 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Mon, 31 Jan 2011 18:14:55 +0000 (19:14 +0100)
1  2 
mod/scorm/lang/en/scorm.php
mod/scorm/locallib.php
mod/scorm/player.php

@@@ -84,6 -84,7 +84,6 @@@ $string['everytime'] = 'Every time it\'
  $string['exceededmaxattempts'] = 'You have reached the maximum number of attempts.';
  $string['exit'] = 'Exit course';
  $string['exitactivity'] = 'Exit activity';
 -$string['expcoll'] = 'Expand/Collide';
  $string['expired'] = 'Sorry, this activity closed on {$a} and is no longer available';
  $string['external'] = 'Update external packages timing';
  $string['failed'] = 'Failed';
@@@ -97,6 -98,8 +97,8 @@@ $string['forcecompleteddesc'] = 'This p
  $string['forcenewattempt'] = 'Force new attempt';
  $string['forcenewattempt_help'] = 'If enabled, each time a SCORM package is accessed will be counted as a new attempt.';
  $string['forcenewattemptdesc'] = 'This preference sets the default value for the force new attempt setting';
+ $string['forcejavascript'] = 'Force users to enable JavaScript';
+ $string['forcejavascriptmessage'] = 'JavaScript is required to view this object, Please enable JavaScript in your browser and try again.';
  $string['found'] = 'Manifest found';
  $string['frameheight'] = 'This preference set the default height for stage frame or window';
  $string['framewidth'] = 'This preference set the default width for stage frame or window';
diff --combined mod/scorm/locallib.php
@@@ -23,9 -23,6 +23,9 @@@ define('AVERAGEATTEMPT', '1')
  define('FIRSTATTEMPT', '2');
  define('LASTATTEMPT', '3');
  
 +define('TOCJSLINK', 1);
 +define('TOCFULLURL', 2);
 +
  /// Local Library of functions for module scorm
  
  /**
@@@ -588,6 -585,7 +588,6 @@@ function scorm_grade_user($scorm, $user
          break;
          case HIGHESTATTEMPT:
              $maxscore = 0;
 -            $attempttime = 0;
              for ($attempt = 1; $attempt <= $lastattempt; $attempt++) {
                  $attemptscore = scorm_grade_user_attempt($scorm, $userid, $attempt);
                  $maxscore = $attemptscore > $maxscore ? $attemptscore: $maxscore;
@@@ -660,6 -658,7 +660,6 @@@ function scorm_course_format_display($u
      global $CFG, $DB, $PAGE, $OUTPUT;
  
      $strupdate = get_string('update');
 -    $strmodule = get_string('modulename','scorm');
      $context = get_context_instance(CONTEXT_COURSE,$course->id);
  
      echo '<div class="mod-scorm">';
              }
              $colspan = ' colspan="2"';
          }
 -        $options = (object)array('noclean'=>true);
          $headertext .= '</td></tr><tr><td'.$colspan.'>'.get_string('summary').':<br />'.format_module_intro('scorm', $scorm, $scorm->coursemodule).'</td></tr></table>';
          echo $OUTPUT->box($headertext,'generalbox boxwidthwide');
 -        scorm_view_display($user, $scorm, 'view.php?id='.$course->id, $cm, '100%');
 +        scorm_view_display($user, $scorm, 'view.php?id='.$course->id, $cm);
      } else {
          if (has_capability('moodle/course:update', $context)) {
              // Create a new activity
      echo '</div>';
  }
  
 -function scorm_view_display ($user, $scorm, $action, $cm, $boxwidth='') {
 +function scorm_view_display ($user, $scorm, $action, $cm) {
      global $CFG, $DB, $PAGE, $OUTPUT;
  
      if ($scorm->updatefreq == UPDATE_EVERYTIME) {
      $organization = optional_param('organization', '', PARAM_INT);
  
      if($scorm->displaycoursestructure == 1) {
-         echo $OUTPUT->box_start('generalbox boxaligncenter');
+         echo $OUTPUT->box_start('generalbox boxaligncenter toc');
  ?>
          <div class="structurehead"><?php print_string('contents','scorm') ?></div>
  <?php
          }
      }
  
 -/*
 - $orgidentifier = '';
 -    if ($org = $DB->get_record('scorm_scoes', array('id'=>$organization))) {
 -        if (($org->organization == '') && ($org->launch == '')) {
 -            $orgidentifier = $org->identifier;
 -        } else {
 -            $orgidentifier = $org->organization;
 -        }
 -    }*/
 -
      $scorm->version = strtolower(clean_param($scorm->version, PARAM_SAFEDIR));   // Just to be safe
      if (!file_exists($CFG->dirroot.'/mod/scorm/datamodels/'.$scorm->version.'lib.php')) {
          $scorm->version = 'scorm_12';
      }
      require_once($CFG->dirroot.'/mod/scorm/datamodels/'.$scorm->version.'lib.php');
  
 -    $result = scorm_get_toc($user,$scorm,'structlist',$orgidentifier);
 +    $result = scorm_get_toc($user,$scorm,$cm->id,TOCFULLURL,$orgidentifier);
      $incomplete = $result->incomplete;
  
      // do we want the TOC to be displayed?
@@@ -1015,6 -1025,8 +1015,6 @@@ function scorm_get_attempt_status($user
      }
      $result .= get_string('noattemptsmade', 'scorm').': ' . $attemptcount . '<BR>';
  
 -    $gradereported = 0;
 -    $gradesum = 0;
      if ($scorm->maxattempt == 1) {
          switch ($scorm->grademethod) {
              case GRADEHIGHEST:
@@@ -1204,6 -1216,8 +1204,6 @@@ function scorm_format_duration($duratio
          // then convert in the same way as SCORM 2004
          $pattern = array( '#T0+H#', '#([A-Z])0+M#', '#([A-Z])[0.]+S#', '#\.0+S#', '#0*(\d+)H#', '#0*(\d+)M#', '#0+\.(\d+)S#', '#0*([\d.]+)S#', '#T#' );
          $replace = array( 'T', '$1', '$1', 'S', '$1 '.$strhours.' ', '$1 '.$strminutes.' ', '0.$1 '.$strseconds, '$1 '.$strseconds, '' );
 -        //$pattern = '##';
 -        //$replace = '';
      }
  
      $result = preg_replace($pattern, $replace, $duration);
diff --combined mod/scorm/player.php
          $url->param('newattempt', $newattempt);
      }
      $PAGE->set_url($url);
+     $forcejs = get_config('scorm','forcejavascript');
+     if (!empty($forcejs)) {
+         $PAGE->add_body_class('forcejavascript');
+     }
  
      require_login($course->id, false, $cm);
  
      }
      $attemptstr = '&amp;attempt=' . $attempt;
  
 -    $result = scorm_get_toc($USER, $scorm, 'structurelist', $currentorg, $scoid, $mode, $attempt, true, true);
 +    $result = scorm_get_toc($USER, $scorm, $cm->id, TOCJSLINK, $currentorg, $scoid, $mode, $attempt, true, true);
      $sco = $result->sco;
  
      if (($mode == 'browse') && ($scorm->hidebrowse == 1)) {
@@@ -249,4 -253,7 +253,7 @@@ $PAGE->requires->js_init_call('M.mod_sc
  $completion=new completion_info($course);
  $completion->set_module_viewed($cm);
  
+ if (!empty($forcejs)) {
+     echo $OUTPUT->box(get_string("forcejavascriptmessage", "scorm"), "generalbox boxaligncenter forcejavascriptmessage");
+ }
  echo $OUTPUT->footer();