From ff5d6f88722f5a01fd6c2423d24eb1e3201e0f8c Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Tue, 12 Jun 2012 17:46:47 +0100 Subject: [PATCH] MDL-33682 backup: cope with sections called '0' It was not previously possible to have a section called 0 because of bugs in the standard course formats, but we hit this with the OU course format. You got an exception because backup settings tested to see if their lable was empty, which means a section name of '0' was fatal. Should work now. --- backup/backup.php | 2 +- backup/moodle2/restore_stepslib.php | 2 +- backup/util/factories/backup_factory.class.php | 2 +- backup/util/ui/backup_ui_setting.class.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backup/backup.php b/backup/backup.php index d088cadfd0f..ef0a897590c 100644 --- a/backup/backup.php +++ b/backup/backup.php @@ -62,7 +62,7 @@ switch ($type) { case backup::TYPE_1SECTION : $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); require_capability('moodle/backup:backupsection', $coursecontext); - if (!empty($section->name)) { + if ((string)$section->name !== '') { $sectionname = format_string($section->name, true, array('context' => $coursecontext)); $heading = get_string('backupsection', 'backup', $sectionname); $PAGE->navbar->add($sectionname); diff --git a/backup/moodle2/restore_stepslib.php b/backup/moodle2/restore_stepslib.php index 9ee8f5ac171..60a4086d6c8 100644 --- a/backup/moodle2/restore_stepslib.php +++ b/backup/moodle2/restore_stepslib.php @@ -1083,7 +1083,7 @@ class restore_section_structure_step extends restore_structure_step { // Section exists, update non-empty information } else { $section->id = $secrec->id; - if (empty($secrec->name)) { + if ((string)$secrec->name === '') { $section->name = $data->name; } if (empty($secrec->summary)) { diff --git a/backup/util/factories/backup_factory.class.php b/backup/util/factories/backup_factory.class.php index a24905c51c8..e58650d87a1 100644 --- a/backup/util/factories/backup_factory.class.php +++ b/backup/util/factories/backup_factory.class.php @@ -139,7 +139,7 @@ abstract class backup_factory { throw new backup_task_exception('section_task_section_not_found', $sectionid); } - return new backup_section_task(empty($section->name) ? $section->section : $section->name, $sectionid); + return new backup_section_task((string)$section->name !== '' ? $section->section : $section->name, $sectionid); } /** diff --git a/backup/util/ui/backup_ui_setting.class.php b/backup/util/ui/backup_ui_setting.class.php index 3db20a109e0..c18d46338cf 100644 --- a/backup/util/ui/backup_ui_setting.class.php +++ b/backup/util/ui/backup_ui_setting.class.php @@ -129,7 +129,7 @@ class base_setting_ui { * @param string $label */ public function set_label($label) { - if (empty($label) || $label !== clean_param($label, PARAM_TEXT)) { + if ((string)$label === '' || $label !== clean_param($label, PARAM_TEXT)) { throw new base_setting_ui_exception('setting_invalid_ui_label'); } $this->label = $label;