-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtracker.php
147 lines (128 loc) · 5.18 KB
/
tracker.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
143
144
145
146
147
<?php
// This file is part of the plugin Block Badgeawarder
//
// 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 <http://www.gnu.org/licenses/>.
defined('MOODLE_INTERNAL') || die();
require_once($CFG->libdir . '/weblib.php');
/**
* File containing processor class.
*
* @package block_badgeawarder
* @copyright 2013 Learning Technology Services, www.lts.ie - Lead Developer: Bas Brands
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class block_badgeawarder_tracker {
/**
* @var array columns to display.
*/
protected $columns = array('firstname', 'lastname', 'email', 'badge');
/**
* @var int row number.
*/
protected $rownb = 0;
/**
* @var int chosen output mode.
*/
protected $outputmode;
/**
* @var object output buffer.
*/
protected $buffer;
/**
* Constructor.
*/
public function __construct() {
}
/**
* Finish the output.
*
* @return void
*/
public function finish() {
echo html_writer::end_tag('table');
}
/**
* Output the results.
*
* @param int $awardtotal total courses.
* @param int $accountscreated count of courses created.
* @param int $usersenrolled count of users enrolled.
* @param int $errors count of errors.
* @return void
*/
public function results($awardtotal, $accountscreated, $usersenrolled, $errors) {
$message = array(
get_string('awardtotal', 'block_badgeawarder', $awardtotal),
get_string('accountscreated', 'block_badgeawarder', $accountscreated),
get_string('usersenrolled', 'block_badgeawarder', $usersenrolled),
get_string('awarderrors', 'block_badgeawarder', $errors)
);
$buffer = new progress_trace_buffer(new html_list_progress_trace());
foreach ($message as $msg) {
$buffer->output($msg);
}
$buffer->finished();
}
/**
* Output one more line.
*
* @param int $line line number.
* @param bool $outcome success or not?
* @param array $status array of statuses.
* @param array $data extra data to display.
* @return void
*/
public function output($line, $outcome, $status, $data) {
global $OUTPUT;
$ci = 0;
$this->rownb++;
if (is_array($status)) {
$status = implode(html_writer::empty_tag('br'), $status);
}
if ($outcome) {
$outcome = $OUTPUT->pix_icon('i/valid', '');
} else {
$outcome = $OUTPUT->pix_icon('i/invalid', '');
}
echo html_writer::start_tag('tr', array('class' => 'r' . $this->rownb % 2));
echo html_writer::tag('td', $line, array('class' => 'c' . $ci++));
echo html_writer::tag('td', $outcome, array('class' => 'c' . $ci++));
echo html_writer::tag('td', isset($data['firstname']) ? $data['firstname'] : '', array('class' => 'c' . $ci++));
echo html_writer::tag('td', isset($data['lastname']) ? $data['lastname'] : '', array('class' => 'c' . $ci++));
echo html_writer::tag('td', isset($data['email']) ? $data['email'] : '', array('class' => 'c' . $ci++));
echo html_writer::tag('td', isset($data['badge']) ? $data['badge'] : '', array('class' => 'c' . $ci++));
echo html_writer::tag('td', $status, array('class' => 'c' . $ci++));
echo html_writer::end_tag('tr');
}
/**
* Start the output.
*
* @return void
*/
public function start() {
$ci = 0;
echo html_writer::start_tag('table', array('class' => 'generaltable boxaligncenter flexible-wrap',
'summary' => get_string('awardresult', 'block_badgeawarder')));
echo html_writer::start_tag('tr', array('class' => 'heading r' . $this->rownb));
echo html_writer::tag('th', get_string('csvline', 'block_badgeawarder'),
array('class' => 'c' . $ci++, 'scope' => 'col'));
echo html_writer::tag('th', get_string('result', 'block_badgeawarder'), array('class' => 'c' . $ci++, 'scope' => 'col'));
echo html_writer::tag('th', get_string('firstname'), array('class' => 'c' . $ci++, 'scope' => 'col'));
echo html_writer::tag('th', get_string('lastname'), array('class' => 'c' . $ci++, 'scope' => 'col'));
echo html_writer::tag('th', get_string('email'), array('class' => 'c' . $ci++, 'scope' => 'col'));
echo html_writer::tag('th', get_string('badge', 'block_badgeawarder'), array('class' => 'c' . $ci++, 'scope' => 'col'));
echo html_writer::tag('th', get_string('status'), array('class' => 'c' . $ci++, 'scope' => 'col'));
echo html_writer::end_tag('tr');
}
}