From 2aad1094b1d057cb30ca734aed53dcb44a317e5c Mon Sep 17 00:00:00 2001 From: Marina Glancy Date: Sat, 19 Mar 2016 20:20:08 +0800 Subject: [PATCH] MDL-29303 mod_feedback: allow any characters in labels --- mod/feedback/db/upgrade.php | 11 ++++++- mod/feedback/import.php | 4 +++ mod/feedback/item/captcha/lib.php | 31 +++++++++---------- .../item/feedback_item_form_class.php | 2 +- mod/feedback/item/info/lib.php | 22 ++++++++----- mod/feedback/item/label/label_form.php | 2 +- mod/feedback/item/label/lib.php | 2 +- mod/feedback/item/multichoice/lib.php | 18 ++++++++--- mod/feedback/item/multichoicerated/lib.php | 20 ++++++++---- mod/feedback/item/numeric/lib.php | 22 ++++++++----- mod/feedback/item/textarea/lib.php | 22 ++++++++----- mod/feedback/item/textfield/lib.php | 22 ++++++++----- mod/feedback/lib.php | 4 ++- mod/feedback/version.php | 2 +- 14 files changed, 122 insertions(+), 62 deletions(-) diff --git a/mod/feedback/db/upgrade.php b/mod/feedback/db/upgrade.php index 6733a3452d5..80a482f90e8 100644 --- a/mod/feedback/db/upgrade.php +++ b/mod/feedback/db/upgrade.php @@ -37,7 +37,7 @@ defined('MOODLE_INTERNAL') || die(); function xmldb_feedback_upgrade($oldversion) { - global $CFG; + global $CFG, $DB; // Moodle v2.8.0 release upgrade line. // Put any upgrade step following this. @@ -48,5 +48,14 @@ function xmldb_feedback_upgrade($oldversion) { // Moodle v3.0.0 release upgrade line. // Put any upgrade step following this. + if ($oldversion < 2016031600) { + // Remove labels from all 'captcha' and 'label' items. + $DB->execute('UPDATE {feedback_item} SET label = ? WHERE typ = ? OR typ = ?', + array('', 'captcha', 'label')); + + // Data savepoint reached. + upgrade_mod_savepoint(true, 2016031600, 'feedback'); + } + return true; } diff --git a/mod/feedback/import.php b/mod/feedback/import.php index 083ba2670a9..1339afd7a17 100644 --- a/mod/feedback/import.php +++ b/mod/feedback/import.php @@ -208,6 +208,10 @@ function feedback_import_loaded_data(&$data, $feedbackid) { $newitem->typ = $typ; $newitem->name = trim($item['#']['ITEMTEXT'][0]['#']); $newitem->label = trim($item['#']['ITEMLABEL'][0]['#']); + if ($typ === 'captcha' || $typ === 'label') { + $newitem->label = ''; + $newitem->name = ''; + } $newitem->options = trim($item['#']['OPTIONS'][0]['#']); $newitem->presentation = trim($item['#']['PRESENTATION'][0]['#']); //check old types of radio, check, and so on diff --git a/mod/feedback/item/captcha/lib.php b/mod/feedback/item/captcha/lib.php index 88847efd12d..66c24318e34 100644 --- a/mod/feedback/item/captcha/lib.php +++ b/mod/feedback/item/captcha/lib.php @@ -55,7 +55,7 @@ class feedback_item_captcha extends feedback_item_base { $this->item->feedback = $feedback->id; $this->item->template = 0; $this->item->name = get_string('captcha', 'feedback'); - $this->item->label = get_string('captcha', 'feedback'); + $this->item->label = ''; $this->item->presentation = ''; $this->item->typ = $this->type; $this->item->hasvalue = $this->get_hasvalue(); @@ -139,8 +139,10 @@ class feedback_item_captcha extends feedback_item_base { //print the question and label echo '
'; - echo '('.$item->label.') '; - echo format_text($item->name.$requiredmark, true, false, false); + if (strval($item->label) !== '') { + echo '('. format_string($item->label).') '; + } + echo format_text($item->name . $requiredmark, FORMAT_HTML, array('noclean' => true, 'para' => false)); echo '
'; } @@ -192,8 +194,10 @@ class feedback_item_captcha extends feedback_item_base { //print the question and label echo '
'; - echo '('.$item->label.') '; - echo format_text($item->name.$requiredmark, true, false, false); + if (strval($item->label) !== '') { + echo '('. format_string($item->label).') '; + } + echo format_text($item->name . $requiredmark, FORMAT_HTML, array('noclean' => true, 'para' => false)); $inputname = 'name="'.$item->typ.'_'.$item->id.'"'; echo ''; echo '
'; @@ -259,26 +263,19 @@ class feedback_item_captcha extends feedback_item_base { * @return void */ public function print_item_show_value($item, $value = '') { - global $DB; + global $OUTPUT; $align = right_to_left() ? 'right' : 'left'; - $cmid = 0; - $feedbackid = $item->feedback; - if ($feedbackid > 0) { - $feedback = $DB->get_record('feedback', array('id'=>$feedbackid)); - if ($cm = get_coursemodule_from_instance("feedback", $feedback->id, $feedback->course)) { - $cmid = $cm->id; - } - } - $requiredmark = ''.
             get_string('requiredelement', 'form').''; //print the question and label echo '
'; - echo '('.$item->label.') '; - echo format_text($item->name.$requiredmark, true, false, false); + if (strval($item->label) !== '') { + echo '('. format_string($item->label).') '; + } + echo format_text($item->name . $requiredmark, FORMAT_HTML, array('noclean' => true, 'para' => false)); echo '
'; } diff --git a/mod/feedback/item/feedback_item_form_class.php b/mod/feedback/item/feedback_item_form_class.php index e44ec33362a..f9b16d8fd13 100644 --- a/mod/feedback/item/feedback_item_form_class.php +++ b/mod/feedback/item/feedback_item_form_class.php @@ -76,7 +76,7 @@ abstract class feedback_item_form extends moodleform { $mform->setType('template', PARAM_INT); $mform->setType('name', PARAM_RAW); - $mform->setType('label', PARAM_ALPHANUM); + $mform->setType('label', PARAM_NOTAGS); $mform->addElement('hidden', 'typ', $this->type); $mform->setType('typ', PARAM_ALPHA); diff --git a/mod/feedback/item/info/lib.php b/mod/feedback/item/info/lib.php index de56497abd1..2e2e24d8a03 100644 --- a/mod/feedback/item/info/lib.php +++ b/mod/feedback/item/info/lib.php @@ -150,7 +150,11 @@ class feedback_item_info extends feedback_item_base { $data = $analysed_item->data; if (is_array($data)) { echo ''; - echo $itemnr.' ('.$item->label.') '.$item->name; + echo $itemnr . ' '; + if (strval($item->label) !== '') { + echo '('. format_string($item->label).') '; + } + echo format_text($item->name, FORMAT_HTML, array('noclean' => true, 'para' => false)); echo ''; $sizeofdata = count($data); for ($i = 0; $i < $sizeofdata; $i++) { @@ -241,12 +245,14 @@ class feedback_item_info extends feedback_item_base { //print the question and label echo '
'; - echo '('.$item->label.') '; - echo format_text($item->name.$requiredmark, true, false, false); + if (strval($item->label) !== '') { + echo '('. format_string($item->label).') '; + } + echo format_text($item->name . $requiredmark, FORMAT_HTML, array('noclean' => true, 'para' => false)); if ($item->dependitem) { if ($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) { echo ' '; } } @@ -330,7 +336,7 @@ class feedback_item_info extends feedback_item_base { //print the question and label echo ''; @@ -363,8 +369,10 @@ class feedback_item_info extends feedback_item_base { //print the question and label echo ''; //print the presentation diff --git a/mod/feedback/item/label/label_form.php b/mod/feedback/item/label/label_form.php index b015cd15555..35099081b92 100644 --- a/mod/feedback/item/label/label_form.php +++ b/mod/feedback/item/label/label_form.php @@ -35,7 +35,7 @@ class feedback_label_form extends feedback_item_form { $mform->setType('required', PARAM_INT); $mform->addElement('hidden', 'name', 'label'); $mform->setType('template', PARAM_ALPHA); - $mform->addElement('hidden', 'label', '-'); + $mform->addElement('hidden', 'label', ''); $mform->setType('label', PARAM_ALPHA); $mform->addElement('header', 'general', get_string($this->type, 'feedback')); diff --git a/mod/feedback/item/label/lib.php b/mod/feedback/item/label/lib.php index 6b6d4493743..d4ca8e078d6 100644 --- a/mod/feedback/item/label/lib.php +++ b/mod/feedback/item/label/lib.php @@ -184,7 +184,7 @@ class feedback_item_label extends feedback_item_base { if ($item->dependitem) { if ($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) { echo ' '; } } diff --git a/mod/feedback/item/multichoice/lib.php b/mod/feedback/item/multichoice/lib.php index c8df4aa2460..5835b9b4ba2 100644 --- a/mod/feedback/item/multichoice/lib.php +++ b/mod/feedback/item/multichoice/lib.php @@ -231,7 +231,11 @@ class feedback_item_multichoice extends feedback_item_base { if ($analysed_item) { $itemname = $analysed_item[1]; echo ''; - echo $itemnr.' ('.$item->label.') '.$itemname; + echo $itemnr . ' '; + if (strval($item->label) !== '') { + echo '('. format_string($item->label).') '; + } + echo $itemname; echo ''; $analysed_vals = $analysed_item[2]; @@ -320,12 +324,14 @@ class feedback_item_multichoice extends feedback_item_base { if ($info->subtype == 'd') { echo '