-
Notifications
You must be signed in to change notification settings - Fork 0
/
essaydownload_options.php
142 lines (122 loc) · 5.19 KB
/
essaydownload_options.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?php
// This file is part of Moodle - https://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <https://www.gnu.org/licenses/>.
/**
* This file defines the setting form for the essay download report.
*
* @package quiz_essaydownload
* @copyright 2024 Philipp E. Imhof
* @author Philipp E. Imhof
* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
use mod_quiz\local\reports\attempts_report_options;
defined('MOODLE_INTERNAL') || die();
// This work-around is required until Moodle 4.2 is the lowest version we support.
if (class_exists('\mod_quiz\local\reports\attempts_report_options')) {
class_alias('\mod_quiz\local\reports\attempts_report_options', '\quiz_essaydownload_options_parent_class_alias');
} else {
require_once($CFG->dirroot . '/mod/quiz/report/attemptsreport_options.php');
class_alias('\mod_quiz_attempts_report_options', '\quiz_essaydownload_options_parent_class_alias');
}
/**
* Class to store the options for a {@see quiz_essaydownload_report}.
*
* @package quiz_essaydownload
* @copyright 2024 Philipp E. Imhof
* @author Philipp E. Imhof
* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class quiz_essaydownload_options extends quiz_essaydownload_options_parent_class_alias {
/** @var bool whether to include the text response files in the archive */
public $responsetext = true;
/** @var bool whether to include the question text in the archive */
public $questiontext = true;
/** @var bool whether to include attachments (if there are) in the archive */
public $attachments = true;
/** @var string whether to shorten file and path names to workaround a Windows issue */
public $shortennames = false;
/** @var string how to organise the sub folders in the archive (by question or by attempt) */
public $groupby = 'byattempt';
/** @var string whether to have the last name or the first name first */
public $nameordering = 'lastfirst';
/**
* Constructor
*
* @param string $mode which report these options are for
* @param object $quiz the settings for the quiz being reported on
* @param object $cm the course module objects for the quiz being reported on
* @param object $course the course settings for the coures this quiz is in
*/
public function __construct($mode, $quiz, $cm, $course) {
$this->mode = $mode;
$this->quiz = $quiz;
$this->cm = $cm;
$this->course = $course;
}
/**
* Get the current value of the settings to pass to the settings form.
*/
public function get_initial_form_data() {
$toform = new stdClass();
$toform->responsetext = $this->responsetext;
$toform->questiontext = $this->questiontext;
$toform->attachments = $this->attachments;
$toform->shortennames = $this->shortennames;
$toform->groupby = $this->groupby;
$toform->nameordering = $this->nameordering;
return $toform;
}
/**
* Set the fields of this object from the form data.
*
* @param object $fromform data from the settings form
*/
public function setup_from_form_data($fromform): void {
$this->responsetext = $fromform->responsetext;
$this->questiontext = $fromform->questiontext;
$this->attachments = $fromform->attachments;
$this->shortennames = $fromform->shortennames;
$this->groupby = $fromform->groupby;
$this->nameordering = $fromform->nameordering;
}
/**
* Set the fields of this object from the URL parameters.
*/
public function setup_from_params() {
$this->responsetext = optional_param('responsetext', $this->responsetext, PARAM_BOOL);
$this->questiontext = optional_param('questiontext', $this->questiontext, PARAM_BOOL);
$this->attachments = optional_param('attachments', $this->attachments, PARAM_BOOL);
$this->shortennames = optional_param('shortennames', $this->shortennames, PARAM_BOOL);
$this->groupby = optional_param('groupby', $this->groupby, PARAM_ALPHA);
$this->nameordering = optional_param('nameordering', $this->nameordering, PARAM_ALPHA);
}
/**
* Override parent method, because we do not have settings that are backed by
* user-preferences.
*/
public function setup_from_user_preferences() {
}
/**
* Override parent method, because we do not have settings that are backed by
* user-preferences.
*/
public function update_user_preferences() {
}
/**
* Override parent method, because our settings cannot be incompatible.
*/
public function resolve_dependencies() {
}
}