Newer
Older
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
<?php
class InitMailqueue extends Migration
{
function description()
{
return 'Creates configs and cronjobs for the mailqueue. You still need to enable it.';
}
function up()
{
//Add table
$query = "CREATE TABLE IF NOT EXISTS `mail_queue_entries` (
`mail_queue_id` varchar(32) NOT NULL,
`mail` text NOT NULL,
`message_id` varchar(32) DEFAULT NULL,
`user_id` varchar(32) DEFAULT NULL,
`tries` int(11) NOT NULL,
`last_try` int(11) NOT NULL DEFAULT '0',
`mkdate` bigint(20) NOT NULL,
`chdate` bigint(20) NOT NULL,
PRIMARY KEY (`mail_queue_id`),
KEY `message_id` (`message_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM";
$statement = DBManager::get()->prepare($query);
$statement->execute();
// Add config entries
$query = "INSERT IGNORE INTO `config`
(`config_id`, `field`, `value`, `is_default`, `type`, `range`, `section`,
`mkdate`, `chdate`, `description`)
VALUES (MD5(:field), :field, :value, 1, :type, 'global', 'global',
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), :description)";
$statement = DBManager::get()->prepare($query);
$statement->execute([
':field' => 'MAILQUEUE_ENABLE',
':value' => "0",
':type' => 'boolean',
':description' => 'Aktiviert bzw. deaktiviert die Mailqueue',
]);
// Add default cron tasks and schedules
$new_job = [
'filename' => 'lib/cronjobs/send_mail_queue.class.php',
'class' => 'SendMailQueueJob',
'priority' => 'normal'
];
$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`)
VALUES (:schedule_id, :task_id, '[]', :priority, 'periodic',
:minute, :hour, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(),
NULL)";
$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'],
]);
}
function down()
{
throw new RuntimeException('down() is not implemented for this migration');