From 9413d65ee0293e0db2eafaea9dd04c0916750b90 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Thu, 10 Dec 2015 15:26:49 +0800 Subject: [PATCH] Fixed issue when creating an image element The images were not loading in the filemanager. This meant that when the element was saved the images would be deleted for that course, affecting existing image elements as well. --- edit_element_form.php | 5 +---- element/border/lib.php | 4 +++- element/date/lib.php | 8 +++++--- element/grade/lib.php | 8 +++++--- element/gradeitemname/lib.php | 4 +++- element/image/lib.php | 10 ++++++---- element/teachername/lib.php | 4 +++- element/text/lib.php | 4 +++- element/userfield/lib.php | 4 +++- 9 files changed, 32 insertions(+), 19 deletions(-) diff --git a/edit_element_form.php b/edit_element_form.php index 5924802..aa49626 100644 --- a/edit_element_form.php +++ b/edit_element_form.php @@ -62,10 +62,7 @@ class mod_customcert_edit_element_form extends moodleform { * Fill in the current page data for this customcert. */ public function definition_after_data() { - // 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); - } + $this->element->definition_after_data($this->_form); } /** diff --git a/element/border/lib.php b/element/border/lib.php index 718413e..057035d 100644 --- a/element/border/lib.php +++ b/element/border/lib.php @@ -95,7 +95,9 @@ class customcert_element_border extends customcert_element_base { * @param mod_customcert_edit_element_form $mform the edit_form instance */ public function definition_after_data($mform) { - $this->element->width = $this->element->data; + if (!empty($this->element->data)) { + $this->element->width = $this->element->data; + } parent::definition_after_data($mform); } diff --git a/element/date/lib.php b/element/date/lib.php index 23b7523..046fa47 100644 --- a/element/date/lib.php +++ b/element/date/lib.php @@ -160,9 +160,11 @@ class customcert_element_date extends customcert_element_base { */ public function definition_after_data($mform) { // Set the item and format for this element. - $dateinfo = json_decode($this->element->data); - $this->element->dateitem = $dateinfo->dateitem; - $this->element->dateformat = $dateinfo->dateformat; + if (!empty($this->element->data)) { + $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 2be5ec7..137b138 100644 --- a/element/grade/lib.php +++ b/element/grade/lib.php @@ -141,9 +141,11 @@ class customcert_element_grade extends customcert_element_base { */ public function definition_after_data($mform) { // Set the item and format for this element. - $gradeinfo = json_decode($this->element->data); - $this->element->gradeitem = $gradeinfo->gradeitem; - $this->element->gradeformat = $gradeinfo->gradeformat; + if (!empty($this->element->data)) { + $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/gradeitemname/lib.php b/element/gradeitemname/lib.php index 46dfe5b..d973950 100644 --- a/element/gradeitemname/lib.php +++ b/element/gradeitemname/lib.php @@ -106,7 +106,9 @@ class customcert_element_gradeitemname extends customcert_element_base { * @param mod_customcert_edit_element_form $mform the edit_form instance */ public function definition_after_data($mform) { - $this->element->gradeitem = $this->element->data; + if (!empty($this->element->data)) { + $this->element->gradeitem = $this->element->data; + } parent::definition_after_data($mform); } } diff --git a/element/image/lib.php b/element/image/lib.php index 111ff74..191883d 100644 --- a/element/image/lib.php +++ b/element/image/lib.php @@ -216,10 +216,12 @@ class customcert_element_image extends customcert_element_base { global $COURSE; // Set the image, width and height for this element. - $imageinfo = json_decode($this->element->data); - $this->element->image = $imageinfo->pathnamehash; - $this->element->width = $imageinfo->width; - $this->element->height = $imageinfo->height; + if (!empty($this->element->data)) { + $imageinfo = json_decode($this->element->data); + $this->element->image = $imageinfo->pathnamehash; + $this->element->width = $imageinfo->width; + $this->element->height = $imageinfo->height; + } // Editing existing instance - copy existing files into draft area. $draftitemid = file_get_submitted_draft_itemid('customcertimage'); diff --git a/element/teachername/lib.php b/element/teachername/lib.php index f16e770..ea6aa05 100644 --- a/element/teachername/lib.php +++ b/element/teachername/lib.php @@ -109,7 +109,9 @@ class customcert_element_teachername extends customcert_element_base { * @param mod_customcert_edit_element_form $mform the edit_form instance */ public function definition_after_data($mform) { - $this->element->teacher = $this->element->data; + if (!empty($this->element->data)) { + $this->element->teacher = $this->element->data; + } parent::definition_after_data($mform); } } diff --git a/element/text/lib.php b/element/text/lib.php index bc6c5ff..97767e6 100644 --- a/element/text/lib.php +++ b/element/text/lib.php @@ -77,7 +77,9 @@ 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 = $this->element->data; + if (!empty($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 b2b637c..3d3ca99 100644 --- a/element/userfield/lib.php +++ b/element/userfield/lib.php @@ -136,7 +136,9 @@ 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 = $this->element->data; + if (!empty($this->element->data)) { + $this->element->userfield = $this->element->data; + } parent::definition_after_data($mform); } }