MDL-19489 - add conditional branching (my first try)

This commit is contained in:
Andreas Grabs 2010-05-16 20:05:51 +00:00
parent f53fde9f47
commit 73043833e9
29 changed files with 1597 additions and 1088 deletions

View file

@ -28,6 +28,22 @@ class feedback_captcha_form extends feedback_item_form {
////////////////////////////////////////////////////////////////////////
//the following is used in all itemforms
////////////////////////////////////////////////////////////////////////
//itemdepending
if($common['items']) {
$mform->addElement('select',
'dependitem',
get_string('dependitem', 'feedback').' ',
$common['items']
);
$mform->addHelpButton('dependitem', 'depending', 'feedback');
$mform->addElement('text', 'dependvalue', get_string('dependvalue', 'feedback'), array('size="'.FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE.'"','maxlength="255"'));
}else {
$mform->addElement('hidden', 'dependitem', 0);
$mform->setType('dependitem', PARAM_INT);
$mform->addElement('hidden', 'dependvalue', '');
$mform->setType('dependitem', PARAM_ALPHA);
}
$position_select = $mform->addElement('select',
'position',
get_string('position', 'feedback').' ',
@ -47,11 +63,8 @@ class feedback_captcha_form extends feedback_item_form {
$mform->addElement('hidden', 'template', 0);
$mform->setType('template', PARAM_INT);
$mform->addElement('hidden', 'name', 'label');
$mform->setType('template', PARAM_ALPHA);
$mform->addElement('hidden', 'label', '-');
$mform->setType('label', PARAM_ALPHA);
$mform->setType('name', PARAM_RAW);
$mform->setType('label', PARAM_ALPHANUM);
$mform->addElement('hidden', 'typ', $this->type);
$mform->setType('typ', PARAM_ALPHA);

View file

@ -33,9 +33,12 @@ class feedback_item_captcha extends feedback_item_base {
$item->presentation = empty($item->presentation) ? 3 : $item->presentation;
$item->required = 1;
//all items for dependitem
$feedbackitems = feedback_get_depend_candidates_for_item($feedback, $item);
$commonparams = array('cmid'=>$cm->id,
'id'=>isset($item->id) ? $item->id : NULL,
'typ'=>$item->typ,
'items'=>$feedbackitems,
'feedback'=>$feedback->id);
//build the form
@ -129,6 +132,11 @@ class feedback_item_captcha extends feedback_item_base {
echo '<div class="feedback_item_label_'.$align.'">';
echo '('.$item->label.') ';
echo format_text($item->name.$requiredmark, true, false, false);
if($item->dependitem) {
if($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) {
echo ' <span class="feedback_depend">('.$dependitem->label.'-&gt;'.$item->dependvalue.')</span>';
}
}
echo '</div>';
//print the presentation
@ -269,6 +277,16 @@ class feedback_item_captcha extends feedback_item_base {
return $data;
}
//compares the dbvalue with the dependvalue
//dbvalue is value stored in the db
//dependvalue is the value to check
function compare_value($item, $dbvalue, $dependvalue) {
if($dbvalue == $dependvalue) {
return true;
}
return false;
}
function get_presentation($data) {
return $data->count_of_nums;
}

View file

@ -30,6 +30,22 @@ class feedback_info_form extends feedback_item_form {
////////////////////////////////////////////////////////////////////////
//the following is used in all itemforms
////////////////////////////////////////////////////////////////////////
//itemdepending
if($common['items']) {
$mform->addElement('select',
'dependitem',
get_string('dependitem', 'feedback').'&nbsp;',
$common['items']
);
$mform->addHelpButton('dependitem', 'depending', 'feedback');
$mform->addElement('text', 'dependvalue', get_string('dependvalue', 'feedback'), array('size="'.FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE.'"','maxlength="255"'));
}else {
$mform->addElement('hidden', 'dependitem', 0);
$mform->setType('dependitem', PARAM_INT);
$mform->addElement('hidden', 'dependvalue', '');
$mform->setType('dependitem', PARAM_ALPHA);
}
$position_select = $mform->addElement('select',
'position',
get_string('position', 'feedback').'&nbsp;',
@ -49,11 +65,8 @@ class feedback_info_form extends feedback_item_form {
$mform->addElement('hidden', 'template', 0);
$mform->setType('template', PARAM_INT);
$mform->addElement('hidden', 'name', 'label');
$mform->setType('template', PARAM_ALPHA);
$mform->addElement('hidden', 'label', '-');
$mform->setType('label', PARAM_ALPHA);
$mform->setType('name', PARAM_RAW);
$mform->setType('label', PARAM_ALPHANUM);
$mform->addElement('hidden', 'typ', $this->type);
$mform->setType('typ', PARAM_ALPHA);

View file

@ -33,9 +33,12 @@ class feedback_item_info extends feedback_item_base {
$item->presentation = empty($item->presentation) ? 1 : $item->presentation;
$item->required = 0;
//all items for dependitem
$feedbackitems = feedback_get_depend_candidates_for_item($feedback, $item);
$commonparams = array('cmid'=>$cm->id,
'id'=>isset($item->id) ? $item->id : NULL,
'typ'=>$item->typ,
'items'=>$feedbackitems,
'feedback'=>$feedback->id);
//build the form
@ -186,6 +189,11 @@ class feedback_item_info extends feedback_item_base {
echo '<div class="feedback_item_label_'.$align.'">';
echo '('.$item->label.') ';
echo format_text($item->name.$requiredmark, true, false, false);
if($item->dependitem) {
if($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) {
echo ' <span class="feedback_depend">('.$dependitem->label.'-&gt;'.$item->dependvalue.')</span>';
}
}
echo '</div>';
//print the presentation
echo '<div class="feedback_item_presentation_'.$align.'">';
@ -281,6 +289,16 @@ class feedback_item_info extends feedback_item_base {
return $data;
}
//compares the dbvalue with the dependvalue
//the values can be the shortname of a course or the category name
//the date is not compareable :(.
function compare_value($item, $dbvalue, $dependvalue) {
if($dbvalue == $dependvalue) {
return true;
}
return false;
}
function get_presentation($data) {
return $data->infotype;
}

View file

@ -35,6 +35,22 @@ class feedback_label_form extends feedback_item_form {
////////////////////////////////////////////////////////////////////////
//the following is used in all itemforms
////////////////////////////////////////////////////////////////////////
//itemdepending
if($common['items']) {
$mform->addElement('select',
'dependitem',
get_string('dependitem', 'feedback').'&nbsp;',
$common['items']
);
$mform->addHelpButton('dependitem', 'depending', 'feedback');
$mform->addElement('text', 'dependvalue', get_string('dependvalue', 'feedback'), array('size="'.FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE.'"','maxlength="255"'));
}else {
$mform->addElement('hidden', 'dependitem', 0);
$mform->setType('dependitem', PARAM_INT);
$mform->addElement('hidden', 'dependvalue', '');
$mform->setType('dependitem', PARAM_ALPHA);
}
$position_select = $mform->addElement('select',
'position',
get_string('position', 'feedback').'&nbsp;',

View file

@ -34,9 +34,12 @@ class feedback_item_label extends feedback_item_base {
//the elements for position dropdownlist
$positionlist = array_slice(range(0,$i_formselect_last),1,$i_formselect_last,true);
//all items for dependitem
$feedbackitems = feedback_get_depend_candidates_for_item($feedback, $item);
$commonparams = array('cmid'=>$cm->id,
'id'=>isset($item->id) ? $item->id : NULL,
'typ'=>$item->typ,
'items'=>$feedbackitems,
'feedback'=>$feedback->id);
$this->context = get_context_instance(CONTEXT_MODULE, $cm->id);
@ -128,6 +131,13 @@ class feedback_item_label extends feedback_item_base {
* @return void
*/
function print_item_preview($item) {
global $OUTPUT, $DB;
if($item->dependitem) {
if($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) {
echo ' <span class="feedback_depend">('.$dependitem->label.'-&gt;'.$item->dependvalue.')</span>';
}
}
$this->print_item($item);
}
@ -160,6 +170,10 @@ class feedback_item_label extends feedback_item_base {
return false;
}
function compare_value($item, $dbvalue, $dependvalue) {
return false;
}
//used by create_item and update_item functions,
//when provided $data submitted from feedback_show_edit
function get_presentation($data) {

View file

@ -42,9 +42,12 @@ class feedback_item_multichoice extends feedback_item_base {
$item->ignoreempty = $this->ignoreempty($item);
$item->hidenoselect = $this->hidenoselect($item);
//all items for dependitem
$feedbackitems = feedback_get_depend_candidates_for_item($feedback, $item);
$commonparams = array('cmid'=>$cm->id,
'id'=>isset($item->id) ? $item->id : NULL,
'typ'=>$item->typ,
'items'=>$feedbackitems,
'feedback'=>$feedback->id);
//build the form
@ -248,7 +251,7 @@ class feedback_item_multichoice extends feedback_item_base {
* @return void
*/
function print_item_preview($item) {
global $OUTPUT;
global $OUTPUT, $DB;
$info = $this->get_info($item);
$align = right_to_left() ? 'right' : 'left';
@ -263,6 +266,11 @@ class feedback_item_multichoice extends feedback_item_base {
echo '<div class="feedback_item_label_'.$align.'">';
echo '('.$item->label.') ';
echo format_text($item->name.$requiredmark, true, false, false);
if($item->dependitem) {
if($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) {
echo ' <span class="feedback_depend">('.$dependitem->label.'-&gt;'.$item->dependvalue.')</span>';
}
}
echo '</div>';
//print the presentation
@ -477,7 +485,32 @@ class feedback_item_multichoice extends feedback_item_base {
$vallist = $data;
return trim($this->item_arrayToString($vallist));
}
//compares the dbvalue with the dependvalue
//dbvalue is the number of one selection
//dependvalue is the presentation of one selection
function compare_value($item, $dbvalue, $dependvalue) {
if (is_array($dbvalue)) {
$dbvalues = $dbvalue;
}else {
$dbvalues = explode(FEEDBACK_MULTICHOICE_LINE_SEP, $dbvalue);
}
$info = $this->get_info($item);
$presentation = explode (FEEDBACK_MULTICHOICE_LINE_SEP, $info->presentation);
$index = 1;
foreach($presentation as $pres) {
foreach($dbvalues as $dbval) {
if($dbval == $index AND trim($pres) == $dependvalue) {
return true;
}
}
$index++;
}
return false;
}
function get_presentation($data) {
$present = str_replace("\n", FEEDBACK_MULTICHOICE_LINE_SEP, trim($data->itemvalues));
if(!isset($data->subtype)) {

View file

@ -32,6 +32,7 @@ class feedback_multichoice_form extends feedback_item_form {
'c'=>get_string('check', 'feedback'),
'd'=>get_string('dropdown', 'feedback')));
$mform->addElement('selectyesno', 'ignoreempty', get_string('do_not_analyse_empty_submits', 'feedback'));
$mform->addElement('selectyesno', 'hidenoselect', get_string('hide_no_select_option', 'feedback'));
@ -43,6 +44,22 @@ class feedback_multichoice_form extends feedback_item_form {
////////////////////////////////////////////////////////////////////////
//the following is used in all itemforms
////////////////////////////////////////////////////////////////////////
//itemdepending
if($common['items']) {
$mform->addElement('select',
'dependitem',
get_string('dependitem', 'feedback').'&nbsp;',
$common['items']
);
$mform->addHelpButton('dependitem', 'depending', 'feedback');
$mform->addElement('text', 'dependvalue', get_string('dependvalue', 'feedback'), array('size="'.FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE.'"','maxlength="255"'));
}else {
$mform->addElement('hidden', 'dependitem', 0);
$mform->setType('dependitem', PARAM_INT);
$mform->addElement('hidden', 'dependvalue', '');
$mform->setType('dependitem', PARAM_ALPHA);
}
$position_select = $mform->addElement('select',
'position',
get_string('position', 'feedback').'&nbsp;',
@ -62,11 +79,8 @@ class feedback_multichoice_form extends feedback_item_form {
$mform->addElement('hidden', 'template', 0);
$mform->setType('template', PARAM_INT);
$mform->addElement('hidden', 'name', 'label');
$mform->setType('template', PARAM_ALPHA);
$mform->addElement('hidden', 'label', '-');
$mform->setType('label', PARAM_ALPHA);
$mform->setType('name', PARAM_RAW);
$mform->setType('label', PARAM_ALPHANUM);
$mform->addElement('hidden', 'typ', $this->type);
$mform->setType('typ', PARAM_ALPHA);

View file

@ -47,9 +47,12 @@ class feedback_item_multichoicerated extends feedback_item_base {
$item->ignoreempty = $this->ignoreempty($item);
$item->hidenoselect = $this->hidenoselect($item);
//all items for dependitem
$feedbackitems = feedback_get_depend_candidates_for_item($feedback, $item);
$commonparams = array('cmid'=>$cm->id,
'id'=>isset($item->id) ? $item->id : NULL,
'typ'=>$item->typ,
'items'=>$feedbackitems,
'feedback'=>$feedback->id);
//build the form
@ -238,7 +241,8 @@ class feedback_item_multichoicerated extends feedback_item_base {
* @return void
*/
function print_item_preview($item) {
global $OUTPUT;
global $OUTPUT, $DB;
$align = right_to_left() ? 'right' : 'left';
$info = $this->get_info($item);
@ -248,6 +252,11 @@ class feedback_item_multichoicerated extends feedback_item_base {
echo '<div class="feedback_item_label_'.$align.'">';
echo '('.$item->label.') ';
echo format_text($item->name.$requiredmark, true, false, false);
if($item->dependitem) {
if($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) {
echo ' <span class="feedback_depend">('.$dependitem->label.'-&gt;'.$item->dependvalue.')</span>';
}
}
echo '</div>';
//print the presentation
@ -352,6 +361,32 @@ class feedback_item_multichoicerated extends feedback_item_base {
return $data;
}
//compares the dbvalue with the dependvalue
//dbvalue is the number of one selection
//dependvalue is the presentation of one selection
function compare_value($item, $dbvalue, $dependvalue) {
if (is_array($dbvalue)) {
$dbvalues = $dbvalue;
}else {
$dbvalues = explode(FEEDBACK_MULTICHOICERATED_LINE_SEP, $dbvalue);
}
$info = $this->get_info($item);
$presentation = explode (FEEDBACK_MULTICHOICERATED_LINE_SEP, $info->presentation);
$index = 1;
foreach($presentation as $pres) {
$presvalues = explode(FEEDBACK_MULTICHOICERATED_VALUE_SEP, $pres);
foreach($dbvalues as $dbval) {
if($dbval == $index AND trim($presvalues[1]) == $dependvalue) {
return true;
}
}
$index++;
}
return false;
}
function get_presentation($data) {
// $present = str_replace("\n", FEEDBACK_MULTICHOICERATED_LINE_SEP, trim($data->itemvalues));
$present = $this->prepare_presentation_values_save(trim($data->itemvalues), FEEDBACK_MULTICHOICERATED_VALUE_SEP2, FEEDBACK_MULTICHOICERATED_VALUE_SEP);

View file

@ -42,6 +42,22 @@ class feedback_multichoicerated_form extends feedback_item_form {
////////////////////////////////////////////////////////////////////////
//the following is used in all itemforms
////////////////////////////////////////////////////////////////////////
//itemdepending
if($common['items']) {
$mform->addElement('select',
'dependitem',
get_string('dependitem', 'feedback').'&nbsp;',
$common['items']
);
$mform->addHelpButton('dependitem', 'depending', 'feedback');
$mform->addElement('text', 'dependvalue', get_string('dependvalue', 'feedback'), array('size="'.FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE.'"','maxlength="255"'));
}else {
$mform->addElement('hidden', 'dependitem', 0);
$mform->setType('dependitem', PARAM_INT);
$mform->addElement('hidden', 'dependvalue', '');
$mform->setType('dependitem', PARAM_ALPHA);
}
$position_select = $mform->addElement('select',
'position',
get_string('position', 'feedback').'&nbsp;',
@ -61,11 +77,8 @@ class feedback_multichoicerated_form extends feedback_item_form {
$mform->addElement('hidden', 'template', 0);
$mform->setType('template', PARAM_INT);
$mform->addElement('hidden', 'name', 'label');
$mform->setType('template', PARAM_ALPHA);
$mform->addElement('hidden', 'label', '-');
$mform->setType('label', PARAM_ALPHA);
$mform->setType('name', PARAM_RAW);
$mform->setType('label', PARAM_ALPHANUM);
$mform->addElement('hidden', 'typ', $this->type);
$mform->setType('typ', PARAM_ALPHA);

View file

@ -47,9 +47,12 @@ class feedback_item_numeric extends feedback_item_base {
$item->rangefrom = $range_from;
$item->rangeto = $range_to;
//all items for dependitem
$feedbackitems = feedback_get_depend_candidates_for_item($feedback, $item);
$commonparams = array('cmid'=>$cm->id,
'id'=>isset($item->id) ? $item->id : NULL,
'typ'=>$item->typ,
'items'=>$feedbackitems,
'feedback'=>$feedback->id);
//build the form
@ -184,7 +187,8 @@ class feedback_item_numeric extends feedback_item_base {
* @return void
*/
function print_item_preview($item) {
global $OUTPUT;
global $OUTPUT, $DB;
$align = right_to_left() ? 'right' : 'left';
//get the range
@ -198,6 +202,11 @@ class feedback_item_numeric extends feedback_item_base {
echo '<div class="feedback_item_label_'.$align.'">';
echo '('.$item->label.') ';
echo format_text($item->name . $requiredmark, true, false, false);
if($item->dependitem) {
if($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) {
echo ' <span class="feedback_depend">('.$dependitem->label.'-&gt;'.$item->dependvalue.')</span>';
}
}
echo '<span class="feedback_item_numinfo">';
switch(true) {
case ($range_from === '-' AND is_numeric($range_to)):
@ -363,6 +372,16 @@ class feedback_item_numeric extends feedback_item_base {
return $data;
}
//compares the dbvalue with the dependvalue
//dbvalue is the number put in by the user
//dependvalue is the value that is compared
function compare_value($item, $dbvalue, $dependvalue) {
if($dbvalue == $dependvalue) {
return true;
}
return false;
}
function get_presentation($data) {
$num1 = str_replace($this->sep_dec, FEEDBACK_DECIMAL, $data->numericrangefrom);
if(is_numeric($num1)) {

View file

@ -28,6 +28,22 @@ class feedback_numeric_form extends feedback_item_form {
////////////////////////////////////////////////////////////////////////
//the following is used in all itemforms
////////////////////////////////////////////////////////////////////////
//itemdepending
if($common['items']) {
$mform->addElement('select',
'dependitem',
get_string('dependitem', 'feedback').'&nbsp;',
$common['items']
);
$mform->addHelpButton('dependitem', 'depending', 'feedback');
$mform->addElement('text', 'dependvalue', get_string('dependvalue', 'feedback'), array('size="'.FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE.'"','maxlength="255"'));
}else {
$mform->addElement('hidden', 'dependitem', 0);
$mform->setType('dependitem', PARAM_INT);
$mform->addElement('hidden', 'dependvalue', '');
$mform->setType('dependitem', PARAM_ALPHA);
}
$position_select = $mform->addElement('select',
'position',
get_string('position', 'feedback').'&nbsp;',
@ -47,11 +63,8 @@ class feedback_numeric_form extends feedback_item_form {
$mform->addElement('hidden', 'template', 0);
$mform->setType('template', PARAM_INT);
$mform->addElement('hidden', 'name', 'label');
$mform->setType('template', PARAM_ALPHA);
$mform->addElement('hidden', 'label', '-');
$mform->setType('label', PARAM_ALPHA);
$mform->setType('name', PARAM_RAW);
$mform->setType('label', PARAM_ALPHANUM);
$mform->addElement('hidden', 'typ', $this->type);
$mform->setType('typ', PARAM_ALPHA);

View file

@ -38,9 +38,12 @@ class feedback_item_textarea extends feedback_item_base {
$item->itemwidth = $itemwidth;
$item->itemheight = $itemheight;
//all items for dependitem
$feedbackitems = feedback_get_depend_candidates_for_item($feedback, $item);
$commonparams = array('cmid'=>$cm->id,
'id'=>isset($item->id) ? $item->id : NULL,
'typ'=>$item->typ,
'items'=>$feedbackitems,
'feedback'=>$feedback->id);
//build the form
@ -152,7 +155,8 @@ class feedback_item_textarea extends feedback_item_base {
* @return void
*/
function print_item_preview($item) {
global $OUTPUT;
global $OUTPUT, $DB;
$align = right_to_left() ? 'right' : 'left';
$presentation = explode ("|", $item->presentation);
@ -161,6 +165,11 @@ class feedback_item_textarea extends feedback_item_base {
echo '<div class="feedback_item_label_'.$align.'">';
echo '('.$item->label.') ';
echo format_text($item->name.$requiredmark, true, false, false);
if($item->dependitem) {
if($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) {
echo ' <span class="feedback_depend">('.$dependitem->label.'-&gt;'.$item->dependvalue.')</span>';
}
}
echo '</div>';
//print the presentation
@ -244,6 +253,16 @@ class feedback_item_textarea extends feedback_item_base {
return $data;
}
//compares the dbvalue with the dependvalue
//dbvalue is the value put in by the user
//dependvalue is the value that is compared
function compare_value($item, $dbvalue, $dependvalue) {
if($dbvalue == $dependvalue) {
return true;
}
return false;
}
function get_presentation($data) {
return $data->itemwidth . '|'. $data->itemheight;
}

View file

@ -33,6 +33,22 @@ class feedback_textarea_form extends feedback_item_form {
////////////////////////////////////////////////////////////////////////
//the following is used in all itemforms
////////////////////////////////////////////////////////////////////////
//itemdepending
if($common['items']) {
$mform->addElement('select',
'dependitem',
get_string('dependitem', 'feedback').'&nbsp;',
$common['items']
);
$mform->addHelpButton('dependitem', 'depending', 'feedback');
$mform->addElement('text', 'dependvalue', get_string('dependvalue', 'feedback'), array('size="'.FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE.'"','maxlength="255"'));
}else {
$mform->addElement('hidden', 'dependitem', 0);
$mform->setType('dependitem', PARAM_INT);
$mform->addElement('hidden', 'dependvalue', '');
$mform->setType('dependitem', PARAM_ALPHA);
}
$position_select = $mform->addElement('select',
'position',
get_string('position', 'feedback').'&nbsp;',
@ -52,11 +68,8 @@ class feedback_textarea_form extends feedback_item_form {
$mform->addElement('hidden', 'template', 0);
$mform->setType('template', PARAM_INT);
$mform->addElement('hidden', 'name', 'label');
$mform->setType('template', PARAM_ALPHA);
$mform->addElement('hidden', 'label', '-');
$mform->setType('label', PARAM_ALPHA);
$mform->setType('name', PARAM_RAW);
$mform->setType('label', PARAM_ALPHANUM);
$mform->addElement('hidden', 'typ', $this->type);
$mform->setType('typ', PARAM_ALPHA);

View file

@ -38,9 +38,12 @@ class feedback_item_textfield extends feedback_item_base {
$item->itemsize = $itemsize;
$item->itemmaxlength = $itemlength;
//all items for dependitem
$feedbackitems = feedback_get_depend_candidates_for_item($feedback, $item);
$commonparams = array('cmid'=>$cm->id,
'id'=>isset($item->id) ? $item->id : NULL,
'typ'=>$item->typ,
'items'=>$feedbackitems,
'feedback'=>$feedback->id);
//build the form
@ -149,7 +152,7 @@ class feedback_item_textfield extends feedback_item_base {
* @return void
*/
function print_item_preview($item) {
global $OUTPUT;
global $OUTPUT, $DB;
$align = right_to_left() ? 'right' : 'left';
$presentation = explode ("|", $item->presentation);
@ -158,6 +161,11 @@ class feedback_item_textfield extends feedback_item_base {
echo '<div class="feedback_item_label_'.$align.'">';
echo '('.$item->label.') ';
echo format_text($item->name.$requiredmark, true, false, false);
if($item->dependitem) {
if($dependitem = $DB->get_record('feedback_item', array('id'=>$item->dependitem))) {
echo ' <span class="feedback_depend">('.$dependitem->label.'-&gt;'.$item->dependvalue.')</span>';
}
}
echo '</div>';
//print the presentation
@ -239,6 +247,16 @@ class feedback_item_textfield extends feedback_item_base {
return $data;
}
//compares the dbvalue with the dependvalue
//dbvalue is the value put in by the user
//dependvalue is the value that is compared
function compare_value($item, $dbvalue, $dependvalue) {
if($dbvalue == $dependvalue) {
return true;
}
return false;
}
function get_presentation($data) {
return $data->itemsize . '|'. $data->itemmaxlength;
}

View file

@ -33,6 +33,22 @@ class feedback_textfield_form extends feedback_item_form {
////////////////////////////////////////////////////////////////////////
//the following is used in all itemforms
////////////////////////////////////////////////////////////////////////
//itemdepending
if($common['items']) {
$mform->addElement('select',
'dependitem',
get_string('dependitem', 'feedback').'&nbsp;',
$common['items']
);
$mform->addHelpButton('dependitem', 'depending', 'feedback');
$mform->addElement('text', 'dependvalue', get_string('dependvalue', 'feedback'), array('size="'.FEEDBACK_ITEM_LABEL_TEXTBOX_SIZE.'"','maxlength="255"'));
}else {
$mform->addElement('hidden', 'dependitem', 0);
$mform->setType('dependitem', PARAM_INT);
$mform->addElement('hidden', 'dependvalue', '');
$mform->setType('dependitem', PARAM_ALPHA);
}
$position_select = $mform->addElement('select',
'position',
get_string('position', 'feedback').'&nbsp;',
@ -52,11 +68,8 @@ class feedback_textfield_form extends feedback_item_form {
$mform->addElement('hidden', 'template', 0);
$mform->setType('template', PARAM_INT);
$mform->addElement('hidden', 'name', 'label');
$mform->setType('template', PARAM_ALPHA);
$mform->addElement('hidden', 'label', '-');
$mform->setType('label', PARAM_ALPHA);
$mform->setType('name', PARAM_RAW);
$mform->setType('label', PARAM_ALPHANUM);
$mform->addElement('hidden', 'typ', $this->type);
$mform->setType('typ', PARAM_ALPHA);