MDL-14493 First checkin of Feedback module into HEAD.
[moodle.git] / mod / feedback / item / textarea / lib.php
1 <?php  // $Id$
2 defined('FEEDBACK_INCLUDE_TEST') OR die('not allowed');
3 require_once($CFG->dirroot.'/mod/feedback/item/feedback_item_class.php');
5 class feedback_item_textarea extends feedback_item_base {
6     var $type = "textarea";
7     function init() {
8     
9     }
10     
11     function show_edit($item, $usehtmleditor = false) {
13         $item->presentation=empty($item->presentation)?'':$item->presentation;
15     ?>
16         <table>
17             <tr>
18                 <th colspan="2"><?php print_string('textarea', 'feedback');?>
19                     &nbsp;(<input type="checkbox" name="required" value="1" <?php 
20                 $item->required=isset($item->required)?$item->required:0;
21                 echo ($item->required == 1?'checked="checked"':'');
22                 ?> />&nbsp;<?php print_string('required', 'feedback');?>)
23                 </th>
24             </tr>
25             <tr>
26                 <td><?php print_string('item_name', 'feedback');?></td>
27                 <td><input type="text" id="itemname" name="itemname" size="40" maxlength="255" value="<?php echo isset($item->name)?htmlspecialchars(stripslashes_safe($item->name)):'';?>" /></td>
28             </tr>
29             <tr>
30                 <td><?php print_string('textarea_width', 'feedback');?></td>
31                 <td>
32                     <select name="itemwidth">
33     <?php
34                         //Dropdown-Items fuer die Textareabreite
35                         $widthAndHeight = explode('|',$item->presentation);
36                         feedback_print_numeric_option_list(5, 80, $widthAndHeight[0]?$widthAndHeight[0]:30, 5);
37     ?>
38                     </select>
39                 </td>
40             </tr>
41             <tr>
42                 <td><?php print_string('textarea_height', 'feedback');?></td>
43                 <td>
44                     <select name="itemheight">
45     <?php
46                         //Dropdown-Items fuer die Textareahoehe
47                         feedback_print_numeric_option_list(5, 40, $widthAndHeight[1], 5);
48     ?>
49                     </select>
50                 </td>
51             </tr>
52         </table>
53     <?php
54     }
56     //liefert eine Struktur ->name, ->data = array(mit Antworten)
57     function get_analysed($item, $groupid, $courseid = false) {
58         $aVal = null;
59         $aVal->data = array();
60         $aVal->name = $item->name;
61         //$values = get_records('feedback_value', 'item', $item->id);
62         $values = feedback_get_group_values($item, $groupid, $courseid);
63         if($values) {
64             $data = array();
65             foreach($values as $value) {
66                 $data[] = str_replace("\n", '<br />', $value->value);
67             }
68             $aVal->data = $data;
69         }
70         return $aVal;
71     }
73     function get_printval($item, $value) {
74         
75         if(!isset($value->value)) return '';
77         return $value->value;
78     }
80     function print_analysed($item, $itemnr = 0, $groupid = false, $courseid = false) {
81         $values = feedback_get_group_values($item, $groupid, $courseid);
82         if($values) {
83             //echo '<table>';2
84             $itemnr++;
85             echo '<tr><th colspan="2" align="left">'. $itemnr . '.)&nbsp;' . stripslashes_safe($item->name) .'</th></tr>';
86             foreach($values as $value) {
87                 echo '<tr><td valign="top" align="left">-&nbsp;&nbsp;</td><td align="left" valign="top">' . str_replace("\n", '<br />', $value->value) . '</td></tr>';
88             }
89             //echo '</table>';
90         }
91         return $itemnr;
92     }
94     function excelprint_item(&$worksheet, $rowOffset, $item, $groupid, $courseid = false) {
95         $analysed_item = $this->get_analysed($item, $groupid, $courseid);
97         $worksheet->setFormat("<l><f><ro2><vo><c:green>");
98         $worksheet->write_string($rowOffset, 0, stripslashes_safe($item->name));
99         $data = $analysed_item->data;
100         if(is_array($data)) {
101             $worksheet->setFormat("<l><ro2><vo>");
102             $worksheet->write_string($rowOffset, 1, $data[0]);
103             $rowOffset++;
104             for($i = 1; $i < sizeof($data); $i++) {
105                 $worksheet->setFormat("<l><vo>");
106                 $worksheet->write_string($rowOffset, 1, $data[$i]);
107                 $rowOffset++;
108             }
109         }
110         $rowOffset++;
111         return $rowOffset;
112     }
114     function print_item($item, $value = false, $readonly = false, $edit = false, $highlightrequire = false){
115         $align = get_string('thisdirection') == 'ltr' ? 'left' : 'right';
116         
117         $presentation = explode ("|", $item->presentation);
118         if($highlightrequire AND $item->required AND strval($value) == '') {
119             $highlight = 'bgcolor="#FFAAAA" class="missingrequire"';
120         }else {
121             $highlight = '';
122         }
123         $requiredmark =  ($item->required == 1)?'<span class="feedback_required_mark">*</span>':'';
124     ?>
125         <td <?php echo $highlight;?> valign="top" align="<?php echo $align;?>"><?php echo format_text(stripslashes_safe($item->name) . $requiredmark, true, false, false);?></td>
126         <td valign="top" align="<?php echo $align;?>">
127     <?php
128         if($readonly){
129             // print_simple_box_start($align);
130             print_box_start('generalbox boxalign'.$align);
131             echo $value?str_replace("\n",'<br />',$value):'&nbsp;';
132             // print_simple_box_end();
133             print_box_end();
134         }else {
135     ?>
136             <textarea name="<?php echo $item->typ . '_' . $item->id;?>"
137                         cols="<?php echo $presentation[0];?>"
138                         rows="<?php echo $presentation[1];?>"><?php echo $value?htmlspecialchars($value):'';?></textarea>
139     <?php
140         }
141     ?>
142         </td>
143     <?php
144     }
146     function check_value($value, $item) {
147         //if the item is not required, so the check is true if no value is given
148         if((!isset($value) OR $value == '') AND $item->required != 1) return true;
149         if($value == "")return false;
150         return true;
151     }
153     function create_value($data) {
154         $data = addslashes(clean_text($data));
155         return $data;
156     }
158     function get_presentation($data) {
159         return $data->itemwidth . '|'. $data->itemheight;
160     }
162     function get_hasvalue() {
163         return 1;
164     }
166 ?>