Merge branch 'MDL-70326-MOODLE_310_STABLE' of https://github.com/durzo/moodle into...
[moodle.git] / question / engine / upgrade / logger.php
CommitLineData
0859ff65
TH
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
27defined('MOODLE_INTERNAL') || die();
28
0859ff65
TH
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 */
38class question_engine_assumption_logger {
39 protected $handle;
40 protected $attemptid;
41
42 public function __construct() {
43 global $CFG;
44 make_upload_directory('upgradelogs');
cd300cf3 45 $date = date('Ymd-His');
0859ff65 46 $this->handle = fopen($CFG->dataroot . '/upgradelogs/qe_' .
cd300cf3 47 $date . '.html', 'a');
0859ff65 48 fwrite($this->handle, '<html><head><title>Question engine upgrade assumptions ' .
cd300cf3
TH
49 $date . '</title></head><body><h2>Question engine upgrade assumptions ' .
50 $date . "</h2>\n\n");
0859ff65
TH
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) {
9c197f44
TH
64 $message .= ' (<a href="' . $CFG->wwwroot . '/mod/quiz/review.php?attempt=' .
65 $quizattemptid . '">Review this attempt</a>)';
0859ff65
TH
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}
18ab06ba
TH
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 */
84class 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}