/**
  * Add/Remove a pagebreak.
  *
  * Saves changes to the slot page relationship in the offlinequiz_group_questions table and reorders the paging
  * for subsequent slots.
  *
  * @param \stdClass $offlinequiz the offlinequiz object.
  * @param int $slotid id of slot.
  * @param int $type repaginate::LINK or repaginate::UNLINK.
  * @return \stdClass[] array of slot objects.
  */
 public function update_page_break($offlinequiz, $slotid, $type)
 {
     global $DB;
     $this->check_can_be_edited();
     $offlinequizslots = $DB->get_records('offlinequiz_group_questions', array('offlinequizid' => $offlinequiz->id, 'offlinegroupid' => $offlinequiz->groupid), 'slot');
     $repaginate = new \mod_offlinequiz\repaginate($offlinequiz->id, $offlinequiz->groupid, $offlinequizslots);
     $repaginate->repaginate_slots($offlinequizslots[$slotid]->slot, $type);
     $slots = $this->refresh_page_numbers_and_update_db($offlinequiz);
     return $slots;
 }
 * @package       mod
 * @subpackage    offlinequiz
 * @author        Juergen Zimmer <*****@*****.**>
 * @copyright     2015 Academic Moodle Cooperation {@link http://www.academic-moodle-cooperation.org}
 * @since         Moodle 2.8
 * @license       http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
require_once __DIR__ . '/../../config.php';
require_once $CFG->dirroot . '/mod/offlinequiz/locallib.php';
require_once $CFG->dirroot . '/mod/offlinequiz/offlinequiz.class.php';
$cmid = required_param('cmid', PARAM_INT);
$offlinequizid = required_param('offlinequizid', PARAM_INT);
$offlinegroupid = required_param('offlinegroupid', PARAM_INT);
$slotnumber = required_param('slot', PARAM_INT);
$repagtype = required_param('repag', PARAM_INT);
require_sesskey();
$offlinequizobj = offlinequiz::create($offlinequizid, $offlinegroupid);
$group = $DB->get_record('offlinequiz_groups', array('id' => $offlinegroupid));
require_login($offlinequizobj->get_course(), false, $offlinequizobj->get_cm());
require_capability('mod/offlinequiz:manage', $offlinequizobj->get_context());
if (offlinequiz_has_scanned_pages($offlinequizid)) {
    $reportlink = offlinequiz_attempt_summary_link_to_reports($offlinequizobj->get_offlinequiz(), $offlinequizobj->get_cm(), $offlinequizobj->get_context());
    throw new \moodle_exception('cannoteditafterattempts', 'offlinequiz', new moodle_url('/mod/offlinequiz/edit.php', array('cmid' => $cmid)), $reportlink);
}
$slotnumber++;
$repage = new \mod_offlinequiz\repaginate($offlinequizid, $offlinegroupid);
$repage->repaginate_slots($slotnumber, $repagtype);
offlinequiz_delete_template_usages($offlinequizobj->get_offlinequiz());
$structure = $offlinequizobj->get_structure();
$slots = $structure->refresh_page_numbers_and_update_db($structure->get_offlinequiz());
redirect(new moodle_url('edit.php', array('cmid' => $offlinequizobj->get_cmid(), 'groupnumber' => $group->number)));