Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
// This file is part of Moodle - http://moodle.org/
3
//
4
// Moodle is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// Moodle is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16
 
17
/**
18
 * Code that deals with logging stuff during the question engine upgrade.
19
 *
20
 * @package    moodlecore
21
 * @subpackage questionengine
22
 * @copyright  2010 The Open University
23
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24
 */
25
 
26
 
27
defined('MOODLE_INTERNAL') || die();
28
 
29
 
30
/**
31
 * This class serves to record all the assumptions that the code had to make
32
 * during the question engine database database upgrade, to facilitate reviewing
33
 * them.
34
 *
35
 * @copyright  2010 The Open University
36
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
37
 */
38
class question_engine_assumption_logger {
39
    protected $handle;
40
    protected $attemptid;
41
 
42
    public function __construct() {
43
        global $CFG;
44
        make_upload_directory('upgradelogs');
45
        $date = date('Ymd-His');
46
        $this->handle = fopen($CFG->dataroot . '/upgradelogs/qe_' .
47
                $date . '.html', 'a');
48
        fwrite($this->handle, '<html><head><title>Question engine upgrade assumptions ' .
49
                $date . '</title></head><body><h2>Question engine upgrade assumptions ' .
50
                $date . "</h2>\n\n");
51
    }
52
 
53
    public function set_current_attempt_id($id) {
54
        $this->attemptid = $id;
55
    }
56
 
57
    public function log_assumption($description, $quizattemptid = null) {
58
        global $CFG;
59
        $message = '<p>' . $description;
60
        if (!$quizattemptid) {
61
            $quizattemptid = $this->attemptid;
62
        }
63
        if ($quizattemptid) {
64
            $message .= ' (<a href="' . $CFG->wwwroot . '/mod/quiz/review.php?attempt=' .
65
                    $quizattemptid . '">Review this attempt</a>)';
66
        }
67
        $message .= "</p>\n";
68
        fwrite($this->handle, $message);
69
    }
70
 
71
    public function __destruct() {
72
        fwrite($this->handle, '</body></html>');
73
        fclose($this->handle);
74
    }
75
}
76
 
77
 
78
/**
79
 * Subclass of question_engine_assumption_logger that does nothing, for testing.
80
 *
81
 * @copyright  2009 The Open University
82
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
83
 */
84
class dummy_question_engine_assumption_logger extends question_engine_assumption_logger {
85
    protected $attemptid;
86
 
87
    public function __construct() {
88
    }
89
 
90
    public function log_assumption($description, $quizattemptid = null) {
91
    }
92
 
93
    public function __destruct() {
94
    }
95
}