mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 01:16:44 +02:00
MDL-19489 - add conditional branching (my first try)
This commit is contained in:
parent
f53fde9f47
commit
73043833e9
29 changed files with 1597 additions and 1088 deletions
|
@ -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.'->'.$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;
|
||||
}
|
||||
|
|
|
@ -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').' ',
|
||||
$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').' ',
|
||||
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue