original_string: public function populate_structure($quiz) {
          global $DB;
  
          $slots = $DB->get_records_sql("
                  SELECT slot.id AS slotid, slot.slot, slot.questionid, slot.page, slot.maxmark,
                          slot.requireprevious, q.*, qc.contextid
                    FROM {quiz_slots} slot
                    LEFT JOIN {question} q ON q.id = slot.questionid
                    LEFT JOIN {question_categories} qc ON qc.id = q.category
                   WHERE slot.quizid = ?
                ORDER BY slot.slot", array($quiz->id));
  
          $slots = $this->populate_missing_questions($slots);
  
          $this->questions = array();
          $this->slots = array();
          $this->slotsinorder = array();
          foreach ($slots as $slotdata) {
              $this->questions[$slotdata->questionid] = $slotdata;
  
              $slot = new \stdClass();
              $slot->id = $slotdata->slotid;
              $slot->slot = $slotdata->slot;
              $slot->quizid = $quiz->id;
              $slot->page = $slotdata->page;
              $slot->questionid = $slotdata->questionid;
              $slot->maxmark = $slotdata->maxmark;
              $slot->requireprevious = $slotdata->requireprevious;
  
              $this->slots[$slot->id] = $slot;
              $this->slotsinorder[$slot->slot] = $slot;
          }
  
          // Get quiz sections in ascending order of the firstslot.
          $this->sections = $DB->get_records('quiz_sections', array('quizid' => $quiz->id), 'firstslot ASC');
          $this->populate_slots_with_sections();
          $this->populate_question_numbers();
      }
code: public function populate_structure($quiz) {
          global $DB;
  
          $slots = $DB->get_records_sql("
                  SELECT slot.id AS slotid, slot.slot, slot.questionid, slot.page, slot.maxmark,
                          slot.requireprevious, q.*, qc.contextid
                    FROM {quiz_slots} slot
                    LEFT JOIN {question} q ON q.id = slot.questionid
                    LEFT JOIN {question_categories} qc ON qc.id = q.category
                   WHERE slot.quizid = ?
                ORDER BY slot.slot", array($quiz->id));
  
          $slots = $this->populate_missing_questions($slots);
  
          $this->questions = array();
          $this->slots = array();
          $this->slotsinorder = array();
          foreach ($slots as $slotdata) {
              $this->questions[$slotdata->questionid] = $slotdata;
  
              $slot = new \stdClass();
              $slot->id = $slotdata->slotid;
              $slot->slot = $slotdata->slot;
              $slot->quizid = $quiz->id;
              $slot->page = $slotdata->page;
              $slot->questionid = $slotdata->questionid;
              $slot->maxmark = $slotdata->maxmark;
              $slot->requireprevious = $slotdata->requireprevious;
  
              $this->slots[$slot->id] = $slot;
              $this->slotsinorder[$slot->slot] = $slot;
          }
  
          // Get quiz sections in ascending order of the firstslot.
          $this->sections = $DB->get_records('quiz_sections', array('quizid' => $quiz->id), 'firstslot ASC');
          $this->populate_slots_with_sections();
          $this->populate_question_numbers();
      }
code_tokens: public function populate_structure ( $ quiz ) { global $ DB ; $ slots = $ DB -> get_records_sql ( "
                  SELECT slot.id AS slotid, slot.slot, slot.questionid, slot.page, slot.maxmark,
                          slot.requireprevious, q.*, qc.contextid
                    FROM {quiz_slots} slot
                    LEFT JOIN {question} q ON q.id = slot.questionid
                    LEFT JOIN {question_categories} qc ON qc.id = q.category
                   WHERE slot.quizid = ?
                ORDER BY slot.slot" , array ( $ quiz -> id ) ) ; $ slots = $ this -> populate_missing_questions ( $ slots ) ; $ this -> questions = array ( ) ; $ this -> slots = array ( ) ; $ this -> slotsinorder = array ( ) ; foreach ( $ slots as $ slotdata ) { $ this -> questions [ $ slotdata -> questionid ] = $ slotdata ; $ slot = new \ stdClass ( ) ; $ slot -> id = $ slotdata -> slotid ; $ slot -> slot = $ slotdata -> slot ; $ slot -> quizid = $ quiz -> id ; $ slot -> page = $ slotdata -> page ; $ slot -> questionid = $ slotdata -> questionid ; $ slot -> maxmark = $ slotdata -> maxmark ; $ slot -> requireprevious = $ slotdata -> requireprevious ; $ this -> slots [ $ slot -> id ] = $ slot ; $ this -> slotsinorder [ $ slot -> slot ] = $ slot ; } // Get quiz sections in ascending order of the firstslot. $ this -> sections = $ DB -> get_records ( 'quiz_sections' , array ( 'quizid' => $ quiz -> id ) , 'firstslot ASC' ) ; $ this -> populate_slots_with_sections ( ) ; $ this -> populate_question_numbers ( ) ; }
docstring: Set up this class with the structure for a given quiz.
  @param \stdClass $quiz the quiz settings.
docstring_tokens: Set up this class with the structure for a given quiz .