/instr_viewSubmissions.php

https://github.com/diskArbitrationDaemon/cs411 · PHP · 140 lines · 111 code · 19 blank · 10 comment · 47 complexity · b542c3e6c8c3b1fe08fa790e10421e95 MD5 · raw file

  1. <?php
  2. include ('includes/mysqlInstrLogin.php');
  3. include ('includes/auth.php');
  4. if (!empty($_GET['AssnID'])){
  5. $assnID = $_GET['AssnID'];
  6. } else if (!empty($_POST['assnID'])){
  7. $assnID = $_POST['assnID'];
  8. }
  9. $query = "SELECT * FROM Assignment as a, Course as c, Teaches as t, Instructor as i WHERE
  10. i.InstructorID='$_SESSION[username]' AND
  11. t.InstructorID=i.InstructorID AND
  12. a.CourseID=c.courseID AND
  13. t.courseID=c.courseID AND
  14. a.assnID='" . $assnID ."'";
  15. $result = mysql_query($query);
  16. if (mysql_errno()) print(mysql_error());
  17. //print_r($_POST);
  18. //print("Mode: ". $_POST['mode']);
  19. //print_r($_GET);
  20. if (mysql_num_rows($result)){
  21. //list all submissions
  22. if (!empty($_GET['mode']) && $_GET['mode'] == "ListFiles"){
  23. $query = "SELECT * FROM submission WHERE AssnID='".$_GET['AssnID']."' AND StudentID='".$_GET['StudentID']."'";
  24. $result = mysql_query($query);
  25. //there should be only one result
  26. if (mysql_errno()) die ("Error finding submission. " . mysql_error());
  27. if (mysql_num_rows($result) == 0) die ("No submission found.");
  28. $row = mysql_fetch_array($result);
  29. $directory = $row['Files'];
  30. $handler = opendir($_SERVER['DOCUMENT_ROOT'] ."/cs411/". $directory);
  31. $files = array();
  32. while($file = readdir($handler)){
  33. if ($file != "." && $file != "..") $files[] = $file;
  34. }
  35. closedir($handler);
  36. //$files contains all the files in this directory. list them in a table.
  37. print ("<table border=0>");
  38. print("<tr><td width=300><input type=radio name=viewOption value=download> Download checked files </td></tr>");
  39. print("<tr><td width=300><input type=radio name=viewOption value=display> Display checked files in plain text</td></tr>");
  40. if (file_exists("$directory/Feedback.txt")){
  41. print("<tr><td width=300><input type=radio name=viewOption value=existing> View existing feedback file </td></tr>");
  42. }
  43. print("<tr><td height=10></td></tr>");
  44. if (count($files) == 0){
  45. $fullDir = $_SERVER['DOCUMENT_ROOT'] ."/cs411/Submissions/". $directory;
  46. print("<tr><td> There are no files found for this submission. $fullDir </td></tr>");
  47. }
  48. for ($i = 0; $i < count($files); $i++){
  49. //don't display the feedback file
  50. //escape files with __
  51. if ($files[$i] != "Feedback.txt" || preg_match("\\^__", $files[$i], $matches)) print ("<tr><td width=300><input type=checkbox name=files[] value=\"$directory/$files[$i]\">$files[$i] </td></tr>");
  52. }
  53. print ("<tr><td><input type=submit value=submit></td></tr>");
  54. print("<input type=hidden name=mode value=viewFiles>");
  55. print("<input type=hidden name=assnID value=".$_GET['AssnID'].">");
  56. print("<input type=hidden name=directory value=\"$directory\">");
  57. print("</table>");
  58. //list a particular submission
  59. } else if (!empty($_POST['mode']) && $_POST['mode'] == "viewFiles"){
  60. //print_r ($_POST['viewOption']);
  61. if (!empty($_POST['files'])) $files = $_POST['files'];
  62. $viewOption = $_POST['viewOption'];
  63. if ($viewOption == "display" || $viewOption == "existing"){
  64. $output = "";
  65. $rows = 0;
  66. if ($viewOption == "display"){
  67. foreach ($files as $key => $fileName){
  68. $lines = file($fileName);
  69. $output = $output . "####################################################\n";
  70. $output = $output . "\n$fileName\n\n";
  71. $output = $output . "####################################################\n\n\n";
  72. $rows +=7;
  73. foreach ($lines as $lineNum =>$line){
  74. $output = $output."# $lineNum\t$line";
  75. $rows++;
  76. }
  77. $output = $output. "\n\n\n\n\n";
  78. $rows += 6;
  79. }
  80. $output = trim($output);
  81. $rows -= 6;
  82. } else if ($viewOption == "existing"){
  83. $lines = file($_POST['directory']."/Feedback.txt");
  84. foreach ($lines as $lineNum =>$line){
  85. $output = $output.$line;
  86. $rows++;
  87. }
  88. }
  89. print("<form name=textarea action=\"instr_download.php?action=SaveFeedback\" method=Post>");
  90. print ("<textarea name=feedback rows=$rows cols=100>$output</textarea>");
  91. print ("<input type=submit value=\"Save changes as comments\">");
  92. print ("<input type=hidden name=fileName value=\"$_POST[directory]/Feedback.txt\">");
  93. print ("<input type=hidden name=assnID value=$assnID>");
  94. print("</form>");
  95. } else if ($viewOption == "download"){
  96. foreach ($files as $key => $fileName){
  97. print ("<a href=\"instr_download.php?action=DownloadFile&File=$fileName\">$fileName</a><br>");
  98. $_SESSION[$fileName] = $assnID;
  99. }
  100. }
  101. } else if ($_GET['mode'] == "ListAllSubmissions") {
  102. $assnID = $_GET['AssnID'];
  103. $query = "SELECT AssnName FROM Assignment WHERE AssnID=$assnID";
  104. $result = mysql_query($query);
  105. $row = mysql_fetch_array($result);
  106. $assnName = $row['AssnName'];
  107. $query = "SELECT StudentID FROM Submission WHERE AssnID=$assnID";
  108. $result = mysql_query($query);
  109. if (mysql_errno() > 0) print("Mysql error: " . mysql_error());
  110. print("Submissions for <a href=\"instr_assignment.html?AssnID=$assnID\">$assnName</a><br><br>");
  111. while($row = mysql_fetch_array($result)){
  112. print "<a href=\"instr_viewSubmissions.html?AssnID=$_GET[AssnID]&StudentID=$row[StudentID]\">$row[StudentID]</a><br>";
  113. print("\n<br>\n");
  114. }
  115. } else {
  116. print ("Invalid mode: ". $_GET['mode']);
  117. }
  118. } else {
  119. print ("Not authorized.");
  120. }
  121. ?>