From: Sam Hemelryk Date: Fri, 18 Dec 2009 03:50:38 +0000 (+0000) Subject: mod-lesson MDL-21006 Refactored renderer->header method, removed logic to function... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=448052a5fd9116b2f465c9c18af06283cfb4f795;p=moodle.git mod-lesson MDL-21006 Refactored renderer->header method, removed logic to function in locallib --- diff --git a/mod/lesson/continue.php b/mod/lesson/continue.php index 165007598d..b38517f7c2 100644 --- a/mod/lesson/continue.php +++ b/mod/lesson/continue.php @@ -156,7 +156,7 @@ $PAGE->set_subpage($page->id); /// Print the header, heading and tabs lesson_add_pretend_blocks($PAGE, $cm, $lesson, $timer); -echo $lessonoutput->header($lesson, 'view', true, $page->id); +echo $lessonoutput->header($lesson, $cm, 'view', true, $page->id); if ($lesson->displayleft) { echo ''; diff --git a/mod/lesson/edit.php b/mod/lesson/edit.php index 0b00f24597..a8b3e4527a 100644 --- a/mod/lesson/edit.php +++ b/mod/lesson/edit.php @@ -47,7 +47,7 @@ if ($mode != get_user_preferences('lesson_view', 'collapsed') && $mode !== 'sing $lessonoutput = $PAGE->get_renderer('mod_lesson'); $PAGE->navbar->add(get_string('edit')); -echo $lessonoutput->header($lesson, $mode); +echo $lessonoutput->header($lesson, $cm, $mode); if (!$lesson->has_pages()) { // There are no pages; give teacher some options require_capability('mod/lesson:edit', $context); diff --git a/mod/lesson/editpage.php b/mod/lesson/editpage.php index f04e637a55..05751b4092 100644 --- a/mod/lesson/editpage.php +++ b/mod/lesson/editpage.php @@ -99,6 +99,6 @@ if ($data = $mform->get_data()) { } $lessonoutput = $PAGE->get_renderer('mod_lesson'); -echo $lessonoutput->header($lesson); +echo $lessonoutput->header($lesson, $cm); $mform->display(); echo $lessonoutput->footer(); \ No newline at end of file diff --git a/mod/lesson/essay.php b/mod/lesson/essay.php index 10bac3ff8a..d8eb0ee7b6 100644 --- a/mod/lesson/essay.php +++ b/mod/lesson/essay.php @@ -278,7 +278,7 @@ switch ($mode) { add_to_log($course->id, 'lesson', 'view grade', "essay.php?id=$cm->id", get_string('manualgrading', 'lesson'), $cm->id); $lessonoutput = $PAGE->get_renderer('mod_lesson'); -echo $lessonoutput->header($lesson, 'essay'); +echo $lessonoutput->header($lesson, $cm, 'essay'); switch ($mode) { case 'display': diff --git a/mod/lesson/highscores.php b/mod/lesson/highscores.php index c092568622..110c98be40 100644 --- a/mod/lesson/highscores.php +++ b/mod/lesson/highscores.php @@ -162,7 +162,7 @@ switch ($mode) { add_to_log($course->id, 'lesson', 'view highscores', "highscores.php?id=$cm->id", $lesson->name, $cm->id); $lessonoutput = $PAGE->get_renderer('mod_lesson'); -echo $lessonoutput->header($lesson, 'highscores'); +echo $lessonoutput->header($lesson, $cm, 'highscores'); switch ($mode) { case 'add': diff --git a/mod/lesson/lesson.php b/mod/lesson/lesson.php index f635405fc8..61b0f13d2c 100644 --- a/mod/lesson/lesson.php +++ b/mod/lesson/lesson.php @@ -59,7 +59,7 @@ switch ($action) { case 'confirmdelete': $thispage = $lesson->load_page($pageid); - echo $lessonoutput->header($lesson); + echo $lessonoutput->header($lesson, $cm); echo $OUTPUT->heading(get_string("deletingpage", "lesson", format_string($thispage->title))); // print the jumps to this page $params = array("lessonid" => $lesson->id, "pageid" => $pageid); @@ -80,7 +80,7 @@ switch ($action) { $title = $DB->get_field("lesson_pages", "title", array("id" => $pageid)); - echo $lessonoutput->header($lesson); + echo $lessonoutput->header($lesson, $cm); echo $OUTPUT->heading(get_string("moving", "lesson", format_string($title))); $params = array ("lessonid" => $lesson->id, "prevpageid" => 0); diff --git a/mod/lesson/locallib.php b/mod/lesson/locallib.php index e544254b1e..90ad679cd3 100644 --- a/mod/lesson/locallib.php +++ b/mod/lesson/locallib.php @@ -550,4 +550,31 @@ function lesson_menu_block_contents($cmid, $lesson) { $bc->content = $content; return $bc; +} + +/** + * Adds header buttons to the page for the lesson + * + * @param object $cm + * @param object $context + * @param bool $extraeditbuttons + * @param int $lessonpageid + */ +function lesson_add_header_buttons($cm, $context, $extraeditbuttons=false, $lessonpageid=null) { + global $CFG, $PAGE, $OUTPUT; + if (has_capability('mod/lesson:edit', $context)) { + $buttons = $OUTPUT->update_module_button($cm->id, 'lesson'); + if ($extraeditbuttons) { + if ($lessonpageid === null) { + print_error('invalidpageid', 'lesson'); + } + if (!empty($lessonpageid) && $lessonpageid != LESSON_EOL) { + $options = array('id'=>$cm->id, 'redirect'=>'navigation', 'pageid'=>$lessonpageid); + $buttonform = html_form::make_button($CFG->wwwroot.'/mod/lesson/lesson.php', $options, get_string('editpagecontent', 'lesson')); + $buttons .= $OUTPUT->button($buttonform); + } + $buttons = $OUTPUT->box($buttons, 'edit_buttons'); + } + $PAGE->set_button($buttons); + } } \ No newline at end of file diff --git a/mod/lesson/mediafile.php b/mod/lesson/mediafile.php index 6cba7e644b..d5098ca615 100644 --- a/mod/lesson/mediafile.php +++ b/mod/lesson/mediafile.php @@ -60,7 +60,7 @@ $mimetype = mimeinfo("type", $lesson->mediafile); if ($printclose) { // this is for framesets if ($lesson->mediaclose) { $PAGE->set_title($course->shortname); - echo $lessonoutput->header($lesson); + echo $lessonoutput->header($lesson, $cm); echo $OUTPUT->box('
', 'lessonmediafilecontrol'); echo $lessonoutput->footer(); } @@ -70,7 +70,7 @@ if ($printclose) { // this is for framesets $mediafilehtml = lesson_get_media_html($lesson, $context); $PAGE->set_title($course->shortname); -echo $lessonoutput->header($lesson); +echo $lessonoutput->header($lesson, $cm); // print the embedded media html code echo $OUTPUT->box($mediafilehtml); diff --git a/mod/lesson/renderer.php b/mod/lesson/renderer.php index e554b4ed7a..98879c31fe 100644 --- a/mod/lesson/renderer.php +++ b/mod/lesson/renderer.php @@ -33,35 +33,19 @@ class mod_lesson_renderer extends plugin_renderer_base { * @param int $lessonpageid * @return string */ - public function header($lesson, $currenttab = '', $extraeditbuttons = false, $lessonpageid = null) { + public function header($lesson, $cm, $currenttab = '', $extraeditbuttons = false, $lessonpageid = null) { global $CFG; - $activityname = format_string($lesson->name, true, $this->page->course->id); + $activityname = format_string($lesson->name, true, $lesson->course); $title = $this->page->course->shortname.": ".$activityname; // Build the buttons - $context = get_context_instance(CONTEXT_MODULE, $this->page->cm->id); - if (has_capability('mod/lesson:edit', $context)) { - $buttons = $this->output->update_module_button($this->page->cm->id, 'lesson'); - if ($extraeditbuttons) { - if ($lessonpageid === null) { - print_error('invalidpageid', 'lesson'); - } - if (!empty($lessonpageid) && $lessonpageid != LESSON_EOL) { - $options = array('id'=>$this->page->cm->id, 'redirect'=>'navigation', 'pageid'=>$lessonpageid); - $buttonform = html_form::make_button($CFG->wwwroot.'/mod/lesson/lesson.php', $options, get_string('editpagecontent', 'lesson')); - $buttons .= $this->output->button($buttonform); - } - $buttons = $this->output->box($buttons, 'edit_buttons'); - } - } else { - $buttons = ' '; - } + $context = get_context_instance(CONTEXT_MODULE, $cm->id); /// Header setup $this->page->set_title($title); $this->page->set_heading($this->page->course->fullname); - $this->page->set_button($buttons); + lesson_add_header_buttons($cm, $context, $extraeditbuttons, $lessonpageid); $output = $this->output->header(); if (has_capability('mod/lesson:manage', $context)) { diff --git a/mod/lesson/report.php b/mod/lesson/report.php index eb4008f7dd..22fc5b1a02 100644 --- a/mod/lesson/report.php +++ b/mod/lesson/report.php @@ -139,7 +139,7 @@ if (! $times = $DB->get_records('lesson_timer', array('lessonid' => $lesson->id) $times = array(); } -echo $lessonoutput->header($lesson, $action); +echo $lessonoutput->header($lesson, $cm, $action); $course_context = get_context_instance(CONTEXT_COURSE, $course->id); if (has_capability('gradereport/grader:view', $course_context) && has_capability('moodle/grade:viewall', $course_context)) { diff --git a/mod/lesson/view.php b/mod/lesson/view.php index 69f943c789..e73f5595b8 100644 --- a/mod/lesson/view.php +++ b/mod/lesson/view.php @@ -60,7 +60,7 @@ $lessonoutput = $PAGE->get_renderer('mod_lesson'); /// Check for high scores if (!$canmanage) { if (!$lesson->is_accessible()) { // Deadline restrictions - echo $lessonoutput->header($lesson); + echo $lessonoutput->header($lesson, $cm); if ($lesson->deadline != 0 && time() > $lesson->deadline) { echo $lessonoutput->lesson_inaccessible(get_string('lessonclosed', 'lesson', userdate($lesson->deadline))); } else { @@ -78,7 +78,7 @@ if (!$canmanage) { redirect("$CFG->wwwroot/mod/lesson/view.php?id=$cm->id"); } } else { - echo $lessonoutput->header($lesson); + echo $lessonoutput->header($lesson, $cm); echo $lessonoutput->login_prompt($lesson, optional_param('userpassword', 0, PARAM_CLEAN)); echo $lessonoutput->footer(); exit(); @@ -131,7 +131,7 @@ if (!$canmanage) { } if (!empty($errors)) { // print out the errors if any - echo $lessonoutput->header($lesson); + echo $lessonoutput->header($lesson, $cm); echo $lessonoutput->dependancy_errors($dependentlesson, $errors); echo $lessonoutput->footer(); exit(); @@ -215,7 +215,7 @@ if (empty($pageid)) { } } if (isset($lastpageseen) && $DB->count_records('lesson_attempts', array('lessonid'=>$lesson->id, 'userid'=>$USER->id, 'retry'=>$retries)) > 0) { - echo $lessonoutput->header($lesson); + echo $lessonoutput->header($lesson, $cm); if ($lesson->timed) { if ($lesson->retake) { $continuelink = html_form::make_button($CFG->wwwroot.'/mod/lesson/view.php', array('id'=>$cm->id, 'pageid'=>$lesson->firstpageid, 'startlastseen'=>'no'), get_string('continue', 'lesson'), 'get'); @@ -233,7 +233,7 @@ if (empty($pageid)) { if ($attemptflag) { if (!$lesson->retake) { - echo $lessonoutput->header($lesson, 'view'); + echo $lessonoutput->header($lesson, $cm, 'view'); $courselink = html_form::make_button($CFG->wwwroot.'/course/view.php', array('id'=>$PAGE->course->id), get_string('returntocourse', 'lesson'), 'get'); echo $lessonoutput->message(get_string("noretake", "lesson"), $courselink); echo $lessonoutput->footer(); @@ -370,7 +370,7 @@ if ($pageid != LESSON_EOL) { } lesson_add_pretend_blocks($PAGE, $cm, $lesson, $timer); - echo $lessonoutput->header($lesson, $currenttab, $extraeditbuttons, $lessonpageid); + echo $lessonoutput->header($lesson, $cm, $currenttab, $extraeditbuttons, $lessonpageid); if ($attemptflag) { echo $OUTPUT->heading(get_string('attempt', 'lesson', $retries)); } @@ -559,7 +559,7 @@ if ($pageid != LESSON_EOL) { $lessoncontent .= $OUTPUT->link($link); lesson_add_pretend_blocks($PAGE, $cm, $lesson, $timer); - echo $lessonoutput->header($lesson, $currenttab, $extraeditbuttons, $lessonpageid); + echo $lessonoutput->header($lesson, $cm, $currenttab, $extraeditbuttons, $lessonpageid); echo $lessoncontent; echo $lessonoutput->footer(); }