From 236571c2b841bc03ce77b139fcc284756e09a415 Mon Sep 17 00:00:00 2001 From: Gareth Barnard <1058419+gjb2048@users.noreply.github.com> Date: Mon, 23 Sep 2024 17:56:43 +0100 Subject: [PATCH] Fix section zero showing after section on single section page. This has caused the removal of 'sectionzeroingrid' setting. If you want this functionality, please upgrade to the M4.4+ version. --- Changes.md | 2 ++ classes/output/courseformat/content.php | 21 ++++++++++----------- lang/en/format_grid.php | 6 ------ lib.php | 23 ----------------------- settings.php | 11 ----------- 5 files changed, 12 insertions(+), 51 deletions(-) diff --git a/Changes.md b/Changes.md index 895be676..62ddf446 100644 --- a/Changes.md +++ b/Changes.md @@ -3,6 +3,8 @@ History Version 401.2.5 - ---------------------------- +1. Fix section zero showing after section on single section page. This has caused the removal of 'sectionzeroingrid' setting. + If you want this functionality, please upgrade to the M4.4+ version. Version 401.2.4 - 21/09/2024 ---------------------------- diff --git a/classes/output/courseformat/content.php b/classes/output/courseformat/content.php index 9aa0b6cd..a53aeeca 100644 --- a/classes/output/courseformat/content.php +++ b/classes/output/courseformat/content.php @@ -89,15 +89,16 @@ public function export_for_template(\renderer_base $output) { $initialsection = ''; $course = $format->get_course(); $currentsectionid = 0; - $coursesettings = $format->get_settings(); - $sectionzeronotingrid = ($coursesettings['sectionzeroingrid'] == 1); if (!empty($sections)) { // Is first entry section 0? if ($sections[0]->num === 0) { - if ((!$singlesection) && ($sectionzeronotingrid)) { - // Most formats uses section 0 as a separate section so we remove from the list. - $initialsection = array_shift($sections); + // Most formats uses section 0 as a separate section so we remove from the list. + // M4.3- Has section 0 in the sections for a single section page, ref: get_sections_to_display(). + // Also because of the way that section 0 is a number and not an id, then sectionzeronotingrid + // is not possible in this version. + $initialsection = array_shift($sections); + if (!$singlesection) { $data->initialsection = $initialsection; } } @@ -126,6 +127,7 @@ public function export_for_template(\renderer_base $output) { $data->sectionreturn = $singlesection; $data->maincoursepage = new \moodle_url('/course/view.php', ['id' => $course->id]); } else { + $coursesettings = $format->get_settings(); $toolbox = \format_grid\toolbox::get_instance(); $coursesectionimages = $DB->get_records('format_grid_image', ['courseid' => $course->id]); if (!empty($coursesectionimages)) { @@ -336,12 +338,9 @@ protected function get_grid_sections(\renderer_base $output, $settings): array { $numsections = $format->get_last_section_number(); $sectioninfos = $modinfo->get_section_info_all(); $coursesettings = $format->get_settings(); - $sectionzeronotingrid = ($coursesettings['sectionzeroingrid'] == 1); - if ($sectionzeronotingrid) { - // Get rid of section 0. - if (!empty($sectioninfos)) { - array_shift($sectioninfos); - } + // Get rid of section 0. + if (!empty($sectioninfos)) { + array_shift($sectioninfos); } foreach ($sectioninfos as $thissection) { // The course/view.php check the section existence but the output can be called from other parts so we need to check it. diff --git a/lang/en/format_grid.php b/lang/en/format_grid.php index 41f1ee02..e060ff0f 100644 --- a/lang/en/format_grid.php +++ b/lang/en/format_grid.php @@ -127,12 +127,6 @@ $string['defaultpopup'] = 'Use a popup'; $string['defaultpopup_desc'] = 'Display the section in a popup instead of navigating to a single section page.'; -// Section zero. -$string['sectionzeroingrid'] = 'Section zero in grid'; -$string['sectionzeroingrid_help'] = 'Place section zero in the grid'; -$string['defaultsectionzeroingrid'] = 'Section zero in grid'; -$string['defaultsectionzeroingrid_desc'] = 'Place section zero in the grid.'; - // Completion. $string['showcompletion'] = 'Show completion'; $string['showcompletion_help'] = 'Show the completion of the section on the grid'; diff --git a/lib.php b/lib.php index 9c092f97..4fd9bd65 100755 --- a/lib.php +++ b/lib.php @@ -264,9 +264,6 @@ public function get_view_url($section, $options = []) { if ($sectionno != 0 && $usercoursedisplay == COURSE_DISPLAY_MULTIPAGE) { $url->param('section', $sectionno); } else { - if (empty($CFG->linkcoursesections) && !empty($options['navigation'])) { - return null; - } $url->set_anchor('section-'.$sectionno); } } @@ -415,10 +412,6 @@ public function course_format_options($foreditform = false) { 'default' => 0, 'type' => PARAM_INT, ], - 'sectionzeroingrid' => [ - 'default' => 0, - 'type' => PARAM_INT, - ], 'showcompletion' => [ 'default' => 0, 'type' => PARAM_INT, @@ -533,22 +526,6 @@ public function course_format_options($foreditform = false) { 'element_attributes' => [$imageresizemethodvalues], ]; - $sectionzeroingridvalues = $this->generate_default_entry( - 'sectionzeroingrid', - 0, - [ - 1 => new lang_string('no'), - 2 => new lang_string('yes'), - ], - ); - $courseformatoptionsedit['sectionzeroingrid'] = [ - 'label' => new lang_string('sectionzeroingrid', 'format_grid'), - 'help' => 'sectionzeroingrid', - 'help_component' => 'format_grid', - 'element_type' => 'select', - 'element_attributes' => [$sectionzeroingridvalues], - ]; - $showcompletionvalues = $this->generate_default_entry( 'showcompletion', 0, diff --git a/settings.php b/settings.php index 2b2276e9..8a05e425 100644 --- a/settings.php +++ b/settings.php @@ -133,17 +133,6 @@ $setting->set_updatedcallback('format_grid::update_displayed_images_callback'); $page->add($setting); - // Section zero in grid. - $name = 'format_grid/defaultsectionzeroingrid'; - $title = get_string('defaultsectionzeroingrid', 'format_grid'); - $description = get_string('defaultsectionzeroingrid_desc', 'format_grid'); - $default = 1; - $choices = [ - 1 => new lang_string('no'), - 2 => new lang_string('yes'), - ]; - $page->add(new admin_setting_configselect($name, $title, $description, $default, $choices)); - // Completion. $name = 'format_grid/defaultshowcompletion'; $title = get_string('defaultshowcompletion', 'format_grid');