Skip to content
Snippets Groups Projects
Commit b7562e74 authored by Elke Kreim's avatar Elke Kreim
Browse files

Replace special characters in filename

parent cab3a230
Branches main
No related tags found
No related merge requests found
...@@ -37,8 +37,6 @@ class exporter { ...@@ -37,8 +37,6 @@ class exporter {
private int $courseid; private int $courseid;
/** @var string Identifier for the evaluation of a course. */ /** @var string Identifier for the evaluation of a course. */
private string $code; private string $code;
/** @var string identifier for the course. */
private string $codereplacement;
/** @var int[] Array of role ids. */ /** @var int[] Array of role ids. */
private array $roles; private array $roles;
/** @var string Name of the file to download. */ /** @var string Name of the file to download. */
...@@ -54,10 +52,9 @@ class exporter { ...@@ -54,10 +52,9 @@ class exporter {
* @param string $codereplacement * @param string $codereplacement
* @param array $roles * @param array $roles
*/ */
public function __construct($courseid=0, $code=null, $codereplacement=null, $roles=[]) { public function __construct($courseid=0, $code=null, $roles=[]) {
$this->courseid = $this->set_courseid($courseid); $this->courseid = $this->set_courseid($courseid);
$this->code = $code; $this->code = $code;
$this->codereplacement = $codereplacement;
$this->roles = $this->set_roles($roles); $this->roles = $this->set_roles($roles);
$this->filename = $this->set_filename(); $this->filename = $this->set_filename();
$this->content = $this->set_content(); $this->content = $this->set_content();
...@@ -97,14 +94,6 @@ class exporter { ...@@ -97,14 +94,6 @@ class exporter {
return \csv_export_writer::print_array($rows, $delimiter, '"', true); return \csv_export_writer::print_array($rows, $delimiter, '"', true);
} }
private function get_base_filename() {
$base = $this->code;
if (!$base) {
$base = str_replace(',', '-', $this->codereplacement);
}
return $base;
}
/** /**
* Create filename. * Create filename.
* *
...@@ -116,8 +105,8 @@ class exporter { ...@@ -116,8 +105,8 @@ class exporter {
*/ */
private function set_filename() { private function set_filename() {
// Use course shortname if no course code is given. // Replace special characters with '-' to create a "clean" filename.
$filename = $this->get_base_filename(); $filename = preg_replace("/[^A-Za-z0-9_-]/", '-', $this->code);
// Extend filename with prefix and timestamp. // Extend filename with prefix and timestamp.
$filename = $this->add_prefix($filename); $filename = $this->add_prefix($filename);
$filename = $this->add_timestamp($filename); $filename = $this->add_timestamp($filename);
......
...@@ -62,10 +62,9 @@ if ($mform->is_cancelled()) { ...@@ -62,10 +62,9 @@ if ($mform->is_cancelled()) {
redirect($returnurl); redirect($returnurl);
} else if ($formdata) { } else if ($formdata) {
$courseid = $formdata->courseid; $courseid = $formdata->courseid;
$code = $formdata->coursecode; $code = $formdata->coursecode ? $formdata->coursecode : $course->shortname;
$codereplacement = $course->shortname;
$roles = $formdata->roles; $roles = $formdata->roles;
$exporter = new exporter($courseid, $code, $codereplacement, $roles); $exporter = new exporter($courseid, $code, $roles);
$exporter->send_file(); $exporter->send_file();
} else { } else {
$mform->set_data($formdata); $mform->set_data($formdata);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment