function Course::load_course_from_data_string
Search API
7.x Course.php | Course::load_course_from_data_string($str) |
6.x Course.php | Course::load_course_from_data_string($str) |
This will take a data string, as created by the function to_data_string(), and make $this object match the original object. It is a poor man's unserialize. See to_data_string()'s description for a fuller picture of what is going on.
To use:
- $newCourse = new Course();
- $newCourse->load_course_from_data_string($data);
Parameters
string $str:
1 call to Course::load_course_from_data_string()
- Course::load_course_from_data_string_for_requirement_clone in classes/
Course.php - This function uses load_course_from_data_string, but it removes any elements which might interfere with the course object then being used as a requirement. This is used specifically by the FlightPath object, when creating a clone of a repeatable course.
File
- classes/
Course.php, line 720
Class
Code
function load_course_from_data_string($str)
{
$temp = explode("~", $str);
$this->course_id = $temp [0];
$this->load_course($this->course_id);
$this->assigned_to_semester_num = $temp [1];
$this->assigned_to_group_ids_array = fp_explode_assoc($temp [2]);
$this->bool_advised_to_take = (bool) $temp [3];
$this->specified_repeats = $temp [4];
$this->bool_specified_repeat = (bool) $temp [5];
$this->grade = $temp [6];
if (strstr($this->grade, "_pls_")) {
$this->grade = str_replace("_pls_", "+", $this->grade);
}
$this->set_hours_awarded(0, floatval($temp [7]) * 1); // *1 to force numeric, and trim extra zeros.
$this->term_id = $temp [8];
$this->advised_hours = $temp [9] * 1;
$this->bool_transfer = (bool) $temp [10];
// Was this a transfer course?
if ($this->bool_transfer == true)
{
$t_course = new Course($temp [11], true);
$t_course->term_id = $this->term_id;
$this->course_transfer = $t_course;
}
$this->bool_added_course = (bool) $temp [12];
$this->db_advised_courses_id = $temp [13];
$this->random_id = $temp [14];
//$this->bool_substitution_by_degree_array = fp_explode_assoc($temp[15]);
$this->set_degree_details_from_data_array(fp_explode_assoc($temp [15]), "bool_substitution");
// Was this a substitution course?
if (trim($temp [16]) != "")
{
$arr = fp_explode_assoc($temp [16]);
foreach ($arr as $did => $cid) {
$t_course = new Course($cid); // original course requirement.
$t_course->req_by_degree_id = $did;
$this->set_course_substitution($did, $t_course);
}
/*
$temp2 = explode(",", $temp[16]); // contains course_id,req_by_degree_id. Need to split the values up.
$t_course = new Course($temp2[0]); // original course requirement.
$t_course->req_by_degree_id = $temp2[1];
$this->course_substitution = $t_course;
*/
}
$this->db_substitution_id_array = fp_explode_assoc($temp [17]);
$this->min_hours = $temp [18] * 1;
$this->max_hours = $temp [19] * 1;
//$this->bool_substitution_new_from_split = (bool) $temp[20];
$this->set_degree_details_from_data_array(fp_explode_assoc($temp [20]), "bool_substitution_new_from_split");
//$this->bool_substitution_split = (bool) $temp[21];
$this->set_degree_details_from_data_array(fp_explode_assoc($temp [21]), "bool_substitution_split");
// No longer used. Using assigned_to_degree_ids instead.
//$this->bool_has_been_assigned = (bool) $temp[22];
$throw_away = $temp [22]; // throw-away value. Can probably just remove entirely.
$this->display_status = $temp [23];
$this->bool_ghost_hour = (bool) $temp [24];
$this->assigned_to_degree_ids_array = fp_explode_assoc($temp [25]);
$this->req_by_degree_id = intval($temp [26]);
$this->disp_for_group_id = trim($temp [27]);
$this->school_id = trim($temp [28]);
$this->db_grade = trim($temp [29]);
$this->extra_attribs = trim($temp [30]);
$this->unique_id = trim($temp [31]);
}