From 73cf11b0437dced3cb949abdb1effb24bb5b7f56 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Tue, 23 Jul 2013 17:01:27 +0800 Subject: [PATCH] Only call definition_after_data when we are editing an element so that we know data exists --- edit_element.php | 2 +- edit_element_form.php | 5 ++++- element/date/lib.php | 14 +++----------- element/grade/lib.php | 14 +++----------- element/image/lib.php | 19 ++++--------------- element/text/lib.php | 2 +- element/userfield/lib.php | 2 +- 7 files changed, 17 insertions(+), 41 deletions(-) diff --git a/edit_element.php b/edit_element.php index d446693..cffb1e5 100644 --- a/edit_element.php +++ b/edit_element.php @@ -62,7 +62,7 @@ $PAGE->set_heading($course->fullname); $PAGE->set_title(get_string('editcustomcert', 'customcert', format_string($customcert->name))); $PAGE->set_url($pageurl); -$mform = new mod_customcert_edit_element_form($pageurl, array('element' => $element, 'cmid' => $cmid)); +$mform = new mod_customcert_edit_element_form($pageurl, array('element' => $element, 'cmid' => $cmid, 'action' => $action)); // Check if they cancelled. if ($mform->is_cancelled()) { diff --git a/edit_element_form.php b/edit_element_form.php index 84d7f2a..442867f 100644 --- a/edit_element_form.php +++ b/edit_element_form.php @@ -61,7 +61,10 @@ class mod_customcert_edit_element_form extends moodleform { * Fill in the current page data for this customcert. */ public function definition_after_data() { - $this->element->definition_after_data($this->_form); + // We only want to call definition_after_data if we are editing an element. + if ($this->_customdata['action'] == 'edit') { + $this->element->definition_after_data($this->_form); + } } /** diff --git a/element/date/lib.php b/element/date/lib.php index 3675b89..7572163 100644 --- a/element/date/lib.php +++ b/element/date/lib.php @@ -154,17 +154,9 @@ class customcert_element_date extends customcert_element_base { */ public function definition_after_data($mform) { // Set the item and format for this element. - $dateitem = ''; - $dateformat = ''; - - if (!empty($this->element->data)) { - $dateinfo = json_decode($this->element->data); - $dateitem = $dateinfo->dateitem; - $dateformat = $dateinfo->dateformat; - } - - $this->element->dateitem = $dateitem; - $this->element->dateformat = $dateformat; + $dateinfo = json_decode($this->element->data); + $this->element->dateitem = $dateinfo->dateitem; + $this->element->dateformat = $dateinfo->dateformat; parent::definition_after_data($mform); } diff --git a/element/grade/lib.php b/element/grade/lib.php index a1db7ed..dc354a9 100644 --- a/element/grade/lib.php +++ b/element/grade/lib.php @@ -106,17 +106,9 @@ class customcert_element_grade extends customcert_element_base { */ public function definition_after_data($mform) { // Set the item and format for this element. - $gradeitem = ''; - $gradeformat = ''; - - if (!empty($this->element->data)) { - $gradeinfo = json_decode($this->element->data); - $gradeitem = $gradeinfo->gradeitem; - $gradeformat = $gradeinfo->gradeformat; - } - - $this->element->gradeitem = $gradeitem; - $this->element->gradeformat = $gradeformat; + $gradeinfo = json_decode($this->element->data); + $this->element->gradeitem = $gradeinfo->gradeitem; + $this->element->gradeformat = $gradeinfo->gradeformat; parent::definition_after_data($mform); } diff --git a/element/image/lib.php b/element/image/lib.php index 965a7e1..9b1d7d9 100644 --- a/element/image/lib.php +++ b/element/image/lib.php @@ -125,21 +125,10 @@ class customcert_element_image extends customcert_element_base { */ public function definition_after_data($mform) { // Set the image, width and height for this element. - $image = ''; - $width = '0'; - $height = '0'; - - // Check if there is any data for this element. - if (!empty($this->element->data)) { - $imageinfo = json_decode($this->element->data); - $image = $imageinfo->pathnamehash; - $width = $imageinfo->width; - $height = $imageinfo->height; - } - - $this->element->image = $image; - $this->element->width = $width; - $this->element->height = $height; + $imageinfo = json_decode($this->element->data); + $this->element->image = $imageinfo->pathnamehash; + $this->element->width = $imageinfo->width; + $this->element->height = $imageinfo->height; parent::definition_after_data($mform); } diff --git a/element/text/lib.php b/element/text/lib.php index 8020900..3c707ce 100644 --- a/element/text/lib.php +++ b/element/text/lib.php @@ -67,7 +67,7 @@ class customcert_element_text extends customcert_element_base { * @param mod_customcert_edit_element_form $mform the edit_form instance */ public function definition_after_data($mform) { - $this->element->text = (!empty($this->element->data)) ? $this->element->data : ''; + $this->element->text = $this->element->data; parent::definition_after_data($mform); } } diff --git a/element/userfield/lib.php b/element/userfield/lib.php index c64f18a..3eb577b 100644 --- a/element/userfield/lib.php +++ b/element/userfield/lib.php @@ -87,7 +87,7 @@ class customcert_element_userfield extends customcert_element_base { * @param mod_customcert_edit_element_form $mform the edit_form instance */ public function definition_after_data($mform) { - $this->element->userfield = (!empty($this->element->data)) ? $this->element->data : ''; + $this->element->userfield = $this->element->data; parent::definition_after_data($mform); } }