From 6bf44482c651faa946fb2cf5a34475456258c708 Mon Sep 17 00:00:00 2001 From: tjhunt Date: Wed, 6 May 2009 09:24:45 +0000 Subject: [PATCH] pagelib: MDL-12212 eliminate quiz_page --- lib/accesslib.php | 1 + lib/blocklib.php | 11 +++++++++++ mod/quiz/lib.php | 6 ------ mod/quiz/pagelib.php | 30 ------------------------------ mod/quiz/view.php | 17 ++++++++++++++--- 5 files changed, 26 insertions(+), 39 deletions(-) delete mode 100644 mod/quiz/pagelib.php diff --git a/lib/accesslib.php b/lib/accesslib.php index 78bd17c02c..d03b96f009 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -2233,6 +2233,7 @@ function delete_context($contextlevel, $instanceid) { unset($ACCESSLIB_PRIVATE->contexts[$contextlevel][$instanceid]); unset($ACCESSLIB_PRIVATE->contextsbyid[$context->id]); + blocks_delete_all_for_context($context->id); filter_delete_all_for_context($context->id); return $result; diff --git a/lib/blocklib.php b/lib/blocklib.php index de6dcd5163..dc9561c768 100644 --- a/lib/blocklib.php +++ b/lib/blocklib.php @@ -1311,6 +1311,17 @@ function blocks_delete_all_on_page($pagetype, $pageid) { return $DB->delete_records('block_instance_old', array('pageid' => $pageid, 'pagetype' => $pagetype)); } +function blocks_delete_all_for_context($contextid) { + global $DB; + $instances = $DB->get_recordset('block_instances', array('contextid' => $contextid)); + foreach ($instances as $instance) { + delete_context(CONTEXT_BLOCK, $instance->id); + } + $instances->close(); + $DB->delete_records('block_instances', array('contextid' => $contextid)); + $DB->delete_records('block_positions', array('contextid' => $contextid)); +} + // Dispite what this function is called, it seems to be mostly used to populate // the default blocks when a new course (or whatever) is created. function blocks_repopulate_page($page) { diff --git a/mod/quiz/lib.php b/mod/quiz/lib.php index 4a84e29b88..c5134bdbd1 100644 --- a/mod/quiz/lib.php +++ b/mod/quiz/lib.php @@ -33,7 +33,6 @@ * @package quiz */ -require_once($CFG->libdir . '/pagelib.php'); require_once($CFG->libdir . '/eventslib.php'); /// CONSTANTS /////////////////////////////////////////////////////////////////// @@ -179,11 +178,6 @@ function quiz_delete_instance($id) { $DB->delete_records('quiz_question_instances', array('quiz' => $quiz->id)); $DB->delete_records('quiz_feedback', array('quizid' => $quiz->id)); - $pagetypes = page_import_types('mod/quiz/'); - foreach($pagetypes as $pagetype) { - blocks_delete_all_on_page($pagetype, $quiz->id); - } - $events = $DB->get_records('event', array('modulename' => 'quiz', 'instance' => $quiz->id)); foreach($events as $event) { delete_event($event->id); diff --git a/mod/quiz/pagelib.php b/mod/quiz/pagelib.php deleted file mode 100644 index c8b9aaa5bc..0000000000 --- a/mod/quiz/pagelib.php +++ /dev/null @@ -1,30 +0,0 @@ -libdir.'/pagelib.php'); -require_once($CFG->dirroot.'/course/lib.php'); // needed for some blocks - -define('PAGE_QUIZ_VIEW', 'mod-quiz-view'); - -page_map_class(PAGE_QUIZ_VIEW, 'page_quiz'); - -$DEFINEDPAGES = array(PAGE_QUIZ_VIEW); - -/** - * Class that models the behavior of a quiz - * - * @author Jon Papaioannou - * @package pages - */ - -class page_quiz extends page_generic_activity { - - function init_quick($data) { - if(empty($data->pageid)) { - print_error('cannotinitpage', 'debug', '', (object)array('name'=>'quiz', 'id'=>'?')); - } - $this->activityname = 'quiz'; - parent::init_quick($data); - } -} - -?> diff --git a/mod/quiz/view.php b/mod/quiz/view.php index e69c36b0ae..4da7cda611 100644 --- a/mod/quiz/view.php +++ b/mod/quiz/view.php @@ -5,7 +5,6 @@ require_once(dirname(__FILE__) . '/../../config.php'); require_once($CFG->libdir.'/gradelib.php'); require_once($CFG->dirroot.'/mod/quiz/locallib.php'); - require_once($CFG->dirroot.'/mod/quiz/pagelib.php'); $id = optional_param('id', 0, PARAM_INT); // Course Module ID, or $q = optional_param('q', 0, PARAM_INT); // quiz ID @@ -56,7 +55,6 @@ add_to_log($course->id, "quiz", "view", "view.php?id=$cm->id", $quiz->id, $cm->id); /// Initialize $PAGE, compute blocks - $PAGE = page_create_instance($quiz->id); $PAGE->set_url('mod/quiz/view.php', array('id' => $cm->id)); $pageblocks = blocks_setup($PAGE); $blocks_preferred_width = bounded_number(180, blocks_preferred_width($pageblocks[BLOCK_POS_LEFT]), 210); @@ -72,7 +70,20 @@ $bodytags = 'onload="popupchecker(\'' . get_string('popupblockerwarning', 'quiz') . '\');"'; } require_js(array('yui_yahoo', 'yui_event')); - $PAGE->print_header($course->shortname.': %fullname%','',$bodytags); + + $title = $course->shortname . ': ' . format_string($quiz->name); + + $buttons = ''; + if ($PAGE->user_allowed_editing() && !empty($CFG->showblocksonmodpages)) { + $buttons .= ''; + } + $buttons .= '
'.update_module_button($cm->id, $course->id, get_string('modulename', 'quiz')).'
frametarget.' method="get" action="view.php">
'. + ''. + ''. + '
'; + + $navigation = build_navigation(array(), $cm); + print_header($title, $course->fullname, $navigation, '', '', true, $buttons, navmenu($course, $cm), false, $bodytags); /// Print any blocks on the left of the page. echo ''; -- 2.39.5