/** * Verify that previous session data was successfully removed. * @uses $SESSION */ public function test_report_sessions() { global $SESSION; $oldsessiondata = array(); $oldsessiondata['php_report_registrants_by_course/showdr_sck'] = 1; $oldsessiondata['php_report_registrants_by_course/showdr_sdt'] = 1336622400; $oldsessiondata['php_report_registrants_by_course/showdr_edt'] = 1436622400; $oldsessiondata['php_report_registrants_by_course/showdr_eck'] = 1; // Create data representing an old session. foreach ($oldsessiondata as $key => $val) { $SESSION->php_report_default_params[$key] = $val; } $newsessiondata = array(); // Create data representing a new session. $newsessiondata['php_report_registrants_by_course/showdr_sck'] = 1; $newsessiondata['php_report_registrants_by_course/showdr_sdt'] = 1336622401; $newsessiondata['php_report_registrants_by_course/showdr_edt'] = 1436622401; php_report_filtering_set_user_preferences($newsessiondata, true, 'registrants_by_course'); // Verify that the function php_report_filtering_set_user_preferences has removed the previous session data. $this->assertEquals(array_values($SESSION->php_report_default_params), array_values($newsessiondata)); }
/** * Takes submitted filter form data and stores the results as user preferences * * @param stdClass $form_data The submitted form data * @param object $filter_object Set of filters for the report in question * @param string $report_name "Shortname" of the report */ function php_report_filtering_save_preferences($form_data, $filter_object, $report_name, $temporary = false) { global $SESSION; if ($temporary) { //temporary settings php_report_filtering_flag_report_as_overridden($report_name); } //step 1: group the submitted data by potential form element based on naming $per_filter_data = php_report_filtering_get_per_filter_data($filter_object, $form_data); //step 2: validate data $to_delete = array(); $preferences = php_report_filtering_resolve_submitted_preferences($filter_object, $per_filter_data, $to_delete, $report_name); //step 3: set and unset appropriate data php_report_filtering_set_user_preferences($preferences, $temporary, $report_name); php_report_filtering_unset_invalid_user_preferences($to_delete, $temporary); }