-
Notifications
You must be signed in to change notification settings - Fork 1
/
config_form.php
96 lines (65 loc) · 3.21 KB
/
config_form.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
<?php
require_once("$CFG->libdir/formslib.php");
require_once($CFG->dirroot . '/config.php');
require_once($CFG->libdir . '/adminlib.php');
require_once($CFG->dirroot . '/local/report_config/locallib.php');
require_once($CFG->dirroot . '/local/report_config/config_form.php');
require_once($CFG->dirroot . '/report/unasus/locallib.php');
$categoryid = required_param('categoryid', PARAM_INT);
$context = context_coursecat::instance($categoryid);
$base_url = new moodle_url("/local/report_config/index.php", array('categoryid' => $categoryid));
$PAGE->set_url($base_url);
$PAGE->set_context($context);
$PAGE->set_pagelayout('standard');
$PAGE->set_title(get_string('pluginname', 'local_report_config'));
$PAGE->set_heading(get_string('pluginname', 'local_report_config'));
require_login();
class Config_form extends moodleform {
private $dados = array();
public function definition() {
global $DB;
$categoryid = required_param('categoryid', PARAM_INT);
$atividades_curso = get_activities_courses();
$mform = $this->_form;
$settings = $DB->get_records('activities_course_config', array('categoryid' => $categoryid));
$activities_module = array();
// passa por todos os cursos ($id_course, $activities)
foreach ($atividades_curso as $id_course => $activities){
// passa por todas as atividades ($activities) de um curso ($id_course)
foreach ($activities as $activity){
$mform->addElement('html', '<div>');
if(!isset($activities_module[$id_course])){
$mform->addElement('html', '<h4>');
$activities_module[$id_course][] = $mform->addElement('html', $activity->course_name);
$mform->addElement('html', '</h4>');
$mform->setType('course_name', PARAM_TEXT);
}
$name = $id_course . '-' . $activity->module_id . '-' . $activity->id;
$mform->addElement('html', '</div>');
$activities_module[$id_course][] = $mform->addElement('checkbox', $name, $activity->name);
$mform->setType($name, PARAM_ALPHANUM);
// Se ainda não há configuração para o relatório, o default são todas atividades selecionadas
if(empty($settings)) {
$mform->setDefault($name, true);
} else {
foreach($settings as $config){
$mform->setDefault($name,( ($config->moduleid != $activity->module_id)
or ($config->activityid != $activity->id)) ) ;
if ( (($config->moduleid == $activity->module_id)
and ($config->activityid == $activity->id) )) {
break;
}
}
}
$this->dados[$id_course][$activity->module_id][$activity->id] = $name;
}
$activities_module = array();
}
$mform->addElement('hidden', 'categoryid', $categoryid);
$mform->setType('categoryid', PARAM_INT);
$this->add_action_buttons();
}
function get_dados() {
return $this->dados;
}
}