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 :  /nginx/html/Scheduler/Schedule/ScheduleImportClasses/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /nginx/html/Scheduler/Schedule/ScheduleImportClasses//ImportParsedClasses.phpinc
<?
// Schedule/ScheduleImportClasses/ImportParsedClasses.phpinc
// Import classes into this schedule.

t_Begin(true); // Begin TRACKing ImportParsedClasses.phpinc.

// DELETE existing scheduleclasses (start with a clean slate).
d_Var("\$_SESSION['user']['scheduleId']",$_SESSION['user']['scheduleId']);
d_Var("\$_SESSION['user']",$_SESSION['user']);
$query = "
    DELETE FROM `scheduleclass`
     WHERE scheduleId = ".$_SESSION['user']['scheduleId']."
";
d_Var('scheduleclassDELETE',$query,'q');
$scheduleclassDELETE = query_do($query);
d_Var('$scheduleclassDELETE',$scheduleclassDELETE,'l');

$importedClasses = array();

// Get current session info.
d_V();
unset($f['departmentId']);
require('../Schedule/getSchedule.phpinc');
require('../Schedule/getSession.phpinc');
d_Var('$sessionInfo',$sessionInfo);

// Get departmentIds.
$query = "
    SELECT departmentId
      FROM `department`
     WHERE departmentInactive = 0
  ORDER BY departmentName
";
d_Var('departmentResult',$query,'q');
$departmentResult = query_do($query);
$departmentCount = $GLOBALS['_QUERY']['count'];
$departmentIds = query_to_array($departmentResult);
d_Var('$departmentIds',$departmentIds,'');

// Apply department filters. filter_department_15
foreach ( $departmentIds as $departmentId ) {
	formArray('filter_department',$departmentId);
}
d_V();

