Merge branch 'MDL-70326-MOODLE_310_STABLE' of https://github.com/durzo/moodle into...
[moodle.git] / question / engine / upgrade / logger.php
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/>.
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  */
27 defined('MOODLE_INTERNAL') || die();
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;
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     }
53     public function set_current_attempt_id($id) {
54         $this->attemptid = $id;
55     }
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     }
71     public function __destruct() {
72         fwrite($this->handle, '</body></html>');
73         fclose($this->handle);
74     }
75 }
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;
87     public function __construct() {
88     }
90     public function log_assumption($description, $quizattemptid = null) {
91     }
93     public function __destruct() {
94     }
95 }