$options['sortbycategorypath'] = false;
         $options['delimiter'] = $formdata->delimiter_name;
         if (!empty($SESSION->customdata['selectedfields'])) {
             $fields = $SESSION->customdata['selectedfields'];
         } else {
             throw new moodle_exception('emptyfields', 'tool_downloaddata', $returnurl);
         }
         if (!empty($SESSION->customdata['selectedroles'])) {
             $roles = $SESSION->customdata['selectedroles'];
         } else {
             throw new moodle_exception('emptyroles', 'tool_downloaddata', $returnurl);
         }
         $overrides = array();
         if ($options['useoverrides']) {
             try {
                 $overrides = tool_downloaddata_process_overrides($formdata->overrides);
             } catch (Exception $e) {
                 $e->link = $returnurl;
                 throw $e;
             }
         }
         $processor = new tool_downloaddata_processor($options, $fields, $roles, $overrides);
         try {
             $processor->prepare();
         } catch (Exception $e) {
             $e->link = $returnurl;
             throw $e;
         }
         $processor->download();
     }
 }
$delimiters = csv_import_reader::get_delimiter_list();
if (empty($options['delimiter']) || !isset($delimiters[$options['delimiter']])) {
    echo "\n" . get_string('invaliddelimiter', 'tool_downloaddata') . "!\n";
    echo $help;
    die;
}
$overrides = array();
$options['useoverrides'] = $options['useoverrides'] === true || core_text::strtolower($options['useoverrides']) == 'true';
$options['sortbycategorypath'] = $options['sortbycategorypath'] === true || core_text::strtolower($options['sortbycategorypath']) == 'true';
// Emulate admin session.
cron_setup_user();
// Processing fields and override fields.
if (!empty($options['fields'])) {
    $fields = tool_downloaddata_process_fields($options['fields']);
} else {
    echo "\n" . get_string('emptyfields', 'tool_downloaddata') . "!\n";
    echo $help;
    die;
}
if ($options['useoverrides']) {
    if (!empty($options['overrides'])) {
        $overrides = tool_downloaddata_process_overrides($options['overrides']);
    } else {
        echo "\n" . get_string('emptyoverrides', 'tool_downloaddata') . "!\n";
        echo $help;
        die;
    }
}
$processor = new tool_downloaddata_processor($options, $fields, $roles, $overrides);
$processor->prepare();
$processor->download();