query("SELECT * FROM classes WHERE class_id='{$class_id}'"); $result->fetchInto($row); $res = $db->query("SELECT students.*,users.firstname,users.initial,users.lastname FROM students LEFT JOIN users USING(user_id) WHERE students.class_id='{$class_id}'"); $certs = array(); if($res->numRows()>0){ while($res->fetchInto($s)){ $result=$db->query("SELECT * FROM grades WHERE user_id='$s->user_id' AND class_id='$class_id'"); $result->fetchInto($grade); if ($grade->paid!="y"){ }else{ $attendanceGrade = round($grade->attendance,2); $courseGrade=$grade->finalGrade; if ($courseGrade>93){ $finalGrade = "A"; }elseif(($courseGrade>89)&&($courseGrade<=93)){ $finalGrade="A-"; }elseif(($courseGrade>86)&&($courseGrade<=89)){ $finalGrade="B+"; }elseif(($courseGrade>83)&&($courseGrade<=86)){ $finalGrade="B"; }elseif(($courseGrade>79)&&($courseGrade<=83)){ $finalGrade="B-"; }elseif(($courseGrade>76)&&($courseGrade<=79)){ $finalGrade="C+"; }elseif(($courseGrade>73)&&($courseGrade<=76)){ $finalGrade="C"; }elseif(($courseGrade>69)&&($courseGrade<=73)){ $finalGrade="C-"; }elseif(($courseGrade>66)&&($courseGrade<=69)){ $finalGrade="D+"; }elseif(($courseGrade>=64)&&($courseGrade<=66)){ $finalGrade="D"; }else{ $finalGrade="F"; } $fullname=strtoupper("$s->firstname $s->lastname"); $studentIdentifier=strtoupper($s->student_identifier); $location = $db->getOne("SELECT schoolLocation FROM classes WHERE class_id='$grade->class_id'"); $name=$fullname; $loc = $db->getOne("SELECT schoolLocation FROM classes WHERE class_id='$class_id'"); $location = explode(", ",$loc); if ($location[1]=="CO"){ $template="CO"; }elseif($location[1]=="AX"){ $template="AZ"; }elseif($location[1]=="CA"){ $template="CA"; } elseif($location[1]=="WA"){ $template="WA"; } elseif($location[1]=="OH"){ $template="OH"; } elseif($location[1]=="TX"){ $template="TX"; } elseif($location[1]=="NV"){ $template="NV"; } $grades=array(); $grades["finalGrade"] = $finalGrade; $grades["attendance"]=$attendanceGrade." %"; $completedDate = $db->getOne("SELECT endDate FROM classes WHERE class_id='$grade->class_id'"); $filename=generateTranscript($name,$studentIdentifier,$template,$grades,$location,$completedDate); $newname = '../images/temp/'.$s->firstname.'_'.$s->initial.'_'.$s->lastname.'.jpg'; rename('../images/temp/'.$filename.'.jpg',$newname); array_push($certs,$newname); } } } $res->free(); //if true, good; if false, zip creation failed $result = create_zip($certs,'../zips/transcripts.zip',true); garbageCollection(); if($result){ $output = "../zips/transcripts.zip"; $file_name = basename($output); header("Content-Type: application/zip"); header("Content-Disposition: attachment; filename=transcripts.zip"); header("Content-Length: " . filesize($output)); readfile($output); exit; }else{ include('inc/head.php'); print<<Error

An error occured while trying to create the zip file. Either the class is still in session, or the class is empty, or there are no qualifying students.

Go back.

eof; include('inc/foot.php'); } /* creates a compressed zip file */ function create_zip($files = array(),$destination = '',$overwrite = false) { if(file_exists($destination) && !$overwrite) { return false; } $valid_files = array(); if(is_array($files)) { foreach($files as $file) { if(file_exists($file)) { $valid_files[] = $file; }else{ echo $file.' does not exist'; } } } //if we have good files... if(count($valid_files)) { //create the archive $zip = new ZipArchive(); if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) { return false; } //add the files foreach($valid_files as $file) { $zip->addFile($file,$file); } //debug //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status; //close the zip -- done! $zip->close(); //check to make sure the file exists return file_exists($destination); } else { return false; } } ?>