From 9d5fbd65547a44a635d80d30261e324d26afa172 Mon Sep 17 00:00:00 2001 From: Andreas Grabs Date: Wed, 21 Apr 2010 11:48:49 +0000 Subject: [PATCH] the function feedback_print_item() now is splitted into 3 functions feedback_print_item_preview() feedback_print_item_complete() feedback_print_item_show_value() Now there is more control over the output --- mod/feedback/complete.php | 2 +- mod/feedback/complete_guest.php | 2 +- mod/feedback/edit.php | 2 +- mod/feedback/item/captcha/lib.php | 142 +++++++++-- mod/feedback/item/info/lib.php | 96 +++++++- mod/feedback/item/label/lib.php | 41 +++- mod/feedback/item/multichoice/lib.php | 269 +++++++++++++++------ mod/feedback/item/multichoicerated/lib.php | 130 +++++++--- mod/feedback/item/numeric/lib.php | 140 ++++++++--- mod/feedback/item/textarea/lib.php | 87 +++++-- mod/feedback/item/textfield/lib.php | 90 +++++-- mod/feedback/lib.php | 59 ++++- mod/feedback/print.php | 2 +- mod/feedback/show_entries.php | 4 +- mod/feedback/show_entries_anonym.php | 2 +- mod/feedback/use_templ.php | 2 +- 16 files changed, 855 insertions(+), 215 deletions(-) diff --git a/mod/feedback/complete.php b/mod/feedback/complete.php index 30fc7b8b298..cba3aa3be36 100644 --- a/mod/feedback/complete.php +++ b/mod/feedback/complete.php @@ -392,7 +392,7 @@ if($feedback_can_submit) { echo ' '; } if($feedbackitem->typ != 'pagebreak') { - feedback_print_item($feedbackitem, $value, false, false, $highlightrequired); + feedback_print_item_complete($feedbackitem, $value, $highlightrequired); } echo ''; echo ' '; diff --git a/mod/feedback/complete_guest.php b/mod/feedback/complete_guest.php index 01352c45d76..978ce3b2b49 100644 --- a/mod/feedback/complete_guest.php +++ b/mod/feedback/complete_guest.php @@ -350,7 +350,7 @@ if($feedback_can_submit) { echo ' '; } if($feedbackitem->typ != 'pagebreak') { - feedback_print_item($feedbackitem, $value, false, false, $highlightrequired); + feedback_print_item_complete($feedbackitem, $value, $highlightrequired); } echo ''; echo ' '; diff --git a/mod/feedback/edit.php b/mod/feedback/edit.php index 56f39e9d4c4..51c16321c4e 100644 --- a/mod/feedback/edit.php +++ b/mod/feedback/edit.php @@ -265,7 +265,7 @@ if($do_show == 'edit') { echo ' '; } if($feedbackitem->typ != 'pagebreak') { - feedback_print_item($feedbackitem, false, false, true); + feedback_print_item_preview($feedbackitem); }else { echo ''.get_string('pagebreak', 'feedback').'
'; } diff --git a/mod/feedback/item/captcha/lib.php b/mod/feedback/item/captcha/lib.php index 598a224d7ce..ef2f299e3d0 100644 --- a/mod/feedback/item/captcha/lib.php +++ b/mod/feedback/item/captcha/lib.php @@ -57,8 +57,15 @@ class feedback_item_captcha extends feedback_item_base { function excelprint_item(&$worksheet, $rowOffset, $item, $groupid, $courseid = false) { return $rowOffset; } - - function print_item($item, $value = false, $readonly = false, $edit = false, $highlightrequire = false){ + + /** + * print the item at the edit-page of feedback + * + * @global object + * @param object $item + * @return void + */ + function print_item_preview($item) { global $SESSION, $CFG, $DB, $OUTPUT; $align = right_to_left() ? 'right' : 'left'; @@ -67,13 +74,65 @@ class feedback_item_captcha extends feedback_item_base { $SESSION->feedback->item->captcha->charcount = $presentation; $cmid = 0; - if(!$readonly) { - $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; - } + $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; + } + } + + if(isset($SESSION->feedback->item->captcha->checked)) { + $checked = $SESSION->feedback->item->captcha->checked == true; + unset($SESSION->feedback->item->captcha->checked); + }else { + $checked = false; + } + + $requiredmark = ($item->required == 1)?'*':''; + ?> + + label.') '; + echo format_text($item->name . $requiredmark, true, false, false); + $imglink = new moodle_url('/mod/feedback/item/captcha/print_captcha.php', array('id'=>$cmid)); + ?> + <?php echo $this->type;?> + + + + + + presentation; + $SESSION->feedback->item->captcha->charcount = $presentation; + + $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; } } @@ -85,7 +144,7 @@ class feedback_item_captcha extends feedback_item_base { } //check if an false value even the value is not required - if(!$readonly AND !$item->required AND $value != '' AND $SESSION->feedback->item->captcha->checkchar != $value) { + if(!$item->required AND $value != '' AND $SESSION->feedback->item->captcha->checkchar != $value) { $falsevalue = true; }else { $falsevalue = false; @@ -97,36 +156,69 @@ class feedback_item_captcha extends feedback_item_base { $highlight = ''; } $requiredmark = ($item->required == 1)?'*':''; - ?> + ?> valign="top" align=""> label.') '; - } echo format_text($item->name . $requiredmark, true, false, false); $imglink = new moodle_url('/mod/feedback/item/captcha/print_captcha.php', array('id'=>$cmid)); ?> <?php echo $this->type;?> - box_start('generalbox boxalign'.$align); - echo $value ? $value : ' '; - echo $OUTPUT->box_end(); - }else { - ?> - - presentation; + $SESSION->feedback->item->captcha->charcount = $presentation; + + $cmid = 0; + + if(isset($SESSION->feedback->item->captcha->checked)) { + $checked = $SESSION->feedback->item->captcha->checked == true; + unset($SESSION->feedback->item->captcha->checked); + }else { + $checked = false; + } + + $requiredmark = ($item->required == 1)?'*':''; + ?> + + label.') '; + echo format_text($item->name . $requiredmark, true, false, false); + $imglink = new moodle_url('/mod/feedback/item/captcha/print_captcha.php', array('id'=>$cmid)); + ?> + <?php echo $this->type;?> + + + box_start('generalbox boxalign'.$align); + echo $value ? $value : ' '; + echo $OUTPUT->box_end(); + ?> + + presentation; + $requiredmark = ($item->required == 1)?'*':''; + ?> + + label.') '; + echo format_text($item->name . $requiredmark, true, false, false); + ?> + + + get_record('feedback', array('id'=>$item->feedback)); + $course = $DB->get_record('course', array('id'=>$feedback->course)); + $coursecategory = $DB->get_record('course_categories', array('id'=>$course->category)); + switch($presentation) { + case 1: + $itemvalue = time(); + $itemshowvalue = UserDate($itemvalue); + break; + case 2: + $itemvalue = $course->shortname; + $itemshowvalue = $itemvalue; + break; + case 3: + $itemvalue = $coursecategory->name; + $itemshowvalue = $itemvalue; + break; + } + ?> + + + + valign="top" align=""> label.') '; - } echo format_text($item->name . $requiredmark, true, false, false); ?> box_start('generalbox boxalign'.$align); - echo $value ? UserDate($value):' '; - echo $OUTPUT->box_end(); - }else { $feedback = $DB->get_record('feedback', array('id'=>$item->feedback)); $course = $DB->get_record('course', array('id'=>$feedback->course)); $coursecategory = $DB->get_record('course_categories', array('id'=>$course->category)); @@ -152,8 +200,36 @@ class feedback_item_info extends feedback_item_base { + presentation; + $requiredmark = ($item->required == 1)?'*':''; + ?> + + label.') '; + echo format_text($item->name . $requiredmark, true, false, false); + ?> + + + box_start('generalbox boxalign'.$align); + echo $value ? UserDate($value):' '; + echo $OUTPUT->box_end(); ?> - - presentation, FORMAT_HTML);?> - - print_item($item); + } + + /** + * print the item at the complete-page of feedback + * + * @global object + * @param object $item + * @param string $value + * @param bool $highlightrequire + * @return void + */ + function print_item_complete($item, $value = '', $highlightrequire = false) { + $this->print_item($item); + } + + /** + * print the item at the complete-page of feedback + * + * @global object + * @param object $item + * @param string $value + * @return void + */ + function print_item_show_value($item, $value = '') { + $this->print_item($item); } function create_value($data) { diff --git a/mod/feedback/item/multichoice/lib.php b/mod/feedback/item/multichoice/lib.php index 5d1c86ef1b3..9ea4ccf9b1e 100644 --- a/mod/feedback/item/multichoice/lib.php +++ b/mod/feedback/item/multichoice/lib.php @@ -194,8 +194,101 @@ class feedback_item_multichoice extends feedback_item_base { $rowOffset +=3 ; return $rowOffset; } + + /** + * print the item at the edit-page of feedback + * + * @global object + * @param object $item + * @return void + */ + function print_item_preview($item) { + global $OUTPUT; + $info = $this->get_info($item); + $align = right_to_left() ? 'right' : 'left'; - function print_item($item, $value = false, $readonly = false, $edit = false, $highlightrequire = false){ + $presentation = explode (FEEDBACK_MULTICHOICE_LINE_SEP, $info->presentation); + + + //test if required and no value is set so we have to mark this item + //we have to differ check and the other subtypes + if($info->subtype == 'c') { + $requiredmark = ($item->required == 1)?'*':''; + + echo ''; + echo '('.$item->label.') '; + echo format_text($item->name.$requiredmark, true, false, false).''; + echo ''; + }else { + $requiredmark = ($item->required == 1)?'*':''; + ?> + + label.') '; + echo format_text($item->name . $requiredmark, true, false, false); + ?> + + + subtype == 'r') { + ?> + + + +
+ + + +
+ subtype != 'd') { + if($info->horizontal) { + echo ''; + } + } + + switch($info->subtype) { + case 'r': + $this->print_item_radio($presentation, $item, false, $info, $align); + break; + case 'c': + $this->print_item_check($presentation, $item, false, $info, $align); + break; + case 'd': + $this->print_item_dropdown($presentation, $item, false, $info, $align); + break; + } + + if($info->subtype != 'd') { + if($info->horizontal) { + echo '
'; + } + } + /* + if($item->required == 1) { + echo ''; + } + */ + ?> + + get_info($item); $align = right_to_left() ? 'right' : 'left'; @@ -219,9 +312,6 @@ class feedback_item_multichoice extends feedback_item_base { $requiredmark = ($item->required == 1)?'*':''; echo ''; - if($edit OR $readonly) { - echo '('.$item->label.') '; - } echo format_text($item->name.$requiredmark, true, false, false).''; echo ''; }else { @@ -234,9 +324,6 @@ class feedback_item_multichoice extends feedback_item_base { ?> valign="top" align=""> label.') '; - } echo format_text($item->name . $requiredmark, true, false, false); ?> @@ -245,74 +332,120 @@ class feedback_item_multichoice extends feedback_item_base { } $index = 1; $checked = ''; - if($readonly){ - if($info->subtype == 'c') { - echo $OUTPUT->box_start('generalbox boxalign'.$align); - foreach($presentation as $pres){ - foreach($values as $val) { - if($val == $index){ - echo text_to_html($pres . '
', true, false, false); - break; - } - } - $index++; - } - echo $OUTPUT->box_end(); + //print the "not_selected" item on radiobuttons + if($info->subtype == 'r') { + ?> + + + +
/> + + +
+ subtype != 'd') { + if($info->horizontal) { + echo ''; + } + } + + switch($info->subtype) { + case 'r': + $this->print_item_radio($presentation, $item, $value, $info, $align); + break; + case 'c': + $this->print_item_check($presentation, $item, $value, $info, $align); + break; + case 'd': + $this->print_item_dropdown($presentation, $item, $value, $info, $align); + break; + } + + if($info->subtype != 'd') { + if($info->horizontal) { + echo '
'; + } + } + /* + if($item->required == 1) { + echo ''; + } + */ + ?> + + get_info($item); + $align = right_to_left() ? 'right' : 'left'; + + $presentation = explode (FEEDBACK_MULTICHOICE_LINE_SEP, $info->presentation); + + + //test if required and no value is set so we have to mark this item + //we have to differ check and the other subtypes + if($info->subtype == 'c') { + if (is_array($value)) { + $values = $value; }else { - foreach($presentation as $pres){ - if($value == $index){ - echo $OUTPUT->box_start('generalbox boxalign'.$align); - echo text_to_html($pres, true, false, false); - echo $OUTPUT->box_end(); + $values = explode(FEEDBACK_MULTICHOICE_LINE_SEP, $value); + } + $requiredmark = ($item->required == 1)?'*':''; + + echo ''; + echo '('.$item->label.') '; + echo format_text($item->name.$requiredmark, true, false, false).''; + echo ''; + }else { + $requiredmark = ($item->required == 1)?'*':''; + ?> + + label.') '; + echo format_text($item->name . $requiredmark, true, false, false); + ?> + + + subtype == 'c') { + echo $OUTPUT->box_start('generalbox boxalign'.$align); + foreach($presentation as $pres){ + foreach($values as $val) { + if($val == $index){ + echo text_to_html($pres . '
', true, false, false); break; } - $index++; } + $index++; } - } else { - //print the "not_selected" item on radiobuttons - if($info->subtype == 'r') { - ?> - - - -
/> - - -
- subtype != 'd') { - if($info->horizontal) { - echo ''; + echo $OUTPUT->box_end(); + }else { + foreach($presentation as $pres){ + if($value == $index){ + echo $OUTPUT->box_start('generalbox boxalign'.$align); + echo text_to_html($pres, true, false, false); + echo $OUTPUT->box_end(); + break; } + $index++; } - - switch($info->subtype) { - case 'r': - $this->print_item_radio($presentation, $item, $value, $info, $align); - break; - case 'c': - $this->print_item_check($presentation, $item, $value, $info, $align); - break; - case 'd': - $this->print_item_dropdown($presentation, $item, $value, $info, $align); - break; - } - - if($info->subtype != 'd') { - if($info->horizontal) { - echo '
'; - } - } - /* - if($item->required == 1) { - echo ''; - } - */ } ?> diff --git a/mod/feedback/item/multichoicerated/lib.php b/mod/feedback/item/multichoicerated/lib.php index e7d75c2eb6a..0cfc35d48aa 100644 --- a/mod/feedback/item/multichoicerated/lib.php +++ b/mod/feedback/item/multichoicerated/lib.php @@ -184,8 +184,55 @@ class feedback_item_multichoicerated extends feedback_item_base { $rowOffset +=2 ; return $rowOffset; } + + /** + * print the item at the edit-page of feedback + * + * @global object + * @param object $item + * @return void + */ + function print_item_preview($item) { + global $OUTPUT; + $align = right_to_left() ? 'right' : 'left'; + $info = $this->get_info($item); - function print_item($item, $value = false, $readonly = false, $edit = false, $highlightrequire = false){ + $lines = explode (FEEDBACK_MULTICHOICERATED_LINE_SEP, $info->presentation); + $requiredmark = ($item->required == 1)?'*':''; + ?> + + label.') '; + echo format_text($item->name . $requiredmark, true, false, false); + ?> + + + subtype) { + case 'r': + $this->print_item_radio($item, false, $info, $align, true, $lines); + break; + case 'd': + $this->print_item_dropdown($item, false, $info, $align, true, $lines); + break; + } + ?> + + get_info($item); @@ -197,12 +244,48 @@ class feedback_item_multichoicerated extends feedback_item_base { }else { $highlight = ''; } - ?> + ?> valign="top" align=""> label.') '; - } + echo format_text($item->name . $requiredmark, true, false, false); + ?> + + + subtype) { + case 'r': + $this->print_item_radio($item, $value, $info, $align, false, $lines); + break; + case 'd': + $this->print_item_dropdown($item, $value, $info, $align, false, $lines); + break; + } + ?> + + get_info($item); + + $lines = explode (FEEDBACK_MULTICHOICERATED_LINE_SEP, $info->presentation); + $requiredmark = ($item->required == 1)?'*':''; + ?> + + label.') '; echo format_text($item->name . $requiredmark, true, false, false); ?> @@ -210,26 +293,15 @@ class feedback_item_multichoicerated extends feedback_item_base { box_start('generalbox boxalign'.$align); - echo text_to_html($item_value[1], true, false, false); - echo $OUTPUT->box_end(); - break; - } - $index++; - } - } else { - switch($info->subtype) { - case 'r': - $this->print_item_radio($item, $value, $info, $align, $edit, $lines); - break; - case 'd': - $this->print_item_dropdown($item, $value, $info, $align, $edit, $lines); - break; + foreach($lines as $line){ + if($value == $index){ + $item_value = explode(FEEDBACK_MULTICHOICERATED_VALUE_SEP, $line); + echo $OUTPUT->box_start('generalbox boxalign'.$align); + echo text_to_html($item_value[1], true, false, false); + echo $OUTPUT->box_end(); + break; } + $index++; } ?> @@ -294,7 +366,7 @@ class feedback_item_multichoicerated extends feedback_item_base { return $info; } - function print_item_radio($item, $value, $info, $align, $edit, $lines) { + function print_item_radio($item, $value, $info, $align, $showrating, $lines) { $index = 1; $checked = ''; ?> @@ -328,7 +400,7 @@ class feedback_item_multichoicerated extends feedback_item_base { id="" value="" />