// Get classes in import session.
$query = "
    SELECT classId
				 , departmentCode
				 , courseNumber
				 , courseTitle
         , class.YRTR
         , classQId
         , course.courseId
         , classSection
         , classEnr
         , classMax
         , classStartDate
         , classEndDate
         , courseinsttypeId
      FROM `class`
			JOIN `course` on class.courseId = course.courseId
			JOIN `department` on course.departmentId = department.departmentId
     WHERE class.YRTR = '". $sessionInfo['YRTR']."'
       AND department.departmentId IN ( 0";
foreach ( $f['filter_department'] AS $departmentId => $selected ) {
	if ( $selected ) {
		$query .= ", ".$departmentId;
	}
}
$query .= " )
  ORDER BY classQId
";
d_Var('classResult',$query,'q');
$classResult = query_do($query);
$classCount = $GLOBALS['_QUERY']['count'];
d_Var('$classResult',$classResult,'k');

if ( $classCount ) { // Are there any classes to import?
	// Yes. Import the classes.
  query_seek($classResult, 0);
  while ($classInfo = query_row($classResult)) { // Loop thru classes to import.
		$thisCLASS = array();
		$thisCLASS['course'] = $classInfo['departmentCode'].$classInfo['courseNumber'];
		d_Line($thisCLASS['course'].'-'.$classInfo['classSection'],'/b');
		if ( in_array($thisCLASS['course'],$importedClasses) === true ) {
			d_Line('New section: '.$classInfo['classSection'],'a');
			$newSection = true;
		} else {
			$importedClasses[] = $thisCLASS['course'];
			$newSection = false;
		}
		##d_Var('$classInfo',$classInfo,'l');
		$thisCLASS['YRTR'] = $classInfo['YRTR'];
		$thisCLASS['scheduleclassQId'] = $classInfo['classQId'];
		$thisCLASS['courseId'] = $classInfo['courseId'];
		$thisCLASS['scheduleclassEnr'] = $classInfo['classEnr'];
		$thisCLASS['scheduleclassMax'] = $classInfo['classMax'];
		$thisCLASS['scheduleclassStartDate'] = $classInfo['classStartDate'];
		$thisCLASS['scheduleclassEndDate'] = $classInfo['classEndDate'];
		$thisCLASS['courseinsttypeId'] = $classInfo['courseinsttypeId'];
		$thisCLASS['scheduleclassOnline'] = 0; // Begin with not online.
		$thisCLASS['scheduleclassSection'] = $classInfo['classSection'];
		$thisCLASS['meeting'] = array();
		$thisCLASSmeetingIndex = 0;
		$previousCLASSmeetingIndex = 0;
		// Need scheduleId.
		// Get classmeetings. Note: classmeetingOnOff; NULL = neither, 1 = Online, 0 = Off Campus.
		$query = "
				SELECT classmeetingId
						 , classmeetingStartDate
						 , classmeetingEndDate
						 , classmeetingBeginTime
						 , classmeetingEndTime
						 , classmeetingOnOff
						 , roomId
					FROM `classmeeting`
				 WHERE classId = ".$classInfo['classId']."
			ORDER BY classmeetingStartDate
		";
		//d_Var('classmeetingResult',$query,'q');
		$classmeetingResult = query_do($query);
		$classmeetingCount = $GLOBALS['_QUERY']['count'];
		##d_Var('$classmeetingResult',$classmeetingResult,'');
		if ( $classmeetingCount ) { // Are there any classmeetings?
			
			query_seek($classmeetingResult, 0);
			$thisClassMeetingIdentifier = '';
			$previousClassMeetingIdentifier = '_';
			while ($classmeetingInfo = query_row($classmeetingResult)) { // Loop thru classmeeting.
				##d_Var('$thisCLASSmeetingIndex',$thisCLASSmeetingIndex,'/a');
				$thisCLASS['meeting'][$thisCLASSmeetingIndex] = array();
				$thisCLASS['meeting'][$thisCLASSmeetingIndex]['days'] = array();
				$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'] = array();
				$thisCLASS['meeting'][$thisCLASSmeetingIndex]['instructors'] = array();
				$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingStartDate'] = $classmeetingInfo['classmeetingStartDate'];
				$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingEndDate'] = $classmeetingInfo['classmeetingEndDate'];
				$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingBeginTime'] = $classmeetingInfo['classmeetingBeginTime'];
				$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingEndTime'] = $classmeetingInfo['classmeetingEndTime'];
				// Note: classmeetingOnOff; NULL = neither (on campus), 1 = Online, 0 = Off Campus.
				d_Var("\$classmeetingInfo['classmeetingOnOff']",$classmeetingInfo['classmeetingOnOff']);
				if ( $classmeetingInfo['classmeetingOnOff'] == 1 ) { // Is the meeting online?
					$thisCLASS['scheduleclassOnline'] = 1; // The class is online.
					$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus'] = 'NULL';
				} elseif ( !is_null($classmeetingInfo['classmeetingOnOff']) && $classmeetingInfo['classmeetingOnOff'] == 0 ) { // Is this meeting off campus?
					$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus'] = 0; // off campus
				} else {
					$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus'] = 1; // on campus
				}
				##d_Var("\$thisCLASS['scheduleclassOnline']",$thisCLASS['scheduleclassOnline']);
				##d_Var("\$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus']",$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus']);
				$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][] = $classmeetingInfo['roomId'];
				##d_Var("\$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms']",$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'],'');
				// Need scheduleclassId on INSERT
				// Get days.
				$query = "
						SELECT classmeetingId
								 , weekdayId
							FROM `classmeetingweekday`
						 WHERE classmeetingId = ".$classmeetingInfo['classmeetingId']."
				";
				//d_Var('classmeetingweekdayResult',$query,'q');
				$classmeetingweekdayResult = query_do($query);
				$classmeetingweekdayCount = $GLOBALS['_QUERY']['count'];
				//d_Var('$classmeetingweekdayResult',$classmeetingweekdayResult);
				if ( $classmeetingweekdayCount ) {
					query_seek($classmeetingweekdayResult, 0);
					while ($classmeetingweekdayInfo = query_row($classmeetingweekdayResult)) {
						$thisCLASS['meeting'][$thisCLASSmeetingIndex]['days'][] = $classmeetingweekdayInfo['weekdayId'];
					}
				}
				// Get instructors.
				$query = "
						SELECT classmeetingId
								 , userId
							FROM `classmeetinginstructor`
						 WHERE classmeetingId = ".$classmeetingInfo['classmeetingId']."
				";
				//d_Var('classmeetinginstructorResult',$query,'q');
				$classmeetinginstructorResult = query_do($query);
				$classmeetinginstructorCount = $GLOBALS['_QUERY']['count'];
				//d_Var('$classmeetinginstructorResult',$classmeetinginstructorResult);
				if ( $classmeetinginstructorCount ) {
					query_seek($classmeetinginstructorResult, 0);
					while ($classmeetinginstructorInfo = query_row($classmeetinginstructorResult)) {
						$thisCLASS['meeting'][$thisCLASSmeetingIndex]['instructors'][] = $classmeetinginstructorInfo['userId'];
					}
				}
				// Is this class meeting the same as ANY previous class meeting.
				
				if ( $thisCLASSmeetingIndex > 0 ) { // Are there previous meetings?
					$thisClassMeetingIdentifier = 'StartDate:'.$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingStartDate']
																			. '_EndDate:'.$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingEndDate']
																			. '_BeginTime:'.$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingBeginTime']
																			. '_EndTime:'.$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingEndTime']
					;
					$thisClassMeetingIdentifier .= '_days:';
					$prefix = '';
					foreach ($thisCLASS['meeting'][$thisCLASSmeetingIndex]['days'] as $weekdayId ) {
						$thisClassMeetingIdentifier .= $prefix.$weekdayId;
						$prefix = ',';
					}
					$thisClassMeetingIdentifier .= '_instructors:';
					$prefix = '';
					foreach ($thisCLASS['meeting'][$thisCLASSmeetingIndex]['instructors'] as $userId ) {
						$thisClassMeetingIdentifier .= $prefix.$userId;
						$prefix = ',';
					}
					##d_Var('$previousCLASSmeetingIndex',$previousCLASSmeetingIndex,'');
					##d_Var('thisCLASSmeetingIndex',$thisCLASSmeetingIndex,'');
					$newMeeting = false;
					for ( $i=0; $i < $thisCLASSmeetingIndex; $i++ ) { // Loop thru previous meetings.
						##d_Line('Previous meeting: '.$i,'/a');
						$previousClassMeetingIdentifier = 'StartDate:'.$thisCLASS['meeting'][$i]['scheduleclassmeetingStartDate']
																						. '_EndDate:'.$thisCLASS['meeting'][$i]['scheduleclassmeetingEndDate']
																						. '_BeginTime:'.$thisCLASS['meeting'][$i]['scheduleclassmeetingBeginTime']
																						. '_EndTime:'.$thisCLASS['meeting'][$i]['scheduleclassmeetingEndTime'];
						$previousClassMeetingIdentifier .= '_days:';
						$prefix = '';
						foreach ($thisCLASS['meeting'][$i]['days'] as $weekdayId ) {
							$previousClassMeetingIdentifier .= $prefix.$weekdayId;
							$prefix = ',';
						}
						$previousClassMeetingIdentifier .= '_instructors:';
						$prefix = '';
						foreach ($thisCLASS['meeting'][$i]['instructors'] as $userId ) {
							$previousClassMeetingIdentifier .= $prefix.$userId;
							$prefix = ',';
						}
						
						//if ( $thisCLASS['scheduleclassQId'] == '000744' ) {
							##d_Var('thisClassMeetingIdentifier',$thisClassMeetingIdentifier,'');
							##d_Var('previousClassMeetingIdentifier',$previousClassMeetingIdentifier,'');
							if ($thisClassMeetingIdentifier == $previousClassMeetingIdentifier) {
								##d_Line('Same','w');
							} else {
								##d_Line('New','a');
							}
						//}
						if ($thisClassMeetingIdentifier == $previousClassMeetingIdentifier) { // Does this match a previous meeting?
							$newMeeting = false;
							break;
							//$thisCLASSmeetingIndex--;
						} else { // Does this match a previous meeting?
							// No, keep meeting and continue to next one.
							$newMeeting = true;
						} // Does this match a previous meeting?
					} // Loop thru previous meetings.
					##d_Var('$newMeeting',$newMeeting,'a');
					if ( $newMeeting ) {
							$previousCLASSmeetingIndex = $thisCLASSmeetingIndex;
							$thisCLASSmeetingIndex++;
							##d_Var('Meeting does not match $previousCLASSmeetingIndex',$previousCLASSmeetingIndex,'');
							##d_Var('Meeting does not match $thisCLASSmeetingIndex',$thisCLASSmeetingIndex,'');
					} else {
							// Yes, just add thisCLass room to previous rooms.
							##d_Line('Meeting matches','');
							##d_Var("\$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][0]",$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][0],'');
							##d_Var("\$thisCLASS['meeting'][$i]['rooms']",$thisCLASS['meeting'][$i]['rooms'],'');
							if ( in_array($thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][0],$thisCLASS['meeting'][$i]['rooms']) === false ) {
								##d_line('Add room','a');
								$thisCLASS['meeting'][$i]['rooms'][] = $thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][0];
								##d_Var("\$thisCLASS['meeting'][$i]['rooms']",$thisCLASS['meeting'][$i]['rooms'],'');
							} else {
								##d_Line('Room in array.','w');
							}
							##d_Var('$previousCLASSmeetingIndex',$previousCLASSmeetingIndex,'');
							##d_Var('$thisCLASSmeetingIndex',$thisCLASSmeetingIndex,'');
							unset($thisCLASS['meeting'][$thisCLASSmeetingIndex]);						
					}
				} else {
					##d_Line('No previous meeting, meeting added','w');
					$previousCLASSmeetingIndex = $thisCLASSmeetingIndex;
					$thisCLASSmeetingIndex++;
					##d_Var('No previous meeting $previousCLASSmeetingIndex',$previousCLASSmeetingIndex,'');
					##d_Var('No previous meeting $thisCLASSmeetingIndex',$thisCLASSmeetingIndex,'');
				} // Are there previous meetings?
			} // Loop thru classmeeting.
		} // Are there any classmeetings?
		
		// INSERT $thisCLASS
		d_Var("\$thisCLASS['scheduleclassSection']",$thisCLASS['scheduleclassSection']);
		d_Var('$thisCLASS',$thisCLASS,'');
		@d_Var('$thisClassMeetingIdentifier',$thisClassMeetingIdentifier);
		d_Var('$newSection',$newSection,'a');
		if ( $newSection ) { // Is this a new section of a class?
			// Yes, see if thisCLASS matches existing scheduleclass.
			require('Schedule/ScheduleImportClasses/ImportParsedClasses_MatchesExistingSection.phpinc'); // Returns $newClass.
		} else {
			$newClass = true;
		}
		d_Var('$newClass',$newClass,'a');
		$forceINSERT = false;
		#$forceINSERT = true; // ***** UNCOMMENT to force $newClass.
		if ( $forceINSERT || $newClass ) { // Is this a new class?
			// Yes, INSERT the new class.
			// INSERT scheduleclass.
			require('Schedule/ScheduleImportClasses/InsertNewClass.phpinc');
		} else { // Is this a new class?
			// No, INSERT the scheduleclassSection into scheduleclasssection for the existing class.
			d_Var("\$f['scheduleclassId']",$f['scheduleclassId'],'a');
			d_Var("\$thisCLASS['scheduleclassSection']",$thisCLASS['scheduleclassSection'],'a');
			// INSERT the scheduleclasssection.
			$query = "
				INSERT INTO `scheduleclasssection` (
						scheduleclassId
					, scheduleclassSection
				) VALUES (
						".$f['scheduleclassId']."
					, '".query_safe($thisCLASS['scheduleclassSection'])."'
				)
			";
			d_Var('scheduleclasssectionINSERT',$query,'q');
			$scheduleclasssectionINSERT = query_do($query);
			d_Var('$scheduleclasssectionINSERT',$scheduleclasssectionINSERT,'l');
		} // Is this a new class?
		
  } // Loop thru classes to import.
} // Are there any classes to import?

#d_On();
#pageFooter();

// listClean($list, $separator=',')
// Returns the list sorted, with only unique elemants, and without any empty elements.
//       $list = the list to parse.
//  $separator = the list separator. Default is a comma ','.
function listClean($list, $separator=',') {
  $listClean = listSort(listUnique(listNonEmpty($list,false,$separator),$separator));
  return $listClean;
}
t_End(); // End TRACKing ImportParsedClasses.phpinc.
?>

Anon7 - 2022
AnonSec Team