123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace gradeimporter;
- class feedback {
- public static function get_comments() {
- global $DB, $USER;
- $sql = "
- SELECT gf.id,
- gf.grade,
- gf.comment,
- gs.name gs_name,
- gs.description gs_description,
- gst.name gst_name,
- gst.info gst_info,
- fileid
- FROM mdl_gradeimporter_feedback gf
- JOIN mdl_gradeimporter_submission gs
- ON gf.submissionid = gs.id
- JOIN mdl_gradeimporter_submissiontype gst
- ON gs.type = gst.id
- WHERE gf.studentid = ?";
- $comments = array();
- $records = $DB->get_records_sql($sql, array('studentid'=>$USER->id));
- $data = array();
- if (count($records)) {
- foreach ($records as $key => $value) {
- if (!array_key_exists($value->gst_name, $data)) $data[$value->gst_name] = array();
- $data[$value->gst_name][] = array($value->gs_name, $value->grade, $value->fileid);
- }
- }
- return $data;
- }
- }
- function gradeimporter_check_for_zips ($context, $cm, $submission){
- $fs = get_file_storage();
- $files = $fs->get_area_files($context->id, 'mod_gradeimporter', 'submission', $submission->id, "itemid, filepath, filename", false);
- foreach ($files as $storedfile) {
- if ($storedfile->get_mimetype() == 'application/zip') {
- //unpack zip
- $packer = get_file_packer('application/zip');
- $fs->delete_area_files($context->id, 'mod_gradeimporter', 'unpacktemp', 0);
- $storedfiles = $fs->get_area_files($context->id, 'mod_gradeimporter', 'unpacktemp', 0, "itemid, filepath, filename", false);
- if (count($tempfiles > 0)) {
- $storedfile->delete(); // delete the zip
-
- foreach (glob('*.csv') as $filename){
- $csv = array_map('str_getcsv', file($filename));
- array_walk($csv, function(&$a) use ($csv) { //adds first row as keys
- $a = array_combine($csv[0], $a);
- });
- array_shift($csv); # remove column header
- for ($i = 1; i< sizeof($csv); $i++){
- $fileinfo = array(
- 'contextid' => $context->id,
- 'component' => 'mod_gradeimporter',
- 'filearea' => 'submission',
- 'itemid' => $submission->id,
- 'filepath' => '/',
- 'filename' => $csv[i]['filename'],
- 'studentid' => $csv[i]['id']
- );
- foreach ($tempfiles as $storedfile) {
- if ($storedfile->get_filename() == $csv[i]['filename']){
- $storedfile = $fs->create_file_from_storedfile($fileinfo, $storedfile);
- $bdentry = array(
- 'submissionid' => $submission->id,
- 'studentid' => $csv[i]['id'],
- 'grade' => $csv[i]['grade'],
- 'comment' => $csv[i]['comment'],
- 'fileid' => $csv[i][$storedfile],
- 'usermodified' => $USER->id,
- 'timecreated' => time(),
- 'timemodified' => time()
- );
- $bdentry->id = $DB->insert_record("feedback", $dbentry);
- break;
- }
- }
-
- }
- }
- }
- $fs->delete_area_files($context->id, 'mod_gradeimporter', 'unpacktemp', 0);
- }
- }
- }
- //
- // INSERT INTO `mdl_gradeimporter_feedback` (`id`, `submissionid`, `studentid`, `grade`, `comment`, `fileid`, `usermodified`, `timecreated`, `timemodified`)
- // VALUES
- // (1, 10, 1, 10.00, 'ok muito bem', 100, 0, 0, 0);
- //
|