libdir.'/tablelib.php'); //////////////////////////////////////////////////////// //get the params $id = required_param('id', PARAM_INT); $courseid = optional_param('courseid', 0, PARAM_INT); $do_show = optional_param('do_show', 'export', PARAM_ALPHAEXT); $show_all = optional_param('show_all', 0, PARAM_INT); $action = optional_param('action', '', PARAM_ALPHAEXT); $current_tab = $do_show; $this_action = 'export'; //////////////////////////////////////////////////////// //get the objects if (! $cm = get_coursemodule_from_id('apply', $id)) { print_error('invalidcoursemodule'); } if (! $course = $DB->get_record('course', array('id'=>$cm->course))) { print_error('coursemisconf'); } if (! $apply = $DB->get_record('apply', array('id'=>$cm->instance))) { print_error('invalidcoursemodule'); } if (!$courseid) $courseid = $course->id; $req_own_data = false; $name_pattern = $apply->name_pattern; $context = context_module::instance($cm->id); //////////////////////////////////////////////////////// // Check require_login($course, true, $cm); require_capability('mod/apply:viewreports', $context); /////////////////////////////////////////////////////////////////////////// // URL $base_url = new moodle_url('/mod/apply/'.$this_action.'.php'); $base_url->params(array('id'=>$id, 'courseid'=>$courseid, 'show_all'=>$show_all)); // $this_url = new moodle_url($base_url); $this_url->params(array('do_show'=>$do_show)); // $back_url = new moodle_url('/mod/apply/view.php'); $back_url->params(array('id'=>$id, 'courseid'=>$courseid, 'do_show'=>'view_entries', 'show_all'=>$show_all)); $export_url = new moodle_url('/mod/apply/'.$this_action.'.php'); //////////////////////////////////////////////////////// /// Print the page header $PAGE->navbar->add(get_string('apply:viewentries', 'apply')); $PAGE->set_url($this_url); $PAGE->set_heading(format_string($course->fullname)); $PAGE->set_title(format_string($apply->name)); // $cap_view_hidden_activities = has_capability('moodle/course:viewhiddenactivities', $context); if ((empty($cm->visible) and !$cap_view_hidden_activities)) { notice(get_string('activityiscurrentlyhidden')); } if ((empty($cm->visible) and !$cap_view_hidden_activities)) { notice(get_string('activityiscurrentlyhidden')); } /////////////////////////////////////////////////////////////////////////// // export_enties if ($action=='excel' or $action=='text') { // $submits = apply_get_submits_select($apply->id, 0, 'version>0 AND', null, 'user_id DESC', false, false); if ($submits) { $datas = new stdClass(); $datas->attr = array(); // 属性 'string', 'number'. デフォルトは 'string' $datas->data = array(); $apply_id = reset($submits)->apply_id; // Names (first line) $where = 'apply_id=? AND hasvalue=? AND position>?'; $params = array($apply_id, 1, 0); $apply_items = $DB->get_records_select('apply_item', $where, $params, 'position'); $j = 0; $items = array(); $fmts = array(); $vrsns = array(); $datas->attr[0] = array(); $datas->data[0] = array(); foreach($apply_items as $val) { $datas->data[0][$j] = $val->name; $datas->attr[0][$j] = 'string'; $items[$j] = $val->id; if ($val->typ=='numeric' or $val->typ=='multichoice') $fmts[$j] = 'number'; else $fmts[$j] = 'string'; $j++; } $datas->data[0][$j] = get_string('title_ack', 'apply'); $datas->attr[0][$j] = 'string'; $j++; $datas->data[0][$j] = get_string('title_exec', 'apply'); $datas->attr[0][$j] = 'string'; // Values $i = 1; foreach($submits as $submit) { $j = 0; foreach($items as $item) { $params = array('submit_id'=>$submit->id, 'item_id'=>$item, 'version'=>$submit->version); $value = $DB->get_record('apply_value', $params); $datas->data[$i][$j] = $value->value; $datas->attr[$i][$j] = $fmts[$j]; $j++; } $datas->data[$i][$j] = jbxl_get_user_name($submit->acked_user, $apply->name_pattern); $datas->attr[$i][$j] = 'string'; $j++; $datas->data[$i][$j] = jbxl_get_user_name($submit->execd_user, $apply->name_pattern); $datas->attr[$i][$j] = 'string'; $i++; } // Download if($action=='excel') { jbxl_download_data('xlsx', $datas); die(); } else if($action=='text') { jbxl_download_data('txt', $datas); die(); } } } /////////////////////////////////////////////////////////////////////////// echo $OUTPUT->header(); require('tabs.php'); require('html/download.html'); $back_button = $OUTPUT->single_button($back_url->out(), get_string('back_button', 'apply')); echo '
'; echo '
'; echo ''; echo ''; echo ''; echo ''; echo '
'.$back_button.'
'; echo '
'; /////////////////////////////////////////////////////////////////////////// /// Finish the page echo $OUTPUT->footer();