. */ include_once 'inc' . DIRECTORY_SEPARATOR . 'class.schedule.php'; include_once 'inc' . DIRECTORY_SEPARATOR . 'class.course.inc'; include_once 'inc' . DIRECTORY_SEPARATOR . 'class.section.php'; include_once 'inc' . DIRECTORY_SEPARATOR . 'class.page.php'; require_once('inc' . DIRECTORY_SEPARATOR . 'schedule_store.inc'); $scripts = array('jQuery', 'jQueryUI', 'qTip2', 'schedInput'); $inputPage = page::page_create('Scheduler', $scripts, FALSE); $schedule_store = FALSE; $sch = FALSE; $errors_fix = FALSE; $school = $inputPage->get_school(); $parent_schedule_id = NULL; if (isset($_REQUEST['s'])) { $schedule_store = schedule_store_init(); $parent_schedule_id = (int)$_REQUEST['s']; $sch = schedule_store_retrieve($schedule_store, $parent_schedule_id); } elseif (!empty($_REQUEST['e'])) { /* * Read an errorful schedule out of $_POST, this $_POST is created * by process.php when the originally sinful user produces bad * data. */ $errors_fix = TRUE; $parent_schedule_id = (int)$_POST['postData']['parent_schedule_id']; } $my_hc = 'var slate_permutate_example_course_id = ' . json_encode(school_example_course_id($inputPage->get_school())) . '; jQuery(document).ready( function() { var class_last = 0; '; if ($sch) { $nclasses = $sch->nclasses_get(); for ($class_key = 0; $class_key < $nclasses; $class_key ++) { $my_hc .= input_class_js($sch->class_get($class_key), ' '); } } elseif ($errors_fix) { foreach ($_POST['postData'] as $course) if (is_array($course)) { $title = ''; if (!empty($course['title'])) $title = $course['title']; if (empty($course['name'])) $my_hc .= ' class_last = add_class();' . PHP_EOL; else $my_hc .= ' class_last = add_class_n(' . json_encode($course['name']) . ', ' . json_encode($title) . ');' . PHP_EOL; foreach ($course as $section) if (is_array($section)) $my_hc .= ' add_section_n(class_last, ' . json_encode($section['letter']) . ', ' . json_encode($section['synonym']) . ', ' . json_encode($section['start']) . ', ' . json_encode($section['end']) . ', ' . json_encode(array('m' => !empty($section['days'][0]), 't' => !empty($section['days'][1]), 'w' => !empty($section['days'][2]), 'h' => !empty($section['days'][3]), 'f' => !empty($section['days'][4]), 's' => !empty($section['days'][5]))) . ', ' . json_encode($section['professor']) . ', ' . json_encode($section['location']) . ', ' . json_encode($section['type']) . ');' . PHP_EOL; $my_hc .= PHP_EOL; } } else { $default_courses = school_default_courses($school); foreach ($default_courses as $default_class) $my_hc .= input_class_js($default_class, ' '); } $my_hc .= ' class_last = add_class();' . PHP_EOL; if ($qtips_always || !isset($_SESSION['saw_qtips'])) { $my_hc .= ' addTips();' . PHP_EOL; $_SESSION['saw_qtips'] = TRUE; } $my_hc .= ' }); '; $inputPage->headcode_add('scheduleInput', $inputPage->script_wrap($my_hc), TRUE); $inputPage->head(); /* * Force a student to choose a school or declare he's a generic * student before displaying the input form. To do this, we need * another variable in $_SESSION: $_SESSION['school_chosen']. */ if ($school && (!empty($_REQUEST['school']) || $school['id'] != 'default')) $_SESSION['school_chosen'] = TRUE; if (!empty($_REQUEST['selectschool']) || $school['id'] == 'default' && !isset($_SESSION['school_chosen'])) { $next_page = 'input.php'; if (isset($_GET['s'])) $next_page .= '?s=' . (int)$_GET['s']; ?>

School Selection

Choose the school you attend from the list below. If you cannot find your school, you may proceed using the generic settings.

showSchools($next_page); $inputPage->foot(); exit; } if (!empty($_REQUEST['selectsemester'])) { ?>

Semester Selection

Choose the semester for which you wish you make a schedule from the list below. If any semester is missing, please let us know.

showSemesters(); $inputPage->foot(); exit; } $inputPage->showSavedScheds($_SESSION); ?>

Welcome to SlatePermutateaddressStudent(', ', '', FALSE); ?>! get_school())): ?> To get started, enter in some a course identifier (e.g., get_school()); ?>) and click the autosuggestion to automatically load available sections for each class. To get started, enter a course number and add some sections to it. Then specify each section's letter/number and what times it meets, add more courses, and click “Find a Schedule”.


/>

Class ID Section Prof Start Time End Time M Tu W Th F S
Advanced

*/ ?>
Detailed Instructions...
showSchoolInstructions(); $inputPage->foot(); function input_class_js(Course $course, $whitespace = ' ') { $title = $course->title_get(); if (empty($title)) $title = ''; $js = $whitespace . 'class_last = add_class_n(' . json_encode($course->getName()) . ', ' . json_encode($title) . ');' . PHP_EOL; $nsections = $course->getnsections(); for ($section_key = $nsections - 1; $section_key >= 0; $section_key --) { $section = $course->getSection($section_key); $meetings = $section->getMeetings(); foreach ($meetings as $meeting) { $js .= $whitespace . 'add_section_n(class_last, ' . json_encode($section->getLetter()) . ', ' . json_encode($section->getSynonym()) . ', ' . json_encode($meeting->getStartTime()) . ', ' . json_encode($meeting->getEndTime()) . ', ' . json_encode(array('m' => $meeting->getDay(0), 't' => $meeting->getDay(1), 'w' => $meeting->getDay(2), 'h' => $meeting->getDay(3), 'f' => $meeting->getDay(4), 's' => $meeting->getDay(5))) . ', ' . json_encode($section->getProf()) . ', ' . json_encode($meeting->getLocation()) . ',' . json_encode($meeting->type_get()) . ');' . PHP_EOL; } } return $js; }