Example #1
0
    /**
     * 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);
}