10da8990aba2cf48ceabeae87836669e0d1ab163
[moodle.git] / mod / assignment / type / online / file.php
1 <?php
3 require("../../../../config.php");
4 require("../../lib.php");
5 require("assignment.class.php");
7 $id     = required_param('id', PARAM_INT);      // Course Module ID
8 $userid = required_param('userid', PARAM_INT);  // User ID
10 $PAGE->set_url('/mod/assignment/type/online/file.php', array('id'=>$id, 'userid'=>$userid));
12 if (! $cm = get_coursemodule_from_id('assignment', $id)) {
13     print_error('invalidcoursemodule');
14 }
16 if (! $assignment = $DB->get_record("assignment", array("id"=>$cm->instance))) {
17     print_error('invalidid', 'assignment');
18 }
20 if (! $course = $DB->get_record("course", array("id"=>$assignment->course))) {
21     print_error('coursemisconf', 'assignment');
22 }
24 if (! $user = $DB->get_record("user", array("id"=>$userid))) {
25     print_error('usermisconf', 'assignment');
26 }
28 require_login($course->id, false, $cm);
30 $context = get_context_instance(CONTEXT_MODULE, $cm->id);
31 if (($USER->id != $user->id) && !has_capability('mod/assignment:grade', $context)) {
32     print_error('cannotviewassignment', 'assignment');
33 }
35 if ($assignment->assignmenttype != 'online') {
36     print_error('invalidtype', 'assignment');
37 }
39 $assignmentinstance = new assignment_online($cm->id, $assignment, $cm, $course);
41 if ($submission = $assignmentinstance->get_submission($user->id)) {
42     $PAGE->set_pagelayout('popup');
43     $PAGE->set_title(fullname($user,true).': '.$assignment->name);
44     echo $OUTPUT->header();
45     echo $OUTPUT->box_start('generalbox boxaligcenter', 'dates');
46     echo '<table>';
47     if ($assignment->timedue) {
48         echo '<tr><td class="c0">'.get_string('duedate','assignment').':</td>';
49         echo '    <td class="c1">'.userdate($assignment->timedue).'</td></tr>';
50     }
51     echo '<tr><td class="c0">'.get_string('lastedited').':</td>';
52     echo '    <td class="c1">'.userdate($submission->timemodified);
53     /// Decide what to count
54         if ($CFG->assignment_itemstocount == ASSIGNMENT_COUNT_WORDS) {
55             echo ' ('.get_string('numwords', '', count_words(format_text($submission->data1, $submission->data2))).')</td></tr>';
56         } else if ($CFG->assignment_itemstocount == ASSIGNMENT_COUNT_LETTERS) {
57             echo ' ('.get_string('numletters', '', count_letters(format_text($submission->data1, $submission->data2))).')</td></tr>';
58         }
59     echo '</table>';
60     echo $OUTPUT->box_end();
62     $text = file_rewrite_pluginfile_urls($submission->data1, 'pluginfile.php', $context->id, 'mod_assignment', 'online_submission', $submission->id);
63     echo $OUTPUT->box(format_text($text, $submission->data2), 'generalbox boxaligncenter boxwidthwide');
64     echo $OUTPUT->close_window_button();
65     echo $OUTPUT->footer();
66 } else {
67     print_string('emptysubmission', 'assignment');
68 }