MDL-14493 First checkin of Feedback module into HEAD.
[moodle.git] / mod / feedback / item / textfield / 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_textfield extends feedback_item_base {
6     var $type = "textfield";
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('textfield', '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('textfield_size', 'feedback');?></td>
31                 <td>
32                     <select name="itemsize">
33     <?php
34                         //Dropdown-Items fuer die Textfeldbreite
35                         $sizeAndLength = explode('|',$item->presentation);
36                         $selected = '';
37                         feedback_print_numeric_option_list(5, 50, ($sizeAndLength[0])?$sizeAndLength[0]:40, 5);
38     ?>
39                     </select>
40                 </td>
41             </tr>
42             <tr>
43                 <td><?php print_string('textfield_maxlength', 'feedback');?></td>
44                 <td>
45                     <select name="itemmaxlength">
46     <?php
47                         //Dropdown-Items fuer die Textlaenge
48                         feedback_print_numeric_option_list(5, 50, ($sizeAndLength[1])?$sizeAndLength[1]:40, 5);
49     ?>
50                     </select>
51                 </td>
52             </tr>
53         </table>
54     <?php
55     }
57     //liefert eine Struktur ->name, ->data = array(mit Antworten)
58     function get_analysed($item, $groupid = false, $courseid = false) {
59         $aVal = null;
60         $aVal->data = null;
61         $aVal->name = $item->name;
62         //$values = get_records('feedback_value', 'item', $item->id);
63         $values = feedback_get_group_values($item, $groupid, $courseid);
64         if($values) {
65             $data = array();
66             foreach($values as $value) {
67                 $data[] = str_replace("\n", '<br />', $value->value);
68             }
69             $aVal->data = $data;
70         }
71         return $aVal;
72     }
74     function get_printval($item, $value) {
75         
76         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 colspan="2" valign="top" align="left">-&nbsp;&nbsp;' . 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?$value:'&nbsp;';
132             // print_simple_box_end();
133             print_box_end();
134         }else {
135     ?>
136             <input type="text" name="<?php echo $item->typ . '_' . $item->id;?>"
137                                     size="<?php echo $presentation[0];?>"
138                                     maxlength="<?php echo $presentation[1];?>"
139                                     value="<?php echo $value?htmlspecialchars($value):'';?>" />
140     <?php
141         }
142     ?>
143         </td>
144     <?php
145     }
147     function check_value($value, $item) {
148         //if the item is not required, so the check is true if no value is given
149         if((!isset($value) OR $value == '') AND $item->required != 1) return true;
150         if($value == "")return false;
151         return true;
152     }
154     function create_value($data) {
155         $data = addslashes(clean_text($data));
156         return $data;
157     }
159     function get_presentation($data) {
160         return $data->itemsize . '|'. $data->itemmaxlength;
161     }
163     function get_hasvalue() {
164         return 1;
165     }
167 ?>