function getStudentReportbyCoursePdf($studentid,$courseid){ global $DB,$USER; $course = $DB->get_record('course', array('id' => $courseid), '*', MUST_EXIST); $modinfo = get_fast_modinfo($course); $mods = $modinfo->get_cms(); $sections = $modinfo->get_section_info_all(); $student= get_complete_user_data(id,$studentid); $stuname=ucfirst($student->firstname); $html=" <h3 >$stuname $course->fullname Report</h3>"; $pdfcreator='<h6 >Created by '.$USER->firstname.' on '.userdate(time()).'</h6>'; $html.=$pdfcreator; $html .= "<table class='generaltable reporttab' id='cours' width='100%'> <thead> <tr> <!--<th style='width: 10%;'>Select</th>--> <th style='width: 20%;'>Topics</th> <th style='width: 20%;'>Completed On</th> <th style='width: 30%;'>Activity</th> <th style='width: 30%;'>Grade</th> <th style='width: 20%;'>Submissions</th> </tr> </thead> <tbody id='cbody'>"; $arr = array(); $main_array = array(); $arr = array(); $main_array = array(); foreach ($sections as $sec) { $main_array[$sec->id] = $sec->name; } $arr = array(); $arr1=array(); foreach ($mods as $mod) { // var_dump($mod); if ($main_array[$mod->section] == "") continue; $arr1[$mod->section][$mod->id] =array("actid"=>$mod->id,"name"=>$mod->modname,"modname"=>get_string($mod->modname),"actname"=>$mod->name); if (array_key_exists($mod->section, $arr)) { $count=$arr[$mod->section][get_string($mod->modname)]['count']; $comp=(int)$arr[$mod->section][get_string($mod->modname)]['completion']+(int)getActStatus($mod->id); $arr[$mod->section][get_string($mod->modname)] = array("actid"=>$mod->id,"name"=>$mod->modname,"modname"=>get_string($mod->modname),"actname"=>$mod->name,"completion"=>$comp,'count'=>++$count); } else { $arr[$mod->section][get_string($mod->modname)] =array("actid"=>$mod->id,"name"=>$mod->modname,"modname"=>get_string($mod->modname),"actname"=>$mod->name,"completion"=>getActStatus($mod->id),"count"=>1); } } // var_dump($arr1); $ptop = ''; $com=0;$tot=0; $ht='';$ht1='';$ht2='';$ht4=''; foreach ($mods as $mod) { $top = $main_array[$mod->section]; if ($main_array[$mod->section] == "") continue; if ($ptop != $mod->section) { $activitycounter=0;$completioncounter=0; foreach ($arr[$mod->section] as $modsec) { // var_dump($modsec); $activitycounter++; $com+=(int)$modsec['completion']; $tot+=(int)$modsec['count']; // $ht.=$modsec['actname']."<hr/>"; if($modsec['completion']==$modsec['count']) $completioncounter++; } foreach ($arr1[$mod->section] as $modsec) { // var_dump($modsec); $ht.=$modsec['actname']."<hr/>"; } foreach ($arr1[$mod->section] as $modsec) { //var_dump($modsec); $actid= $modsec['actid']; $modname=$modsec['name']; if($DB->get_field('course_modules', 'completionexpected', array('course' => $courseid,'id'=>$modsec['actid']))){ $date=$DB->get_field('course_modules', 'completionexpected', array('course' => $courseid,'id'=>$modsec['actid'])); $completionDate=date("d-m-Y",$date);//userdate(); } else{ $completionDate='--'; } $ht4.=$completionDate."<hr/>"; // activity grade $instace= $DB->get_field_sql("SELECT `instance`FROM `mdl_course_modules` WHERE id=$actid"); $grading_info=grade_get_grades($course->id, 'mod', $modname, $instace , $studentid ); // course mod name instance sid $item = $grading_info->items[0]; $grade= $item->grades[$studentid]; $mygrade =round($grade->grade+0,2); // Convert to number. $ht1.=$mygrade."<hr/>"; } foreach ($arr1[$mod->section] as $modsec) { $actid= $modsec['actid']; $modname=$modsec['name']; // activity grade $insid= $DB->get_field_sql("SELECT `instance`FROM `mdl_course_modules` WHERE id=$actid"); if($modname=$modsec['name']=='vpl') $submissions= $DB->get_field_sql("SELECT count(*) as submissions FROM `mdl_vpl_submissions` WHERE vpl=$insid and userid=$studentid" ); if($modname=$modsec['name']=='quiz') $submissions= $DB->get_field_sql("SELECT count(*) as submissions FROM `mdl_quiz_attempts` WHERE quiz=$insid and userid=$studentid" ); $ht2.=$submissions."<hr/>"; } $html .= html_writer::start_tag('tr', array('class' => $course->id)); $html .= "<td style='vertical-align: middle;'>"; $html .= "<span style='color:dimgray;font-weight: bold;'>".$top."</span>"; $html .= html_writer::end_tag('td'); $html .= html_writer::start_tag('td'); $html .=$ht; $ht=''; $html .= html_writer::end_tag('td'); $html .= html_writer::start_tag('td'); $html .=$ht4; $ht4=''; $html .= html_writer::end_tag('td'); $html .= html_writer::start_tag('td'); $html .=$ht1; $ht1=''; $html .= html_writer::end_tag('td'); $html .= html_writer::start_tag('td'); $html .=$ht2; $ht2=''; $html .= html_writer::end_tag('td'); $html .= html_writer::end_tag('tr'); } $ptop = $mod->section; } $html.="</tbody></table>"; //$sta=$com.','.$tot; //$html.="<input type='hidden' id='cstatus' value='$sta'/>"; return $html; }
function get_activities($mods, $main_array) { $arr = array(); foreach ($mods as $mod) { // var_dump($mod); if ($main_array[$mod->section] == "") continue; if (array_key_exists($mod->section, $arr)) { $count=$arr[$mod->section][get_string($mod->modname)]['count']; $comp=(int)$arr[$mod->section][get_string($mod->modname)]['completion']+(int)getActStatus($mod->id); $arr[$mod->section][get_string($mod->modname)] = array("modname"=>get_string($mod->modname),"completion"=>$comp,'count'=>++$count); } else { $arr[$mod->section][get_string($mod->modname)] =array("modname"=>get_string($mod->modname),"completion"=>getActStatus($mod->id),"count"=>1); } } return $arr; }