$id)); if ($action !== false) { $url->param('action', $action); } $PAGE->set_url($url); if (! $cm = get_coursemodule_from_id('feedback', $id)) { print_error('invalidcoursemodule'); } if (! $course = $DB->get_record("course", array("id"=>$cm->course))) { print_error('coursemisconf'); } if (! $feedback = $DB->get_record("feedback", array("id"=>$cm->instance))) { print_error('invalidcoursemodule'); } if (!$context = get_context_instance(CONTEXT_MODULE, $cm->id)) { print_error('badcontext'); } require_login($course->id, true, $cm); require_capability('mod/feedback:edititems', $context); if ($action == 'exportfile') { if(!$exportdata = feedback_get_xml_data($feedback->id)) { print_error('nodata'); } @feedback_send_xml_data($exportdata, 'feedback_'.$feedback->id.'.xml'); exit; } redirect('view.php?id='.$id); exit; function feedback_get_xml_data($feedbackid) { global $DB; $space = ' '; //get all items of the feedback if(!$items = $DB->get_records('feedback_item', array('feedback'=>$feedbackid), 'position')) { return false; } //writing the header of the xml file including the charset of the currrent used language $data = ''."\n"; $data .= ''."\n"; $data .= $space.''."\n"; //writing all the items foreach($items as $item) { //start of item $data .= $space.$space.''."\n"; //start of itemid $data .= $space.$space.$space.''."\n"; //start of CDATA $data .= $space.$space.$space.$space.'id; //end of CDATA $data .= ']]>'."\n"; //end of itemid $data .= $space.$space.$space.''."\n"; //start of itemtext $data .= $space.$space.$space.''."\n"; //start of CDATA $data .= $space.$space.$space.$space.'name; //end of CDATA $data .= ']]>'."\n"; //end of itemtext $data .= $space.$space.$space.''."\n"; //start of itemtext $data .= $space.$space.$space.''."\n"; //start of CDATA $data .= $space.$space.$space.$space.'label; //end of CDATA $data .= ']]>'."\n"; //end of itemtext $data .= $space.$space.$space.''."\n"; //start of presentation $data .= $space.$space.$space.''."\n"; //start of CDATA $data .= $space.$space.$space.$space.'presentation; //end of CDATA $data .= ']]>'."\n"; //end of presentation $data .= $space.$space.$space.''."\n"; //start of options $data .= $space.$space.$space.''."\n"; //start of CDATA $data .= $space.$space.$space.$space.'options; //end of CDATA $data .= ']]>'."\n"; //end of options $data .= $space.$space.$space.''."\n"; //start of dependitem $data .= $space.$space.$space.''."\n"; //start of CDATA $data .= $space.$space.$space.$space.'dependitem; //end of CDATA $data .= ']]>'."\n"; //end of dependitem $data .= $space.$space.$space.''."\n"; //start of dependvalue $data .= $space.$space.$space.''."\n"; //start of CDATA $data .= $space.$space.$space.$space.'dependvalue; //end of CDATA $data .= ']]>'."\n"; //end of dependvalue $data .= $space.$space.$space.''."\n"; //end of item $data .= $space.$space.''."\n"; } //writing the footer of the xml file $data .= $space.''."\n"; $data .= ''."\n"; return $data; } function feedback_send_xml_data($data, $filename) { @header('Content-Type: application/xml; charset=UTF-8'); @header('Content-Disposition: attachment; filename='.$filename); print($data); }