From: tjhunt Date: Wed, 6 May 2009 09:15:33 +0000 (+0000) Subject: blocklib: MDL-19010 Fix blocks that were relying on ->instance in an unfortunate way X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=3179b0006a8dcf3e4d955fb5f66006f685e31f13;p=moodle.git blocklib: MDL-19010 Fix blocks that were relying on ->instance in an unfortunate way --- diff --git a/blocks/activity_modules/block_activity_modules.php b/blocks/activity_modules/block_activity_modules.php index 00f4f27ec6..bf9c770e82 100644 --- a/blocks/activity_modules/block_activity_modules.php +++ b/blocks/activity_modules/block_activity_modules.php @@ -18,15 +18,7 @@ class block_activity_modules extends block_list { $this->content->icons = array(); $this->content->footer = ''; - if ($COURSE->id == $this->instance->pageid) { - $course = $COURSE; - } else { - $course = $DB->get_record('course', array('id'=>$this->instance->pageid)); - } - - if (empty($course)) { - return ''; - } + $course = $this->page->course; require_once($CFG->dirroot.'/course/lib.php'); @@ -44,7 +36,7 @@ class block_activity_modules extends block_list { foreach ($modfullnames as $modname => $modfullname) { if ($modname != 'label') { - $this->content->items[] = ''.$modfullname.''; + $this->content->items[] = ''.$modfullname.''; $this->content->icons[] = ''; } } diff --git a/blocks/admin/block_admin.php b/blocks/admin/block_admin.php index 0b78486b3f..bb82b72713 100644 --- a/blocks/admin/block_admin.php +++ b/blocks/admin/block_admin.php @@ -7,8 +7,7 @@ class block_admin extends block_list { } function get_content() { - - global $CFG, $USER, $SITE, $COURSE, $DB, $PAGE; + global $CFG, $USER, $DB; if ($this->content !== NULL) { return $this->content; @@ -19,29 +18,8 @@ class block_admin extends block_list { $this->content->icons = array(); $this->content->footer = ''; - if (empty($this->instance->pageid)) { // sticky - if (!empty($COURSE)) { - $this->instance->pageid = $COURSE->id; - } - } - - if (empty($this->instance)) { - return $this->content = ''; - } else if ($this->instance->pageid == SITEID) { - // return $this->content = ''; - } - - if (!empty($this->instance->pageid)) { - $context = get_context_instance(CONTEXT_COURSE, $this->instance->pageid); - if ($COURSE->id == $this->instance->pageid) { - $course = $COURSE; - } else { - $course = $DB->get_record('course', array('id'=>$this->instance->pageid)); - } - } else { - $context = get_context_instance(CONTEXT_SYSTEM); - $course = $SITE; - } + $context = $this->page->context; + $course = $this->page->course; if (!has_capability('moodle/course:view', $context)) { // Just return return $this->content; @@ -54,21 +32,19 @@ class block_admin extends block_list { } /// Course editing on/off - if ($course->id !== SITEID and has_capability('moodle/course:update', $context)) { $this->content->icons[]=''; - if ($PAGE->user_is_editing()) { - $this->content->items[]=''.get_string('turneditingoff').''; + if ($this->page->user_is_editing()) { + $this->content->items[]=''.get_string('turneditingoff').''; } else { - $this->content->items[]=''.get_string('turneditingon').''; + $this->content->items[]=''.get_string('turneditingon').''; } - $this->content->items[]=''.get_string('settings').''; + $this->content->items[]=''.get_string('settings').''; $this->content->icons[]=''; } /// Assign roles to the course - if ($course->id != SITEID) { if (has_capability('moodle/role:assign', $context)) { $this->content->items[]=''.get_string('assignroles', 'role').''; @@ -99,7 +75,7 @@ class block_admin extends block_list { } if ($reportavailable) { - $this->content->items[]=''.get_string('grades').''; + $this->content->items[]=''.get_string('grades').''; $this->content->icons[]=''; } } @@ -107,7 +83,7 @@ class block_admin extends block_list { /// Course outcomes (to help give it more prominence because it's important) if (!empty($CFG->enableoutcomes)) { if ($course->id!==SITEID and has_capability('moodle/course:update', $context)) { - $this->content->items[]=''.get_string('outcomes', 'grades').''; + $this->content->items[]=''.get_string('outcomes', 'grades').''; $this->content->icons[]=''; } } @@ -116,7 +92,7 @@ class block_admin extends block_list { if ($course->metacourse) { if (has_capability('moodle/course:managemetacourse', $context)) { $strchildcourses = get_string('childcourses'); - $this->content->items[]=''.$strchildcourses.''; + $this->content->items[]=''.$strchildcourses.''; $this->content->icons[]=''; } else if (has_capability('moodle/role:assign', $context)) { $strchildcourses = get_string('childcourses'); @@ -127,41 +103,39 @@ class block_admin extends block_list { /// Manage groups in this course - if (($course->id!==SITEID) && ($course->groupmode || !$course->groupmodeforce) && has_capability('moodle/course:managegroups', $context)) { $strgroups = get_string('groups'); - $this->content->items[]=''.$strgroups.''; + $this->content->items[]=''.$strgroups.''; $this->content->icons[]=''; } /// Backup this course - if ($course->id!==SITEID and has_capability('moodle/site:backup', $context)) { - $this->content->items[]=''.get_string('backup').''; + $this->content->items[]=''.get_string('backup').''; $this->content->icons[]=''; } /// Restore to this course if ($course->id !== SITEID and has_capability('moodle/site:restore', $context)) { - $this->content->items[]=''.get_string('restore').''; + $this->content->items[]=''.get_string('restore').''; $this->content->icons[]=''; } /// Import data from other courses if ($course->id !== SITEID and has_capability('moodle/site:import', $context)) { - $this->content->items[]=''.get_string('import').''; + $this->content->items[]=''.get_string('import').''; $this->content->icons[]=''; } /// Reset this course if ($course->id!==SITEID and has_capability('moodle/course:reset', $context)) { - $this->content->items[]=''.get_string('reset').''; + $this->content->items[]=''.get_string('reset').''; $this->content->icons[]=''; } /// View course reports if ($course->id !== SITEID and has_capability('moodle/site:viewreports', $context)) { // basic capability for listing of reports - $this->content->items[]=''.get_string('reports').''; + $this->content->items[]=''.get_string('reports').''; $this->content->icons[]=''; } @@ -187,7 +161,7 @@ class block_admin extends block_list { } if ($questionlink) { $this->content->items[]=''.get_string('questions', 'quiz').''; + '?courseid='.$course->id.'">'.get_string('questions', 'quiz').''; $this->content->icons[]=''; } } @@ -202,7 +176,7 @@ class block_admin extends block_list { /// Manage files if ($course->id !== SITEID and has_capability('moodle/course:managefiles', $context)) { - $this->content->items[]=''.get_string('files').''; + $this->content->items[]=''.get_string('files').''; $this->content->icons[]=''; } @@ -222,10 +196,10 @@ class block_admin extends block_list { /// Unenrol link if (empty($course->metacourse) && ($course->id!==SITEID)) { if (has_capability('moodle/legacy:guest', $context, NULL, false)) { // Are a guest now - $this->content->items[]=''.get_string('enrolme', '', format_string($course->shortname)).''; + $this->content->items[]=''.get_string('enrolme', '', format_string($course->shortname)).''; $this->content->icons[]=''; } else if (has_capability('moodle/role:unassignself', $context, NULL, false) and get_user_roles($context, $USER->id, false)) { // Have some role - $this->content->items[]=''.get_string('unenrolme', '', format_string($course->shortname)).''; + $this->content->items[]=''.get_string('unenrolme', '', format_string($course->shortname)).''; $this->content->icons[]=''; } } diff --git a/blocks/blog_menu/block_blog_menu.php b/blocks/blog_menu/block_blog_menu.php index 04aed2e2e8..4bbd378dd8 100755 --- a/blocks/blog_menu/block_blog_menu.php +++ b/blocks/blog_menu/block_blog_menu.php @@ -39,12 +39,6 @@ class block_blog_menu extends block_base { $this->content = new stdClass; $this->content->footer = ''; - if (empty($this->instance) /*|| empty($CFG->blog_version)*/) { - // Either we're being asked for content without - // an associated instance of the Blog module has never been installed. - $this->content->text = $output; - return $this->content; - } //if ( blog_isLoggedIn() && !isguest() ) { $courseviewlink = ''; diff --git a/blocks/blog_tags/block_blog_tags.php b/blocks/blog_tags/block_blog_tags.php index 3d03badddc..c230a743eb 100644 --- a/blocks/blog_tags/block_blog_tags.php +++ b/blocks/blog_tags/block_blog_tags.php @@ -60,11 +60,6 @@ class block_blog_tags extends block_base { return $this->content; } - if (empty($this->instance)) { - $this->content = ''; - return $this->content; - } - $this->content = new stdClass; $this->content->text = ''; $this->content->footer = ''; @@ -140,11 +135,7 @@ class block_blog_tags extends block_base { case BLOG_COURSE_LEVEL: $filtertype = 'course'; - if (isset($COURSE->id)) { - $filterselect = $COURSE->id; - } else { - $filterselect = $this->instance->pageid; - } + $filterselect = $COURSE->id; break; default: diff --git a/blocks/calendar_upcoming/block_calendar_upcoming.php b/blocks/calendar_upcoming/block_calendar_upcoming.php index b47559593f..f7060527f8 100644 --- a/blocks/calendar_upcoming/block_calendar_upcoming.php +++ b/blocks/calendar_upcoming/block_calendar_upcoming.php @@ -22,7 +22,6 @@ class block_calendar_upcoming extends block_base { $this->content->text = ''; if (empty($this->instance)) { // Overrides: use no course at all - $courseshown = false; $filtercourse = array(); $this->content->footer = ''; diff --git a/blocks/course_summary/block_course_summary.php b/blocks/course_summary/block_course_summary.php index 8ffc2448d8..55cde01dd2 100644 --- a/blocks/course_summary/block_course_summary.php +++ b/blocks/course_summary/block_course_summary.php @@ -7,8 +7,7 @@ class block_course_summary extends block_base { } function specialization() { - global $COURSE; - if($this->instance->pagetype == PAGE_COURSE_VIEW && $COURSE->id != SITEID) { + if($this->page->pagetype == PAGE_COURSE_VIEW && $PAGE->course->id != SITEID) { $this->title = get_string('coursesummary', 'block_course_summary'); } } diff --git a/blocks/html/block_html.php b/blocks/html/block_html.php index e7c0aebe6e..e55f5785db 100755 --- a/blocks/html/block_html.php +++ b/blocks/html/block_html.php @@ -24,7 +24,7 @@ class block_html extends block_base { return $this->content; } - if (!empty($this->instance->pinned) or $this->instance->pagetype === 'course-view') { + if ($this->content_is_trusted()) { // fancy html allowed only on course page and in pinned blocks for security reasons $filteropt = new stdClass; $filteropt->noclean = true; @@ -41,6 +41,10 @@ class block_html extends block_base { return $this->content; } + function content_is_trusted() { + return in_array($this->page->context->contextlevel, array(CONTEXT_COURSE, CONTEXT_COURSECAT, CONTEXT_SYSTEM)); + } + /** * Will be called before an instance of this block is backed up, so that any links in * any links in any HTML fields on config can be encoded. diff --git a/blocks/html/config_instance.html b/blocks/html/config_instance.html index 0d5feabc6f..cbbac9c5f6 100755 --- a/blocks/html/config_instance.html +++ b/blocks/html/config_instance.html @@ -2,7 +2,7 @@ $usehtmleditor = can_use_html_editor(); $text = isset($this->config->text) ? $this->config->text : ''; - if (empty($this->instance->pinned) and $this->instance->pagetype !== 'course-view') { + if (!$this->content_is_trusted()) { $text = clean_text($text, FORMAT_HTML); } ?> diff --git a/blocks/messages/block_messages.php b/blocks/messages/block_messages.php index 0c669bbb97..9304276f18 100644 --- a/blocks/messages/block_messages.php +++ b/blocks/messages/block_messages.php @@ -20,7 +20,7 @@ class block_messages extends block_base { $this->content = new stdClass; $this->content->text = ''; $this->content->footer = ''; - + if (empty($this->instance) or empty($USER->id) or isguest() or empty($CFG->messaging)) { return $this->content; } diff --git a/blocks/moodleblock.class.php b/blocks/moodleblock.class.php index 906496103d..004e9702ff 100644 --- a/blocks/moodleblock.class.php +++ b/blocks/moodleblock.class.php @@ -71,6 +71,12 @@ class block_base { */ var $instance = NULL; + /** + * The page that this block is appearing on. + * @var moodle_page + */ + public $page = NULL; + /** * An object containing the instance configuration information for the current instance of this block. * @var stdObject $config @@ -297,12 +303,13 @@ class block_base { */ function is_empty() { + // TODO if (empty($this->instance->pinned)) { $context = get_context_instance(CONTEXT_BLOCK, $this->instance->id); } else { $context = get_context_instance(CONTEXT_SYSTEM); // pinned blocks do not have own context } - + if ( !has_capability('moodle/block:view', $context) ) { return true; } @@ -400,29 +407,22 @@ class block_base { */ function _add_edit_controls($options) { global $CFG, $USER, $PAGE; - + + // TODO if (empty($this->instance->pinned)) { $context = get_context_instance(CONTEXT_BLOCK, $this->instance->id); } else { $context = get_context_instance(CONTEXT_SYSTEM); // pinned blocks do not have own context } - + // context for site or course, i.e. participant list etc // check to see if user can edit site or course blocks. // blocks can appear on other pages such as mod and blog pages... - switch ($this->instance->pagetype) { - case 'course-view': - if (!has_capability('moodle/site:manageblocks', $context)) { - return null; - } - break; - default: - - break; + if (!$this->page->user_can_edit_blocks()) { + return null; } - - + if (!isset($this->str)) { $this->str->delete = get_string('delete'); $this->str->moveup = get_string('moveup'); @@ -454,24 +454,12 @@ class block_base { $title = $this->str->show; } - if (empty($this->instance->pageid)) { - $this->instance->pageid = 0; - } - - if (($this->instance->pagetype == $PAGE->pagetype) and $this->instance->pageid == $PAGE->id) { - $page = $PAGE; - } else { - $page = new moodle_page(); - $page->set_pagetype($this->instance->pagetype); - $page->pageid = $this->instance->pageid; - } + $page = $this->page; $script = $page->url->out(array('instanceid' => $this->instance->id, 'sesskey' => sesskey())); - if (empty($this->instance->pinned)) { - $movebuttons .= '' . - ''.$this->str->assignroles.''; - } - + $movebuttons .= '' . + ''.$this->str->assignroles.''; + if ($this->user_can_edit()) { $movebuttons .= '' . ''.$title.''; @@ -643,7 +631,7 @@ class block_base { * @param block $instance * @todo add additional documentation to further explain the format of instance and config */ - function _load_instance($instance) { + function _load_instance($instance, $page) { if (!empty($instance->configdata)) { $this->config = unserialize(base64_decode($instance->configdata)); } @@ -653,6 +641,7 @@ class block_base { // so it won't work correctly. Thus it's commented out. // unset($instance->configdata); $this->instance = $instance; + $this->page = $page; $this->specialization(); } @@ -812,12 +801,13 @@ class block_list extends block_base { function is_empty() { + // TODO if (empty($this->instance->pinned)) { $context = get_context_instance(CONTEXT_BLOCK, $this->instance->id); } else { $context = get_context_instance(CONTEXT_SYSTEM); // pinned blocks do not have own context } - + if ( !has_capability('moodle/block:view', $context) ) { return true; } diff --git a/blocks/online_users/block_online_users.php b/blocks/online_users/block_online_users.php index 5d2a5c6b82..17112c414e 100644 --- a/blocks/online_users/block_online_users.php +++ b/blocks/online_users/block_online_users.php @@ -37,6 +37,7 @@ class block_online_users extends block_base { // Get context so we can check capabilities. $context = get_context_instance(CONTEXT_COURSE, $COURSE->id); + // TODO if (empty($this->instance->pinned)) { $blockcontext = get_context_instance(CONTEXT_BLOCK, $this->instance->id); } else { diff --git a/blocks/participants/block_participants.php b/blocks/participants/block_participants.php index 02d55a6595..eb99df9159 100644 --- a/blocks/participants/block_participants.php +++ b/blocks/participants/block_participants.php @@ -15,22 +15,14 @@ class block_participants extends block_list { return $this->content; } - // the following 3 lines is need to pass _self_test(); - if (empty($this->instance->pageid)) { - return ''; - } - $this->content = new object(); $this->content->items = array(); $this->content->icons = array(); $this->content->footer = ''; - + /// MDL-13252 Always get the course context or else the context may be incorrect in the user/index.php - if (!$currentcontext = get_context_instance(CONTEXT_COURSE, $COURSE->id)) { - $this->content = ''; - return $this->content; - } - + $currentcontext = $this->page->context; + if ($COURSE->id == SITEID) { if (!has_capability('moodle/site:viewparticipants', get_context_instance(CONTEXT_SYSTEM))) { $this->content = ''; diff --git a/blocks/quiz_results/block_quiz_results.php b/blocks/quiz_results/block_quiz_results.php index 9c64fa4bfc..d24acf95d2 100644 --- a/blocks/quiz_results/block_quiz_results.php +++ b/blocks/quiz_results/block_quiz_results.php @@ -32,37 +32,33 @@ class block_quiz_results extends block_base { return $this->content; } - if($this->instance->pagetype == 'course-view') { - // We need to see if we are monitoring a quiz - $quizid = empty($this->config->quizid) ? 0 : $this->config->quizid; - $courseid = $this->instance->pageid; - } - else { - // Assuming we are displayed in the quiz view page - $quizid = $this->instance->pageid; - - // A trick to take advantage of instance config and save queries - if (empty($this->config->courseid)) { - $modrecord = $DB->get_record('modules', array('name'=>'quiz')); - $cmrecord = $DB->get_record('course_modules', array('module'=>$modrecord->id, 'instance'=>$quizid)); - $this->config->courseid = intval($cmrecord->course); - $this->instance_config_commit(); + if ($this->page->activityname == 'quiz') { + $quiz = $this->page->activityrecord; + $quizid = $quiz->id; + $courseid = $this->page->course->id; + $inquiz = true; + } else if (!empty($this->config->quizid)) { + $quizid = $this->config->quizid; + $quiz = $DB->get_record('quiz', array('id' => $quizid)); + if (empty($quiz)) { + $this->content->text = get_string('error_emptyquizrecord', 'block_quiz_results'); + return $this->content; } - $courseid = $this->config->courseid; + $courseid = $quiz->course; + $inquiz = false; + } else { + $quizid = 0; } - $context = get_context_instance(CONTEXT_COURSE, $courseid); - + $context = $this->page->context; if (empty($quizid)) { $this->content->text = get_string('error_emptyquizid', 'block_quiz_results'); return $this->content; } - // Get the quiz record - $quiz = $DB->get_record('quiz', array('id' => $quizid)); - if (empty($quiz)) { - $this->content->text = get_string('error_emptyquizrecord', 'block_quiz_results'); + if (empty($this->config->showbest) && empty($this->config->showworst)) { + $this->content->text = get_string('configuredtoshownothing', 'block_quiz_results'); return $this->content; } @@ -75,20 +71,23 @@ class block_quiz_results extends block_base { return $this->content; } - if (empty($this->config->showbest) && empty($this->config->showworst)) { - $this->content->text = get_string('configuredtoshownothing', 'block_quiz_results'); - return $this->content; - } - $groupmode = NOGROUPS; $best = array(); $worst = array(); - $nameformat = intval(empty($this->config->nameformat) ? B_QUIZRESULTS_NAME_FORMAT_FULL : $this->config->nameformat); + if (!empty($this->config->nameformat)) { + $nameformat = $this->config->nameformat; + } else { + $nameformat = B_QUIZRESULTS_NAME_FORMAT_FULL; + } - if(!empty($this->config->usegroups)) { - $groupmode = groups_get_activity_groupmode( - get_coursemodule_from_instance('quiz', $quizid, $courseid), $courseid); + if (!empty($this->config->usegroups)) { + if ($inquiz) { + $cm = $this->page->cm; + } else { + $cm = get_coursemodule_from_instance('quiz', $quizid, $courseid); + } + $groupmode = groups_get_activity_groupmode($cm); } if (has_capability('moodle/site:accessallgroups', $context) && $groupmode == SEPARATEGROUPS) { @@ -96,7 +95,7 @@ class block_quiz_results extends block_base { $groupmode = VISIBLEGROUPS; } - switch($groupmode) { + switch ($groupmode) { case VISIBLEGROUPS: // Display group-mode results $groups = groups_get_all_groups($courseid); @@ -110,7 +109,7 @@ class block_quiz_results extends block_base { // Find out all the userids which have a submitted grade $userids = array(); $gradeforuser = array(); - foreach($grades as $grade) { + foreach ($grades as $grade) { $userids[] = $grade->userid; $gradeforuser[$grade->userid] = (float)$grade->grade; } @@ -152,14 +151,14 @@ class block_quiz_results extends block_base { // Collect all the group results we are going to use in $best and $worst $remaining = $numbest; $groupgrade = end($groupgrades); - while($remaining--) { + while ($remaining--) { $best[key($groupgrades)] = $groupgrade['average']; $groupgrade = prev($groupgrades); } $remaining = $numworst; $groupgrade = reset($groupgrades); - while($remaining--) { + while ($remaining--) { $worst[key($groupgrades)] = $groupgrade['average']; $groupgrade = next($groupgrades); } @@ -167,7 +166,7 @@ class block_quiz_results extends block_base { // Ready for output! $gradeformat = intval(empty($this->config->gradeformat) ? B_QUIZRESULTS_GRADE_FORMAT_PCT : $this->config->gradeformat); - if($this->instance->pagetype != 'mod-quiz-view') { + if (!$inquiz) { // Don't show header and link to the quiz if we ARE at the quiz... $this->content->text .= '

'.$quiz->name.'

'; } @@ -319,7 +318,7 @@ class block_quiz_results extends block_base { $gradeformat = intval(empty($this->config->gradeformat) ? B_QUIZRESULTS_GRADE_FORMAT_PCT : $this->config->gradeformat); - if($this->instance->pagetype != 'mod-quiz-view') { + if(!$inquiz) { // Don't show header and link to the quiz if we ARE at the quiz... $this->content->text .= '

'.$quiz->name.'

'; } diff --git a/blocks/quiz_results/config_instance.html b/blocks/quiz_results/config_instance.html index ac4c324c3c..cd9ffa9a75 100644 --- a/blocks/quiz_results/config_instance.html +++ b/blocks/quiz_results/config_instance.html @@ -1,12 +1,12 @@ -instance->pagetype != 'mod-quiz-view') { ?> +page->activityname != 'quiz') { ?> -instance->pagetype != PAGE_QUIZ_VIEW) ?> +
get_records('quiz', array('course'=>$this->instance->pageid), '', 'id, name'); + $quizzes = $DB->get_records('quiz', array('course' => $this->page->course->id), '', 'id, name'); if(empty($quizzes)) { echo ''.get_string('config_no_quizzes_in_course', 'block_quiz_results').''; echo '

'; @@ -21,7 +21,7 @@ ?>
diff --git a/blocks/rss_client/block_rss_client.php b/blocks/rss_client/block_rss_client.php index dcceaf4f17..a3dfaec1b5 100644 --- a/blocks/rss_client/block_rss_client.php +++ b/blocks/rss_client/block_rss_client.php @@ -96,6 +96,7 @@ } } + // TODO if (empty($this->instance->pinned)) { $context = get_context_instance(CONTEXT_BLOCK, $this->instance->id); } else { @@ -103,9 +104,9 @@ } if (has_capability('block/rss_client:createsharedfeeds', $context) - || has_capability('block/rss_client:createprivatefeeds', $context)) { + || has_capability('block/rss_client:createprivatefeeds', $context)) { - $page = page_create_object($this->instance->pagetype, $this->instance->pageid); + $page = $this->page; //if ($page->user_allowed_editing()) { // for SUBMITTERS_ALL_ACCOUNT_HOLDERS we're going to run into trouble later if we show it and then they don't have write access to the page. if (isset($this->config)) { // This instance is configured - show Add/Edit feeds link. diff --git a/blocks/rss_client/config_instance.html b/blocks/rss_client/config_instance.html index 83f6d76ef3..3afe111524 100644 --- a/blocks/rss_client/config_instance.html +++ b/blocks/rss_client/config_instance.html @@ -4,7 +4,7 @@ require_once($CFG->libdir .'/rsslib.php'); $id = optional_param('id', SITEID, PARAM_INT); //create a page object for url_get_full() -$page = page_create_object($this->instance->pagetype, $this->instance->pageid); +$page = $this->page; /// Print tabs at top @@ -93,6 +93,7 @@ print_box_start(); print $checkbox . $feedtitle .'
'."\n"; } } else { + // TODO if (empty($this->instance->pinned)) { $context = get_context_instance(CONTEXT_BLOCK, $this->instance->id); } else { @@ -173,6 +174,7 @@ print_box_start(); } else { global $act, $url, $rssid, $preferredtitle, $shared; print ''; // Closes off page form + // TODO if (empty($this->instance->pinned)) { $context = get_context_instance(CONTEXT_BLOCK, $this->instance->id); } else { diff --git a/blocks/rss_client/config_instance_tabs.php b/blocks/rss_client/config_instance_tabs.php index e8541e0d0b..a71be2a9ca 100644 --- a/blocks/rss_client/config_instance_tabs.php +++ b/blocks/rss_client/config_instance_tabs.php @@ -5,7 +5,7 @@ global $USER; $tabs = $row = array(); - +// TODO if (empty($this->instance->pinned)) { $context = get_context_instance(CONTEXT_BLOCK, $this->instance->id); } else { diff --git a/blocks/search_forums/block_search_forums.php b/blocks/search_forums/block_search_forums.php index 1f4cbae77f..0fbc286f4a 100644 --- a/blocks/search_forums/block_search_forums.php +++ b/blocks/search_forums/block_search_forums.php @@ -31,11 +31,11 @@ class block_search_forums extends block_base { $this->content->text = '
'; $this->content->text .= '
'; - $this->content->text .= ''; // course + $this->content->text .= ''; // course $this->content->text .= ''. ''; $this->content->text .= '
'; - $this->content->text .= ''.$advancedsearch.''; + $this->content->text .= ''.$advancedsearch.''; $this->content->text .= helpbutton('search', $advancedsearch, 'moodle', true, false, '', true); $this->content->text .= '
'; diff --git a/blocks/section_links/block_section_links.php b/blocks/section_links/block_section_links.php index 7117ad925f..e7c1bdc06d 100644 --- a/blocks/section_links/block_section_links.php +++ b/blocks/section_links/block_section_links.php @@ -11,7 +11,7 @@ class block_section_links extends block_base { global $DB; parent::instance_config($instance); - $course = $DB->get_record('course', array('id'=>$this->instance->pageid)); + $course = $this->page->course; if (isset($course->format)) { if ($course->format == 'topics') { $this->title = get_string('topics', 'block_section_links'); @@ -44,11 +44,7 @@ class block_section_links extends block_base { return $this->content; } - if ($this->instance->pageid == $COURSE->id) { - $course = $COURSE; - } else { - $course = $DB->get_record('course', array('id'=>$this->instance->pageid)); - } + $course = $this->page->course; $context = get_context_instance(CONTEXT_COURSE, $course->id); if ($course->format == 'weeks' or $course->format == 'weekscss') { @@ -70,10 +66,10 @@ class block_section_links extends block_base { } if (!empty($USER->id)) { - $display = $DB->get_field('course_display', 'display', array('course'=>$this->instance->pageid, 'userid'=>$USER->id)); + $display = $DB->get_field('course_display', 'display', array('course'=>$this->page->course->id, 'userid'=>$USER->id)); } if (!empty($display)) { - $link = $CFG->wwwroot.'/course/view.php?id='.$this->instance->pageid.'&'.$sectionname.'='; + $link = $CFG->wwwroot.'/course/view.php?id='.$this->page->course->id.'&'.$sectionname.'='; } else { $link = '#section-'; } diff --git a/blocks/site_main_menu/block_site_main_menu.php b/blocks/site_main_menu/block_site_main_menu.php index 144a6640d2..8f7cb875fb 100644 --- a/blocks/site_main_menu/block_site_main_menu.php +++ b/blocks/site_main_menu/block_site_main_menu.php @@ -26,14 +26,8 @@ class block_site_main_menu extends block_list { return $this->content; } - if ($COURSE->id == $this->instance->pageid) { - $course = $COURSE; - } else { - $course = $DB->get_record('course', array('id'=>$this->instance->pageid)); - } - + $course = $this->page->course; require_once($CFG->dirroot.'/course/lib.php'); - $context = get_context_instance(CONTEXT_COURSE, $course->id); $isediting = $PAGE->user_is_editing() && has_capability('moodle/course:manageactivities', $context); $modinfo = get_fast_modinfo($course); @@ -67,12 +61,11 @@ class block_site_main_menu extends block_list { return $this->content; } - /// slow & hacky editing mode - $ismoving = ismoving($this->instance->pageid); - $section = get_course_section(0, $this->instance->pageid); + $ismoving = ismoving($course->id); + $section = get_course_section(0, $course->id); - get_all_mods($this->instance->pageid, $mods, $modnames, $modnamesplural, $modnamesused); + get_all_mods($course->id, $mods, $modnames, $modnamesplural, $modnamesused); $groupbuttons = $course->groupmode; $groupbuttonslink = (!$course->groupmodeforce); @@ -121,7 +114,7 @@ class block_site_main_menu extends block_list { $this->content->icons[] = ''; } $instancename = $modinfo->cms[$modnumber]->name; - $instancename = format_string($instancename, true, $this->instance->pageid); + $instancename = format_string($instancename, true, $course->id); $linkcss = $mod->visible ? '' : ' class="dimmed" '; if (!empty($modinfo->cms[$modnumber]->extra)) { $extra = $modinfo->cms[$modnumber]->extra; diff --git a/blocks/social_activities/block_social_activities.php b/blocks/social_activities/block_social_activities.php index 06f29dfde3..cf2777e69e 100644 --- a/blocks/social_activities/block_social_activities.php +++ b/blocks/social_activities/block_social_activities.php @@ -26,11 +26,7 @@ class block_social_activities extends block_list { return $this->content; } - if ($COURSE->id == $this->instance->pageid) { - $course = $COURSE; - } else { - $course = $DB->get_record('course', array('id'=>$this->instance->pageid)); - } + $course = $this->page->course; require_once($CFG->dirroot.'/course/lib.php'); @@ -69,15 +65,15 @@ class block_social_activities extends block_list { /// slow & hacky editing mode - $ismoving = ismoving($this->instance->pageid); - $sections = get_all_sections($this->instance->pageid); + $ismoving = ismoving($course->id); + $sections = get_all_sections($course->id); if(!empty($sections) && isset($sections[0])) { $section = $sections[0]; } if (!empty($section)) { - get_all_mods($this->instance->pageid, $mods, $modnames, $modnamesplural, $modnamesused); + get_all_mods($course->id, $mods, $modnames, $modnamesplural, $modnamesused); } $groupbuttons = $course->groupmode; @@ -127,7 +123,7 @@ class block_social_activities extends block_list { $this->content->icons[] = ''; } $instancename = $modinfo->cms[$modnumber]->name; - $instancename = format_string($instancename, true, $this->instance->pageid); + $instancename = format_string($instancename, true, $course->id); $linkcss = $mod->visible ? '' : ' class="dimmed" '; if (!empty($modinfo->cms[$modnumber]->extra)) { $extra = $modinfo->cms[$modnumber]->extra; diff --git a/blog/header.php b/blog/header.php index 03a0be6f1c..3d8986422e 100755 --- a/blog/header.php +++ b/blog/header.php @@ -76,23 +76,6 @@ $preferred_width_left = bounded_number(BLOCK_L_MIN_WIDTH, blocks_preferred_widt $preferred_width_right = bounded_number(BLOCK_R_MIN_WIDTH, blocks_preferred_width($pageblocks[BLOCK_POS_RIGHT]), BLOCK_R_MAX_WIDTH); -// Display the blocks and allow blocklib to handle any block action requested -$pageblocks = blocks_get_by_page($PAGE); - -if ($editing) { - if (!empty($blockaction) && confirm_sesskey()) { - if (!empty($blockid)) { - blocks_execute_action($PAGE, $pageblocks, strtolower($blockaction), intval($blockid)); - } else if (!empty($instanceid)) { - $instance = blocks_find_instance($instanceid, $pageblocks); - blocks_execute_action($PAGE, $pageblocks, strtolower($blockaction), $instance); - } - // This re-query could be eliminated by judicious programming in blocks_execute_action(), - // but I'm not sure if it's worth the complexity increase... - $pageblocks = blocks_get_by_page($PAGE); - } -} - if (!empty($tagid)) { $taginstance = $DB->get_record('tag', array('id'=>$tagid)); } elseif (!empty($tag)) {