/** * 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)));