|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00002 00003 //=================================================== 00004 // all.php 00005 // 00006 // Displays a complete list of online assignments 00007 // for the course. Rather like what happened in 00008 // the old Journal activity. 00009 // Howard Miller 2008 00010 // See MDL-14045 00011 //=================================================== 00012 00013 require_once("../../../../config.php"); 00014 require_once("{$CFG->dirroot}/mod/assignment/lib.php"); 00015 require_once($CFG->libdir.'/gradelib.php'); 00016 require_once('assignment.class.php'); 00017 00018 // get parameter 00019 $id = required_param('id', PARAM_INT); // course 00020 00021 if (!$course = $DB->get_record('course', array('id'=>$id))) { 00022 print_error('invalidcourse'); 00023 } 00024 00025 $PAGE->set_url('/mod/assignment/type/online/all.php', array('id'=>$id)); 00026 00027 require_course_login($course); 00028 00029 // check for view capability at course level 00030 $context = get_context_instance(CONTEXT_COURSE,$course->id); 00031 require_capability('mod/assignment:view',$context); 00032 00033 // various strings 00034 $str = new stdClass; 00035 $str->assignments = get_string("modulenameplural", "assignment"); 00036 $str->duedate = get_string('duedate','assignment'); 00037 $str->duedateno = get_string('duedateno','assignment'); 00038 $str->editmysubmission = get_string('editmysubmission','assignment'); 00039 $str->emptysubmission = get_string('emptysubmission','assignment'); 00040 $str->noassignments = get_string('noassignments','assignment'); 00041 $str->onlinetext = get_string('typeonline','assignment'); 00042 $str->submitted = get_string('submitted','assignment'); 00043 00044 $PAGE->navbar->add($str->assignments, new moodle_url('/mod/assignment/index.php', array('id'=>$id))); 00045 $PAGE->navbar->add($str->onlinetext); 00046 00047 // get all the assignments in the course 00048 $assignments = get_all_instances_in_course('assignment',$course, $USER->id ); 00049 00050 $sections = get_all_sections($course->id); 00051 00052 // array to hold display data 00053 $views = array(); 00054 00055 // loop over assignments finding online ones 00056 foreach( $assignments as $assignment ) { 00057 // only interested in online assignments 00058 if ($assignment->assignmenttype != 'online') { 00059 continue; 00060 } 00061 00062 // check we are allowed to view this 00063 $context = get_context_instance(CONTEXT_MODULE, $assignment->coursemodule); 00064 if (!has_capability('mod/assignment:view',$context)) { 00065 continue; 00066 } 00067 00068 // create instance of assignment class to get 00069 // submitted assignments 00070 $onlineinstance = new assignment_online( $assignment->coursemodule ); 00071 $submitted = $onlineinstance->submittedlink(true); 00072 $submission = $onlineinstance->get_submission(); 00073 00074 // submission (if there is one) 00075 if (empty($submission)) { 00076 $submissiontext = $str->emptysubmission; 00077 if (!empty($assignment->timedue)) { 00078 $submissiondate = "{$str->duedate} ".userdate( $assignment->timedue ); 00079 00080 } else { 00081 $submissiondate = $str->duedateno; 00082 } 00083 00084 } else { 00085 $submissiontext = format_text( $submission->data1, $submission->data2 ); 00086 $submissiondate = "{$str->submitted} ".userdate( $submission->timemodified ); 00087 } 00088 00089 // edit link 00090 $editlink = "<a href=\"{$CFG->wwwroot}/mod/assignment/view.php?". 00091 "id={$assignment->coursemodule}&edit=1\">{$str->editmysubmission}</a>"; 00092 00093 // format options for description 00094 $formatoptions = new stdClass; 00095 $formatoptions->noclean = true; 00096 00097 // object to hold display data for assignment 00098 $view = new stdClass; 00099 00100 // start to build view object 00101 $view->section = get_section_name($course, $sections[$assignment->section]); 00102 00103 $view->name = $assignment->name; 00104 $view->submitted = $submitted; 00105 $view->description = format_module_intro('assignment', $assignment, $assignment->coursemodule); 00106 $view->editlink = $editlink; 00107 $view->submissiontext = $submissiontext; 00108 $view->submissiondate = $submissiondate; 00109 $view->cm = $assignment->coursemodule; 00110 00111 $views[] = $view; 00112 } 00113 00114 //=================== 00115 // DISPLAY 00116 //=================== 00117 00118 $PAGE->set_title($str->assignments); 00119 echo $OUTPUT->header(); 00120 00121 foreach ($views as $view) { 00122 echo $OUTPUT->container_start('clearfix generalbox assignment'); 00123 00124 // info bit 00125 echo $OUTPUT->heading("$view->section - $view->name", 3, 'mdl-left'); 00126 if (!empty($view->submitted)) { 00127 echo '<div class="reportlink">'.$view->submitted.'</div>'; 00128 } 00129 00130 // description part 00131 echo '<div class="description">'.$view->description.'</div>'; 00132 00133 //submission part 00134 echo $OUTPUT->container_start('generalbox submission'); 00135 echo '<div class="submissiondate">'.$view->submissiondate.'</div>'; 00136 echo "<p class='no-overflow'>$view->submissiontext</p>\n"; 00137 echo "<p>$view->editlink</p>\n"; 00138 echo $OUTPUT->container_end(); 00139 00140 // feedback part 00141 $onlineinstance = new assignment_online( $view->cm ); 00142 $onlineinstance->view_feedback(); 00143 00144 echo $OUTPUT->container_end(); 00145 } 00146 00147 echo $OUTPUT->footer();