From ba1f355fd5121d6bfb6b1b2e9ca830d23f86d6d3 Mon Sep 17 00:00:00 2001 From: Amaia Anabitarte Date: Tue, 18 Mar 2025 12:47:08 +0100 Subject: [PATCH] MDL-84803 mod_feedback: Make titles unique --- mod/feedback/analysis.php | 8 +++++++- mod/feedback/classes/output/renderer.php | 14 ++++++++++++++ mod/feedback/edit.php | 12 +++++++++--- mod/feedback/edit_item.php | 9 ++++++++- mod/feedback/manage_templates.php | 10 +++++++--- mod/feedback/print.php | 7 ++++++- mod/feedback/show_entries.php | 12 ++++++++---- mod/feedback/view.php | 16 +++++++--------- 8 files changed, 66 insertions(+), 22 deletions(-) diff --git a/mod/feedback/analysis.php b/mod/feedback/analysis.php index 5641925d628..6f0c2781c08 100644 --- a/mod/feedback/analysis.php +++ b/mod/feedback/analysis.php @@ -47,7 +47,13 @@ if (!$feedbackstructure->can_view_analysis()) { /// Print the page header $PAGE->set_heading($course->fullname); -$PAGE->set_title($feedback->name); + +$renderer = $PAGE->get_renderer('mod_feedback'); +$renderer->set_title( + [format_string($feedback->name), format_string($course->fullname)], + get_string('analysis', 'feedback') +); + $PAGE->activityheader->set_attrs([ 'hidecompletion' => true, 'description' => '' diff --git a/mod/feedback/classes/output/renderer.php b/mod/feedback/classes/output/renderer.php index 5808cfaa511..41aa31ce8c4 100644 --- a/mod/feedback/classes/output/renderer.php +++ b/mod/feedback/classes/output/renderer.php @@ -47,4 +47,18 @@ class renderer extends plugin_renderer_base { public function create_template_form(int $id) { return $this->render_from_template('mod_feedback/create_template', ['id' => $id]); } + + /** + * Builds the feedback page title. + * + * @param array $titleparts the different parts to add to the title. + * @param string $pagetitle the page title to add to the rest of the parts. Empty by default. + */ + public function set_title(array $titleparts, string $pagetitle = '') { + $title = implode(\moodle_page::TITLE_SEPARATOR, $titleparts); + if (!empty($pagetitle)) { + $title = $pagetitle . ': ' . $title; + } + $this->page->set_title($title); + } } diff --git a/mod/feedback/edit.php b/mod/feedback/edit.php index cfee4484bdf..020f566100f 100644 --- a/mod/feedback/edit.php +++ b/mod/feedback/edit.php @@ -83,7 +83,14 @@ $lastposition++; $PAGE->set_url($url); $PAGE->set_heading($course->fullname); -$PAGE->set_title($feedback->name); + +/** @var \mod_feedback\output\renderer $renderer */ +$renderer = $PAGE->get_renderer('mod_feedback'); +$renderer->set_title( + [format_string($feedback->name), format_string($course->fullname)], + get_string('questions', 'feedback') +); + $actionbar = new \mod_feedback\output\edit_action_bar($cm->id, $url, $lastposition); $PAGE->activityheader->set_attrs([ 'hidecompletion' => true, @@ -103,8 +110,7 @@ if (count($feedbackitems) > 1) { } echo $OUTPUT->header(); -/** @var \mod_feedback\output\renderer $renderer */ -$renderer = $PAGE->get_renderer('mod_feedback'); +echo $OUTPUT->heading(get_string('edit_items', 'mod_feedback'), 3); echo $renderer->main_action_bar($actionbar); $form = new mod_feedback_complete_form(mod_feedback_complete_form::MODE_EDIT, $feedbackstructure, 'feedback_edit_form'); diff --git a/mod/feedback/edit_item.php b/mod/feedback/edit_item.php index 6f9ca6663f6..43594a64284 100644 --- a/mod/feedback/edit_item.php +++ b/mod/feedback/edit_item.php @@ -98,7 +98,14 @@ if ($item->id) { $PAGE->navbar->add(get_string('add_item', 'feedback')); } $PAGE->set_heading($course->fullname); -$PAGE->set_title($feedback->name); + +$renderer = $PAGE->get_renderer('mod_feedback'); +$pagetitle = ($itemid) ? get_string('edit_item', 'feedback') : get_string('add_item', 'feedback'); +$renderer->set_title( + [format_string($feedback->name), format_string($course->fullname)], + $pagetitle +); + $PAGE->activityheader->set_attrs([ "hidecompletion" => true, "description" => '' diff --git a/mod/feedback/manage_templates.php b/mod/feedback/manage_templates.php index 35ced395453..efecf7ea2b9 100644 --- a/mod/feedback/manage_templates.php +++ b/mod/feedback/manage_templates.php @@ -54,7 +54,13 @@ $PAGE->set_url($url); $actionbar = new \mod_feedback\output\edit_action_bar($cm->id, $url); $PAGE->set_heading($course->fullname); -$PAGE->set_title($feedback->name); + +/** @var \mod_feedback\output\renderer $renderer */ +$renderer = $PAGE->get_renderer('mod_feedback'); +$renderer->set_title( + [format_string($feedback->name), format_string($course->fullname)], + get_string('templates', 'feedback') +); // Process template deletion. if ($templateid) { @@ -76,8 +82,6 @@ $PAGE->activityheader->set_attrs([ "description" => '' ]); echo $OUTPUT->header(); -/** @var \mod_feedback\output\renderer $renderer */ -$renderer = $PAGE->get_renderer('mod_feedback'); if (!$mode) { echo $renderer->main_action_bar($actionbar); } diff --git a/mod/feedback/print.php b/mod/feedback/print.php index 112e1f2d98c..f82de4219a3 100644 --- a/mod/feedback/print.php +++ b/mod/feedback/print.php @@ -60,7 +60,12 @@ $feedback_url = new moodle_url('/mod/feedback/index.php', array('id'=>$course->i $PAGE->navbar->add($strfeedbacks, $feedback_url); $PAGE->navbar->add(format_string($feedback->name)); -$PAGE->set_title($feedback->name); +$renderer = $PAGE->get_renderer('mod_feedback'); +$renderer->set_title( + [format_string($feedback->name), format_string($course->fullname)], + get_string('previewquestions', 'feedback') +); + $PAGE->set_heading($course->fullname); $PAGE->activityheader->set_title(format_string($feedback->name)); echo $OUTPUT->header(); diff --git a/mod/feedback/show_entries.php b/mod/feedback/show_entries.php index 882e87ad5d2..333cfac6a82 100644 --- a/mod/feedback/show_entries.php +++ b/mod/feedback/show_entries.php @@ -85,16 +85,20 @@ if ($data = $courseselectform->get_data()) { // Print the page header. navigation_node::override_active_url($baseurl); $PAGE->set_heading($course->fullname); -$PAGE->set_title($feedback->name); + +/** @var \mod_feedback\output\renderer $renderer */ +$renderer = $PAGE->get_renderer('mod_feedback'); +$renderer->set_title( + [format_string($feedback->name), format_string($course->fullname)], + get_string('responses', 'feedback') +); + $PAGE->activityheader->set_attrs([ 'hidecompletion' => true, 'description' => '' ]); $PAGE->add_body_class('limitedwidth'); echo $OUTPUT->header(); - -/** @var \mod_feedback\output\renderer $renderer */ -$renderer = $PAGE->get_renderer('mod_feedback'); echo $renderer->main_action_bar($actionbar); echo $OUTPUT->heading(get_string('show_entries', 'mod_feedback'), 3); diff --git a/mod/feedback/view.php b/mod/feedback/view.php index e62ba8712aa..91ecad52717 100644 --- a/mod/feedback/view.php +++ b/mod/feedback/view.php @@ -41,15 +41,16 @@ if ($course->id == SITEID) { $PAGE->set_pagelayout('incourse'); } $PAGE->set_url('/mod/feedback/view.php', array('id' => $cm->id)); -$PAGE->set_title($feedback->name); + +/** @var \mod_feedback\output\renderer $renderer */ +$renderer = $PAGE->get_renderer('mod_feedback'); +$renderer->set_title( + [format_string($feedback->name), format_string($course->fullname)] +); + $PAGE->set_heading($course->fullname); $PAGE->add_body_class('limitedwidth'); -// Check access to the given courseid. -if ($courseid AND $courseid != SITEID) { - require_course_login(get_course($courseid)); // This overwrites the object $COURSE . -} - // Check whether the feedback is mapped to the given courseid. if (!has_capability('mod/feedback:edititems', $context) && !$feedbackcompletion->check_course_is_mapped()) { @@ -67,9 +68,6 @@ $actionbar = new \mod_feedback\output\standard_action_bar( $courseid ); -/** @var \mod_feedback\output\renderer $renderer */ -$renderer = $PAGE->get_renderer('mod_feedback'); - // Trigger module viewed event. $feedbackcompletion->trigger_module_viewed();