diff --git a/grade/export/lib.php b/grade/export/lib.php
index 2b08ad02586..0474568219e 100755
--- a/grade/export/lib.php
+++ b/grade/export/lib.php
@@ -143,18 +143,19 @@ class grade_export {
foreach ($gradeitems as $gradeitem) {
- $this->columns[] = "$gradeitem->itemmodule: ".format_string($gradeitem->itemname,true)." - $gradeitem->grademax";
- $this->columnidnumbers[] = $gradeitem->idnumber; // this might be needed for some export plugins
-
- if (!empty($gradeitem->maxgrade)) {
- $maxgrade = "$strmax: $gradeitem->maxgrade";
- } else {
- $maxgrade = "";
- }
-
// load as an array of grade_final objects
if ($itemgrades = $gradeitem -> load_final()) {
+
+ $this->columns[$itemgrades->id] = "$gradeitem->itemmodule: ".format_string($gradeitem->itemname,true)." - $gradeitem->grademax";
+ $this->columnidnumbers[$itemgrades->id] = $gradeitem->idnumber; // this might be needed for some export plugins
+
+ if (!empty($gradeitem->grademax)) {
+ $maxgrade = "$strmax: $gradeitem->grademax";
+ } else {
+ $maxgrade = "";
+ }
+
if (!empty($this->students)) {
foreach ($this->students as $student) {
@@ -164,7 +165,7 @@ class grade_export {
if (!empty($studentgrade->gradevalue)) {
$this->grades[$student->id][$itemgrades->id] = $currentstudentgrade = $studentgrade->gradevalue;
} else {
- $this->grades[$student->id][] = $currentstudentgrade = "";
+ $this->grades[$student->id][$itemgrades->id] = $currentstudentgrade = "";
$this->gradeshtml[$student->id][$itemgrades->id] = "";
}
if (!empty($maxgrade)) {
@@ -198,41 +199,41 @@ class grade_export {
/**
* Displays all the grades on screen as a feedback mechanism
*/
- function display_grades() {
- echo get_string("firstname")."\t".
- get_string("lastname")."\t".
- get_string("idnumber")."\t".
- get_string("institution")."\t".
- get_string("department")."\t".
+ function display_grades($feedback=false) {
+ echo get_string("firstname").",".
+ get_string("lastname").",".
+ get_string("idnumber").",".
+ get_string("institution").",".
+ get_string("department").",".
get_string("email");
foreach ($this->columns as $column) {
$column = strip_tags($column);
- echo "\t$column";
+ echo ",$column";
/// add a column_feedback column
if ($feedback) {
- echo "\t{$column}_feedback";
+ echo ",{$column}_feedback";
}
}
- echo "\t".get_string("total")."\n";
+ echo ",".get_string("total")."
";
/// Print all the lines of data.
foreach ($this->grades as $studentid => $studentgrades) {
- $student = $students[$studentid];
+ $student = $this->students[$studentid];
if (empty($this->totals[$student->id])) {
$this->totals[$student->id] = '';
}
- echo "$student->firstname\t$student->lastname\t$student->idnumber\t$student->institution\t$student->department\t$student->email";
+ echo "$student->firstname,$student->lastname,$student->idnumber,$student->institution,$student->department,$student->email";
foreach ($studentgrades as $grade) {
$grade = strip_tags($grade);
- echo "\t$grade";
+ echo ",$grade";
if ($feedback) {
- echo "\t".array_shift($this->comments[$student->id]);
+ echo ",".array_shift($this->comments[$student->id]);
}
}
- echo "\t".$this->totals[$student->id];
- echo "\n";
+ echo ",".$this->totals[$student->id];
+ echo "
";
}
}
}
diff --git a/grade/export/ods/export.php b/grade/export/ods/export.php
new file mode 100755
index 00000000000..44b573c3d37
--- /dev/null
+++ b/grade/export/ods/export.php
@@ -0,0 +1,15 @@
+dirroot.'/grade/export/lib.php');
+require_once('grade_export_ods.php');
+
+$id = required_param('id', PARAM_INT); // course id
+$itemids = required_param('itemids', PARAM_NOTAGS);
+$feedback = optional_param('feedback', '', PARAM_ALPHA);
+
+// print all the exported data here
+$export = new grade_export_ods($id, $itemids);
+$export->print_grades($feedback);
+
+?>
\ No newline at end of file
diff --git a/grade/export/ods/grade_export_ods.php b/grade/export/ods/grade_export_ods.php
index 7362f2e2f9e..590f25ed8e4 100755
--- a/grade/export/ods/grade_export_ods.php
+++ b/grade/export/ods/grade_export_ods.php
@@ -41,9 +41,13 @@ class grade_export_ods extends grade_export {
if ($expplugins = explode(",", $CFG->gradeexport)) {
if (in_array($this->format, $expplugins)) {
$export = true;
- }
+ } else {
+ $export = false;
+ }
+ } else {
+ $export = false;
}
-
+
/// Calculate file name
$downloadfilename = clean_filename("{$this->course->shortname} $this->strgrades.ods");
/// Creating a workbook
@@ -88,7 +92,7 @@ class grade_export_ods extends grade_export {
$myxls->write_string($i,4,$student->department);
$myxls->write_string($i,5,$student->email);
$j=6;
- foreach ($studentgrades as $grade) {
+ foreach ($studentgrades as $gradeitemid => $grade) {
if (is_numeric($grade)) {
$myxls->write_number($i,$j++,strip_tags($grade));
}
diff --git a/grade/export/ods/index.php b/grade/export/ods/index.php
new file mode 100755
index 00000000000..1dbd34aa552
--- /dev/null
+++ b/grade/export/ods/index.php
@@ -0,0 +1,51 @@
+dirroot.'/grade/export/lib.php');
+require_once('grade_export_ods.php');
+
+$id = required_param('id', PARAM_INT); // course id
+$feedback = optional_param('feedback', '', PARAM_ALPHA);
+
+// process post information
+if ($data = data_submitted() && confirm_sesskey()) {
+
+ if (!is_array($data->itemids)) {
+ $itemidsurl = $data->itemids;
+ } else {
+ $itemidsurl = implode(",",$data->itemids);
+ }
+
+ // print the grades on screen for feedbacks
+ print_header(get_string('grade'),get_string('grade'),get_string('grade'));
+ $export = new grade_export($id, $data->itemids);
+ $export->display_grades($feedback);
+ print_footer();
+ // this redirect should trigger a download prompt
+ redirect('export.php?id='.$id.'&itemids='.$itemidsurl);
+ exit;
+}
+
+print_gradeitem_selections($id);
+?>
\ No newline at end of file
diff --git a/grade/export/txt/grade_export_txt.php b/grade/export/txt/grade_export_txt.php
index 26e078a4bbb..22545b07e8c 100755
--- a/grade/export/txt/grade_export_txt.php
+++ b/grade/export/txt/grade_export_txt.php
@@ -39,7 +39,11 @@ class grade_export_txt extends grade_export {
if ($expplugins = explode(",", $CFG->gradeexport)) {
if (in_array($this->format, $expplugins)) {
$export = true;
- }
+ } else {
+ $export = false;
+ }
+ } else {
+ $export = false;
}
/// Print header to force download
diff --git a/grade/export/txt/index.php b/grade/export/txt/index.php
index c0f2c015203..67446d179c5 100755
--- a/grade/export/txt/index.php
+++ b/grade/export/txt/index.php
@@ -30,15 +30,21 @@ $feedback = optional_param('feedback', '', PARAM_ALPHA);
// process post information
if ($data = data_submitted() && confirm_sesskey()) {
- $itemids = implode(",", $data->itemids);
- // this redirect should trigger a download prompt
- redirect('export.php?id='.$id.'&itemids='.$itemids);
-
+
+ if (!is_array($data->itemids)) {
+ $itemidsurl = $data->itemids;
+ } else {
+ $itemidsurl = implode(",",$data->itemids);
+ }
+
// print the grades on screen for feedbacks
- print_header();
- $export = new grade_export($id, $itemids);
+ print_header(get_string('grade'),get_string('grade'),get_string('grade'));
+ $export = new grade_export($id, $data->itemids);
$export->display_grades($feedback);
print_footer();
+
+ // this redirect should trigger a download prompt
+ redirect('export.php?id='.$id.'&itemids='.$itemidsurl);
exit;
}
diff --git a/grade/export/xls/export.php b/grade/export/xls/export.php
new file mode 100755
index 00000000000..8547d2f6761
--- /dev/null
+++ b/grade/export/xls/export.php
@@ -0,0 +1,15 @@
+dirroot.'/grade/export/lib.php');
+require_once('grade_export_xls.php');
+
+$id = required_param('id', PARAM_INT); // course id
+$itemids = required_param('itemids', PARAM_NOTAGS);
+$feedback = optional_param('feedback', '', PARAM_ALPHA);
+
+// print all the exported data here
+$export = new grade_export_xls($id, $itemids);
+$export->print_grades($feedback);
+
+?>
\ No newline at end of file
diff --git a/grade/export/xls/grade_export_xls.php b/grade/export/xls/grade_export_xls.php
index 4f405e4317c..92fea23bc60 100755
--- a/grade/export/xls/grade_export_xls.php
+++ b/grade/export/xls/grade_export_xls.php
@@ -39,7 +39,11 @@ class grade_export_xls extends grade_export {
if ($expplugins = explode(",", $CFG->gradeexport)) {
if (in_array($this->format, $expplugins)) {
$export = true;
- }
+ } else {
+ $export = false;
+ }
+ } else {
+ $export = false;
}
require_once($CFG->dirroot.'/lib/excellib.class.php');
@@ -87,7 +91,7 @@ class grade_export_xls extends grade_export {
$myxls->write_string($i,4,$student->department);
$myxls->write_string($i,5,$student->email);
$j=6;
- foreach ($studentgrades as $grade) {
+ foreach ($studentgrades as $gradeitemid => $grade) {
if (is_numeric($grade)) {
$myxls->write_number($i,$j++,strip_tags($grade));
}
diff --git a/grade/export/xls/index.php b/grade/export/xls/index.php
new file mode 100755
index 00000000000..7dfbe3ae526
--- /dev/null
+++ b/grade/export/xls/index.php
@@ -0,0 +1,52 @@
+dirroot.'/grade/export/lib.php');
+require_once('grade_export_xls.php');
+
+$id = required_param('id', PARAM_INT); // course id
+$feedback = optional_param('feedback', '', PARAM_ALPHA);
+
+// process post information
+if ($data = data_submitted() && confirm_sesskey()) {
+
+ if (!is_array($data->itemids)) {
+ $itemidsurl = $data->itemids;
+ } else {
+ $itemidsurl = implode(",",$data->itemids);
+ }
+
+ // print the grades on screen for feedbacks
+ print_header(get_string('grade'),get_string('grade'),get_string('grade'));
+ $export = new grade_export($id, $data->itemids);
+ $export->display_grades($feedback);
+ print_footer();
+
+ // this redirect should trigger a download prompt
+ redirect('export.php?id='.$id.'&itemids='.$itemidsurl);
+ exit;
+}
+
+print_gradeitem_selections($id);
+?>
\ No newline at end of file
diff --git a/grade/export/xml/grade_export_xml.php b/grade/export/xml/grade_export_xml.php
index 5859e098a19..a07cacdea46 100755
--- a/grade/export/xml/grade_export_xml.php
+++ b/grade/export/xml/grade_export_xml.php
@@ -39,7 +39,11 @@ class grade_export_xml extends grade_export {
if ($expplugins = explode(",", $CFG->gradeexport)) {
if (in_array($this->format, $expplugins)) {
$export = true;
- }
+ } else {
+ $export = false;
+ }
+ } else {
+ $export = false;
}
require_once($CFG->dirroot.'/lib/excellib.class.php');
@@ -68,18 +72,17 @@ class grade_export_xml extends grade_export {
// we are trying to figure out if this is a new grade, or a regraded grade
// only relevant if this grade for this user is already exported
- if (!empty($gradeitem->exported)) {
- // get the grade_grades_final for this user
- unset($params);
- $params->itemid = $gradeitem->id;
- $params->userid = $studentid;
+ // get the grade_grades_final for this user
+ unset($params);
+ $params->itemid = $gradeitem->id;
+ $params->userid = $studentid;
- $grade_grades_final = new grade_grades_final($params);
+ $grade_grades_final = new grade_grades_final($params);
- // if exported, check grade_history, if modified after export, set state to regrade
-
- if (record_exists_select('grade_hitory', 'itemid = '.$gradeitem->id.' AND userid = '.$studentid.' AND timemodified > '.$grade_grades_final->exported)) {
+ // if exported, check grade_history, if modified after export, set state to regrade
+ if (!empty($grade_grades_final->exported)) {
+ if (record_exists_select('grade_history', 'itemid = '.$gradeitem->id.' AND userid = '.$studentid.' AND timemodified > '.$grade_grades_final->exported)) {
$status = 'regrade';
} else {
$status = 'new';
diff --git a/grade/export/xml/index.php b/grade/export/xml/index.php
index bd98f760449..43c5f83e1aa 100755
--- a/grade/export/xml/index.php
+++ b/grade/export/xml/index.php
@@ -30,15 +30,21 @@ $feedback = optional_param('feedback', '', PARAM_ALPHA);
// process post information
if ($data = data_submitted() && confirm_sesskey()) {
- $itemids = implode(",", $data->itemids);
- // this redirect should trigger a download prompt
- redirect('export.php?id='.$id.'&itemids='.$itemids);
-
+
+ if (!is_array($data->itemids)) {
+ $itemidsurl = $data->itemids;
+ } else {
+ $itemidsurl = implode(",",$data->itemids);
+ }
+
// print the grades on screen for feedbacks
- print_header();
- $export = new grade_export($id, $itemids);
+ print_header(get_string('grade'),get_string('grade'),get_string('grade'));
+ $export = new grade_export($id, $data->itemids);
$export->display_grades($feedback);
print_footer();
+
+ // this redirect should trigger a download prompt
+ redirect('export.php?id='.$id.'&itemids='.$itemidsurl);
exit;
}