]> git.mjollnir.org Git - moodle.git/commitdiff
pagelib: MDL-12212 eliminate quiz_page
authortjhunt <tjhunt>
Wed, 6 May 2009 09:24:45 +0000 (09:24 +0000)
committertjhunt <tjhunt>
Wed, 6 May 2009 09:24:45 +0000 (09:24 +0000)
lib/accesslib.php
lib/blocklib.php
mod/quiz/lib.php
mod/quiz/pagelib.php [deleted file]
mod/quiz/view.php

index 78bd17c02c49d1377cee8920701161aa36f87498..d03b96f0097cc079b5bf0ee601036f8f4937db9f 100755 (executable)
@@ -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;
index de6dcd5163262007859f5a79a7d42d68d11040fa..dc9561c7686a309818daa5dcd46177a15e3baf72 100644 (file)
@@ -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) {
index 4a84e29b880addfb9d47e74e3c456c23e96f3eb6..c5134bdbd10a69270cc38c111779d446b413f369 100644 (file)
@@ -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 (file)
index c8b9aaa..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php // $Id$
-
-require_once($CFG->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);
-    }
-}
-
-?>
index e69c36b0ae433bd2799a8a529824a791365f6a66..4da7cda611c559e15e5f6d52ff9b67a285ef4128 100644 (file)
@@ -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);
         $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 = '<table><tr><td>'.update_module_button($cm->id, $course->id, get_string('modulename', 'quiz')).'</td>';
+    if ($PAGE->user_allowed_editing() && !empty($CFG->showblocksonmodpages)) {
+        $buttons .= '<td><form '.$CFG->frametarget.' method="get" action="view.php"><div>'.
+            '<input type="hidden" name="id" value="'.$cm->id.'" />'.
+            '<input type="hidden" name="edit" value="'.($PAGE->user_is_editing()?'off':'on').'" />'.
+            '<input type="submit" value="'.get_string($PAGE->user_is_editing()?'blockseditoff':'blocksediton').'" /></div></form></td>';
+    }
+    $buttons .= '</tr></table>';
+
+    $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 '<table id="layout-table"><tr>';