-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpartialupgrade-example.php
115 lines (108 loc) · 4.2 KB
/
partialupgrade-example.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
<?php
// This file is part of Moodle - http://moodle.org/
//
// 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/>.
/**
* Example script, showing how it is possible to only do a part-upgrade of the
* attempt data during the main upgrade, and then finish the job off later.
*
* If you want to use this facility, then you need to:
*
* 1. Rename this script to partialupgrade.php.
* 2. Look at the various example functions below for controlling the upgrade,
* chooose one you like, and un-comment it. Alternatively, write your own
* custom function.
* 3. Use the List quizzes and attempts options in this plugin, which should now
* display updated information.
* 4. Once you are sure that works, you can proceed with the upgrade as usual.
*
* @package local
* @subpackage qeupgradehelper
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* This is a very simple example that just uses a hard-coded array to control
* which attempts are upgraded.
*
* @return array of quiz ids that are the ones to upgrade during the main
* upgrade from 2.0 to 2.1. Attempts at other quizzes are left alone, you will
* have to take steps to upgrade them yourself using the facilities provided by
* this plugin.
*/
//function local_qeupgradehelper_get_quizzes_to_upgrade() {
// return array(1, 2, 3);
//}
/**
* This example function uses a list of quiz ids from a file.
*
* It is currently set to use the file quiz-ids-to-upgrade.txt in the same
* folder as this script, but you can change that if you like.
*
* That file should contain one quiz id per line, with no punctuation. Any line
* that does not look like an integer is ignored.
*
* @return array of quiz ids that are the ones to upgrade during the main
* upgrade from 2.0 to 2.1. Attempts at other quizzes are left alone, you will
* have to take steps to upgrade them yourself using the facilities provided by
* this plugin.
*/
//function local_qeupgradehelper_get_quizzes_to_upgrade() {
// global $CFG;
// $rawids = file($CFG->dirroot . '/local/qeupgradehelper/quiz-ids-to-upgrade.txt');
// $cleanids = array();
// foreach ($rawids as $id) {
// $id = clean_param($id, PARAM_INT);
// if ($id) {
// $cleanids[] = $id;
// }
// }
// return $cleanids;
//}
/**
* This example uses a complex SQL query to decide which attempts to upgrade.
*
* The particular example I have done here is to return the ids of all the quizzes
* in courses that started more recently than one year ago. Of coures, you can
* write any query you like to meet your needs.
*
* Remember that you can use the List quizzes and attempts options option provided
* by this plugin to verify that your query is selecting the quizzes you intend.
*
* @return array of quiz ids that are the ones to upgrade during the main
* upgrade from 2.0 to 2.1. Attempts at other quizzes are left alone, you will
* have to take steps to upgrade them yourself using the facilities provided by
* this plugin.
*/
//function local_qeupgradehelper_get_quizzes_to_upgrade() {
// global $DB;
//
// $quizmoduleid = $DB->get_field('modules', 'id', array('name' => 'quiz'));
//
// $oneyearago = strtotime('-1 year');
//
// return $DB->get_fieldset_sql('
// SELECT DISTINCT quiz.id
//
// FROM {quiz} quiz
// JOIN {course_modules} cm ON cm.module = :quizmoduleid
// AND cm.instance = quiz.id
// JOIN {course} c ON quiz.course = c.id
//
// WHERE c.startdate > :cutoffdate
//
// ORDER BY quiz.id
// ', array('quizmoduleid' => $quizmoduleid, 'cutoffdate' => $oneyearago));
// ");
//}