Skip to content

Commit

Permalink
Add 'sectionzeroingrid' course and 'defaultsectionzeroingrid' site se…
Browse files Browse the repository at this point in the history
…ttings to state if section zero should be in the grid.
  • Loading branch information
gjb2048 committed Aug 20, 2024
1 parent 01c6e8f commit e7fa41e
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 7 deletions.
1 change: 1 addition & 0 deletions Changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Version 402.2.4 - In development
3. Use section anchors in links when editing.
4. Add badges to grid - #215.
5. Adjust section titles in grid and move 'title' attribute to cover whole grid box.
6. Add 'sectionzeroingrid' course and 'defaultsectionzeroingrid' site settings to state if section zero should be in the grid.

Version 402.2.3 - 08/04/2024
----------------------------
Expand Down
19 changes: 12 additions & 7 deletions classes/output/courseformat/content.php
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,15 @@ 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) {
// Most formats uses section 0 as a separate section so we remove from the list.
$initialsection = array_shift($sections);
if (!$singlesection) {
if ((!$singlesectionid) && ($sectionzeronotingrid)) {
// Most formats uses section 0 as a separate section so we remove from the list.
$initialsection = array_shift($sections);
$data->initialsection = $initialsection;
}
}
Expand Down Expand Up @@ -124,7 +126,6 @@ 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)) {
Expand Down Expand Up @@ -336,9 +337,13 @@ protected function get_grid_sections(\renderer_base $output, $settings): array {
$sections = [];
$numsections = $format->get_last_section_number();
$sectioninfos = $modinfo->get_section_info_all();
// Get rid of section 0.
if (!empty($sectioninfos)) {
array_shift($sectioninfos);
$coursesettings = $format->get_settings();
$sectionzeronotingrid = ($coursesettings['sectionzeroingrid'] == 1);
if ($sectionzeronotingrid) {
// 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.
Expand Down
6 changes: 6 additions & 0 deletions lang/en/format_grid.php
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,12 @@
$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';
Expand Down
20 changes: 20 additions & 0 deletions lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,10 @@ public function course_format_options($foreditform = false) {
'default' => 0,
'type' => PARAM_INT,
],
'sectionzeroingrid' => [
'default' => 0,
'type' => PARAM_INT,
],
'showcompletion' => [
'default' => 0,
'type' => PARAM_INT,
Expand Down Expand Up @@ -536,6 +540,22 @@ 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,
Expand Down
11 changes: 11 additions & 0 deletions settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,17 @@
$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');
Expand Down

0 comments on commit e7fa41e

Please sign in to comment.