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
|
<?php
class AddOerPostUploadTable extends Migration
{
public function description()
{
return "Adds table to create oer upload reminders and entry to cronjob schedule and task and config option";
}
public function up()
{
$db = DBmanager::Get();
$db->exec("CREATE TABLE IF NOT EXISTS `oer_post_upload` (
`file_ref_id` char(32) CHARACTER SET latin1 COLLATE latin1_bin,
`user_id` char(32) CHARACTER SET latin1 COLLATE latin1_bin,
`reminder_date` int unsigned,
`mkdate` int(11) NOT NULL,
`chdate` int(11) NOT NULL,
PRIMARY KEY (`user_id`, `file_ref_id`)
)");
// Add default cron tasks and schedules
$new_job = [
'filename' => 'lib/cronjobs/remind_oer_upload.class.php',
'class' => RemindOerUpload::class,
'priority' => 'normal',
'minute' => '0',
'hour' => '1',
'active' => '1'
];
$query = "INSERT IGNORE INTO `cronjobs_tasks`
(`task_id`, `filename`, `class`, `active`)
VALUES (:task_id, :filename, :class, 1)";
$task_statement = DBManager::get()->prepare($query);
$query = "INSERT IGNORE INTO `cronjobs_schedules`
(`schedule_id`, `task_id`, `parameters`, `priority`,
`type`, `minute`, `hour`, `mkdate`, `chdate`,
`last_result`, `active`)
VALUES (:schedule_id, :task_id, '[]', :priority, 'periodic',
:minute, :hour, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(),
NULL, :active)";
$schedule_statement = DBManager::get()->prepare($query);
$task_id = md5(uniqid('task', true));
$task_statement->execute([
':task_id' => $task_id,
':filename' => $new_job['filename'],
':class' => $new_job['class'],
]);
$schedule_id = md5(uniqid('schedule', true));
$schedule_statement->execute([
':schedule_id' => $schedule_id,
':task_id' => $task_id,
':priority' => $new_job['priority'],
':hour' => $new_job['hour'],
':minute' => $new_job['minute'],
':active' => $new_job['active']
]);
$query = "INSERT IGNORE INTO `config`
SET `field` = :field,
`value` = :value,
`type` = :type,
`range` = :range,
`section` = :section,
`mkdate` = UNIX_TIMESTAMP(),
`chdate` = UNIX_TIMESTAMP(),
`description` = :description";
$config_statement = DBManager::get()->prepare($query);
$config_statement->execute([
':field' => 'OER_ENABLE_POST_UPLOAD',
':value' => '1',
':type' => 'boolean',
':range' => 'global',
':section' => 'OERCampus',
':description' => 'Post-Upload-Dialog nach Hochladen einer Datei erlauben?',
]);
}
public function down()
{
CronjobTask::deleteBySQL('class = ?', [RemindOerUpload::class]);
$query = "DROP TABLE `oer_post_upload`";
DBManager::get()->exec($query);
$query = "DELETE `config`, `config_values`
FROM `config`
LEFT JOIN `config_values` USING (`field`)
WHERE `field` = 'OER_ENABLE_POST_UPLOAD'";
DBManager::get()->exec($query);
}
}
|