Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-51757

mod_scorm PHP7 breakages

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 2.8.8, 2.9.2
    • 2.9.4, 3.0.1
    • SCORM
    • MOODLE_28_STABLE, MOODLE_29_STABLE
    • MOODLE_29_STABLE, MOODLE_30_STABLE
    • master_MDL-51757
    • Hide

      This makes changes to SCORM 2004 code related to sequencing and navigation which was never completed (and is not supported) These changes are required due to dodgy code which triggers PHP 7 errors.

      The only test required for this change is to run PHP 7 lint on the SCORM code and make sure it passes.

      Show
      This makes changes to SCORM 2004 code related to sequencing and navigation which was never completed (and is not supported) These changes are required due to dodgy code which triggers PHP 7 errors. The only test required for this change is to run PHP 7 lint on the SCORM code and make sure it passes.

    Description

      As picked up in MDL-51011:

      diff --git a/mod/scorm/datamodels/scorm_13lib.php b/mod/scorm/datamodels/scorm_13lib.php
      index b883223..ac9b80d 100644
      --- a/mod/scorm/datamodels/scorm_13lib.php
      +++ b/mod/scorm/datamodels/scorm_13lib.php
      @@ -1108,7 +1108,7 @@ function scorm_seq_flow_tree_traversal($activity, $direction, $childrenflag, $pr
       }
       
       // Returns the next activity on the tree, traversal direction, control returned to the LTS, (may) exception.
      -function scorm_seq_flow_activity_traversal ($activity, $userid, $direction, $childrenflag, $prevdirection, $seq, $userid) {
      +function scorm_seq_flow_activity_traversal ($activity, $userid, $direction, $childrenflag, $prevdirection, $seq, $unused = null) {
           $parent = scorm_get_parent ($activity);
           if (!isset($parent->flow) || ($parent->flow == false)) {
               $seq->deliverable = false;
      diff --git a/mod/scorm/datamodels/sequencinglib.php b/mod/scorm/datamodels/sequencinglib.php
      index 497206e..def1319 100644
      --- a/mod/scorm/datamodels/sequencinglib.php
      +++ b/mod/scorm/datamodels/sequencinglib.php
      @@ -421,7 +421,7 @@ function scorm_seq_choice_sequencing($sco, $userid, $seq) {
           }
       
           if ($seq->currentactivity === $sco) {
      -        break;
      +        throw new \coding_exception('Unexpected state encountered');
           }
       
           $sib = scorm_get_siblings($seq->currentactivity);
      @@ -451,7 +451,7 @@ function scorm_seq_choice_sequencing($sco, $userid, $seq) {
                       return $seq;
                   }
               }
      -        break;
      +        throw new \coding_exception('Unexpected state encountered');
           }
       
           if ($seq->currentactivity == null || $seq->currentactivity == $comancestor) {
      @@ -478,7 +478,7 @@ function scorm_seq_choice_sequencing($sco, $userid, $seq) {
                       return $seq;
                   }
               }
      -        break;
      +        throw new \coding_exception('Unexpected state encountered');
           }
       
           if ($comancestor->id == $sco->id) {
      @@ -504,7 +504,7 @@ function scorm_seq_choice_sequencing($sco, $userid, $seq) {
                       }
                   }
               }
      -        break;
      +        throw new \coding_exception('Unexpected state encountered');
           }
       
           if (array_search($ancestors, $comancestor) !== false) {
      @@ -589,7 +589,7 @@ function scorm_seq_choice_sequencing($sco, $userid, $seq) {
                       }
                   }
               }
      -        break;
      +        throw new \coding_exception('Unexpected state encountered');
           }
       
           if (scorm_is_leaf ($sco)) {
      

      Attachments

        Activity

          People

            danmarsden Dan Marsden
            dobedobedoh Andrew Lyons
            Dan Poltawski Dan Poltawski
            cameron1729 cameron1729
            Dan Marsden, Matteo Scaramuccia, Ilya Tregubov, Kevin Percy, Mathew May, Mihail Geshoski, Shamim Rezaie
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              21/Dec/15