function advise_init_screen
Search API
7.x advise.module | advise_init_screen() |
6.x advise.module | advise_init_screen() |
4.x advise.module | advise_init_screen() |
5.x advise.module | advise_init_screen() |
10 calls to advise_init_screen()
- advise_display_popup_change_track in modules/
advise/ advise.module - advise_display_popup_course_description in modules/
advise/ advise.module - advise_display_popup_group_select in modules/
advise/ advise.module - advise_display_popup_substitute_selected in modules/
advise/ advise.module - advise_display_popup_toolbox_courses in modules/
advise/ advise.toolbox.inc
File
- modules/
advise/ advise.module, line 2456
Code
function advise_init_screen() {
global $degree_plan, $student, $fp, $window_mode, $user, $current_student_id, $screen;
$db = get_global_database_handler();
$faculty_id = $user->cwid;
// Insert our advising vars into the GLOBALS array for easy use later.
advise_init_advising_variables();
$perform_action = trim(addslashes(@$_REQUEST ["perform_action"]));
if (@$_REQUEST ["clear_session"] == "yes") {
//advise_save_advising_variables_to_db();
// reload our advising vars into the GLOBALS array for easy use later.
//$GLOBALS["fp_advising"] = advise_load_advising_variables_from_db($current_student_id, $user->id);
}
// Insert our advising vars into the GLOBALS array for easy use later.
//$GLOBALS["fp_advising"] = advise_load_advising_variables_from_db($current_student_id, $user->id);
$bool_what_if = false;
$csid = $current_student_id;
$cache = @$_SESSION ["cache_fp$csid"];
if (@$GLOBALS ["fp_advising"]["advising_what_if"] == "yes") {
$major_code = @$GLOBALS ["fp_advising"]["what_if_major_code"];
$track_code = @$GLOBALS ["fp_advising"]["what_if_track_code"];
$bool_what_if = true;
$cache = @$_SESSION ["cache_what_if$csid"];
}
$bool_draft = true;
if (@$GLOBALS ["fp_advising"]["advising_load_active"] == "yes") {
// If we are loading from Active, then rebuild the cache as well.
$bool_draft = false;
@$GLOBALS ["fp_advising"]["load_from_cache"] = "no";
}
///////////////////////
/// Disable student data Caching....
//$GLOBALS["load_from_cache"] = "no";
// Attempt to load the course inventory cache...
if ($course_inventory = unserialize(@$_SESSION ["fp_cache_course_inventory"])) {
$GLOBALS ["fp_course_inventory"] = $course_inventory;
}
$bool_loaded = FALSE;
if ($GLOBALS ["fp_advising"]["load_from_cache"] == "yes" && $cache != "" && $fp = unserialize($cache)) {
$bool_loaded = TRUE;
$fp->db = get_global_database_handler();
$student = $fp->student;
if ($student->student_id == "") {
$bool_loaded = FALSE;
}
$degree_plan = $fp->degree_plan;
$student->db = get_global_database_handler();
$degree_plan->db = get_global_database_handler();
}
if (!$bool_loaded) {
$fp = new FlightPath();
$fp->init();
$student = $fp->student;
$degree_plan = $fp->degree_plan;
$GLOBALS ["fp_advising"]["load_from_cache"] = "no";
$bool_loaded = TRUE;
}
// Should we update the USER settings for anything?
if ($GLOBALS ["fp_advising"]["fp_update_user_settings_flag"] != "") {
if (!$db->update_user_settings_from_post($user->id)) {
fp_add_message(t("Unable to update user settings. Please try again later."));
}
}
// If the form has been saved, this token is expected. This protects
// against XSS attacks.
$form_token = md5("advise_display_view" . fp_token());
if ($perform_action == "save_draft") {
if ($_REQUEST ["form_token"] != $form_token) {
die(t("Sorry, but you have encountered an error. A form submission was flagged
as possibly being an invalid or forged submission. This may constitute a bug
in the system. Please report this error to your Systems Administrator."));
}
// Save, then reload the student.
$adv_id_array = $fp->save_advising_session_from_post(0, true);
// Look for hook_save_advising_session()...
invoke_hook("save_advising_session", $adv_id_array);
$bool_draft = TRUE; // load draft, since we just saved it (and changed something)
}
else if ($perform_action == "save_active") {
if ($_REQUEST ["form_token"] != $form_token) {
die(t("Sorry, but you have encountered an error. A form submission was flagged
as possibly being an invalid or forged submission. This may constitute a bug
in the system. Please report this error to your Systems Administrator."));
}
// Save, then go to the history screen.
$adv_id_array = $fp->save_advising_session_from_post(0, false);
// Look for hook_save_advising_session()...
invoke_hook("save_advising_session", $adv_id_array);
// Use an fp_goto command here to go to the History screen
// Serialize the adv_id_array so we can send it along in our fp_goto command...
$adv_id_serialized = serialize($adv_id_array);
fp_goto("history", "adv_id_array_serialized=" . urlencode($adv_id_serialized));
return;
}
// Is the user trying to view "by type" or by year?
if ($GLOBALS ["fp_advising"]["advising_view"] == "type") {
$screen = new AdvisingScreenTypeView("", $fp);
$screen->view = "type";
}
else {
// Default advising view. "View by Year"
$screen = new AdvisingScreen("", $fp);
$screen->view = "year";
}
if (@$_REQUEST ["bool_blank"] == "true" || @$_REQUEST ["blank_degree_id"] != "") {
$screen->bool_blank = TRUE;
}
if ($bool_what_if == true && @$GLOBALS ["fp_advising"]["what_if_major_code"] == "") {
// In other words, we are on the WhatIf tab, but we have not
// selected a major. So, just exit out. We will give the user
// a display_screen later.
return;
}
if (@$GLOBALS ["fp_advising"]["load_from_cache"] != "yes") {
// do not load from cache.... load the student fresh....
/*
$fp = new FlightPath();
$fp->init();
$student = $fp->student;
$degree_plan = $fp->degree_plan;
$GLOBALS["fp_advising"]["load_from_cache"] = "no";
*/
$student->load_student();
$student->load_student_substitutions();
$student->load_unassignments();
// Make sure we assign the freshly-loaded student, and re-establish all of our connections.
$fp->student = $student;
$screen->flightpath = $fp;
$screen->student = $fp->student;
$fp->flag_outdated_substitutions();
$fp->assign_courses_to_semesters(); // bare degree plan. not groups.
$fp->assign_courses_to_groups();
////////////
/*
// Good place to output a serialization, in case we need it for testing.
$student->name = "Test Student2";
$student->student_id = "123457";
$temp = serialize($screen);
file_put_contents(fp_get_files_path() . "/test.txt", $temp);
/////////////*/
}
else {
}
if (@$GLOBALS ["fp_advising"]["save_to_cache"] != "no" && $window_mode != "popup") {
if ($bool_what_if == false) {
// NOT in whatIf mode. Normal.
$_SESSION ["cache_fp$csid"] = serialize($fp);
}
else {
// We are in WhatIf mode.
$_SESSION ["cache_what_if$csid"] = serialize($fp);
}
}
// If we are loading from draft, then load the faculty_id which saved draft last. If we are
// loading fresh, not from draft, then load *any* faculty that saved last.
$use_faculty_id = $faculty_id;
if (!$bool_draft) {
$use_faculty_id = 0;
}
// We shouldn't supply the advising_term_id, so that it will load all terms available.
$fp->load_advising_session_from_database($use_faculty_id, "", $bool_what_if, $bool_draft, 0, $faculty_id);
// Once we have loaded the advising session, we should always try to load
// from draft from then on out.
$GLOBALS ["fp_advising"]["advising_load_active"] = "";
}