Files @ 7764183e0891
Branch filter:

Location: SlatePermutate/process.php - annotation

binki
Remove yet another unneeded ?>.
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
8a7d392478a6
8a7d392478a6
8a7d392478a6
8a7d392478a6
27edaecc0d90
f13987338fbf
f13987338fbf
f13987338fbf
f13987338fbf
f13987338fbf
f13987338fbf
8a7d392478a6
5cce14d5f1c2
8a7d392478a6
8a7d392478a6
8a7d392478a6
5cce14d5f1c2
5cce14d5f1c2
5cce14d5f1c2
5cce14d5f1c2
5cce14d5f1c2
5cce14d5f1c2
5cce14d5f1c2
5cce14d5f1c2
5cce14d5f1c2
5cce14d5f1c2
8a7d392478a6
8a7d392478a6
8a7d392478a6
8a7d392478a6
8a7d392478a6
8a7d392478a6
8a7d392478a6
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
27edaecc0d90
8a7d392478a6
<?php

session_start();

include_once 'errors.php';
include_once 'class.schedule.php';
include_once 'class.class.php';
include_once 'class.section.php';

function sortInputs($post){
//	return array_filter($post['postData']); // Remove any null or unset items. Disabled as it kills day stuff, @FIXME and add day unset setting here (==0).
	return $post['postData'];
}


// Converts a 5-element array into a nice string.
// Supports multiple modes, prettiness, and searching for different indicators
function arrayToDays($array, $mode = 'num', $pretty = false, $key = 1) {
	$outString = '';
	switch($mode){
		case 'short':
			$days = array('Mon','Tue','Wed','Thur','Fri');
			break;
		case 'long':
			$days = array('Monday','Tuesday','Wednesday','Thursday','Friday');
			break;
		case 'num':
			$days = array('1','2','3','4','5');
			break;
		default:
			$outString = 'Invalid mode passed to arrayToDays()!';
			return $outString;
	}
	if(count($array) > 1){
		for($i=0; $i<=4; $i++)	{
			if(isset($array[$i]) && $array[$i] == $key){
				$outString .= $days[$i];
				if($pretty)
					$outString .= ', ';
			}
		}
		if($pretty){
			$outString = substr($outString,0,strlen($outString) - 2); // Remove last comma and space
			$outString = substr($outString,0, strrpos( $outString, ' ')) . ' and' . substr($outString, strrpos( $outString, ' '), strlen($outString));
		}
	}
	else {
		for($i=0; $i<=4; $i++)
			if(isset($array[$i]))
				$outString = $days[$i];
	}
	return $outString;
}

function prettyTime($time){
	return substr($time,0,strlen($time)-2) . ":" . substr($time,strlen($time)-2, strlen($time));
}

$DEBUG = false;
if(isset($_GET['debug']))
	$DEBUG = $_GET['debug'];

if(!$DEBUG){

	if(isset($_GET['savedkey'])){
		$savedSched = unserialize($_SESSION['saved'][$_GET['savedkey']]);
                $savedSched->findPossibilities();
		$savedSched->writeoutTables();
	}
	else if(isset($_GET['delsaved'])){
		$_SESSION['saved'][$_GET['delsaved']] = '';
		$_SESSION['saved'] = array_filter($_SESSION['saved']); // Remove null entries
              header( 'Location: input.php' ) ;

	}
	else{
		$allClasses = new Schedule($_POST['postData']['name']);
	
		foreach(sortInputs($_POST) as $class)
		{
			if(is_array($class)) // Skip the schedule name
			{
				$allClasses->addClass($class['name']);
		
				foreach($class as $section)
					if(is_array($section)) // Skip the section name, which isn't a section
					{
				             $allClasses->addSection($class['name'], $section['letter'], $section['start'], $section['end'], arrayToDays($section['days']));
					}
			}
		}
		$allClasses->findPossibilities();
		$allClasses->writeoutTables();
		if(!isset($_SESSION['saved']))
			$_SESSION['saved'] = array();
		array_push ( $_SESSION['saved'], serialize($allClasses));
	}

} else {


	echo '<pre>DEBUG OUTPUT: <br /><br />';
	foreach(sortInputs($_POST) as $class) {
		echo 'Class: ' . $class['name'] . '<br />';
		foreach($class as $section)
			if(is_array($section))
			{
				echo '---- Section that starts at ' . prettyTime($section['start']) . ' and ends at ' . prettyTime($section['end']) . '. This class meets on ';
				echo arrayToDays($section['days'],'long',true) . '.<br />';
			}
		echo '<br />';
	}
	echo '</pre>';


}

?>