danielebarchiesi@4
|
1 <?php
|
danielebarchiesi@4
|
2
|
danielebarchiesi@4
|
3 /**
|
danielebarchiesi@4
|
4 * @file
|
danielebarchiesi@4
|
5 * Rules Scheduler - Installation file.
|
danielebarchiesi@4
|
6 */
|
danielebarchiesi@4
|
7
|
danielebarchiesi@4
|
8 /**
|
danielebarchiesi@4
|
9 * Implements hook_schema().
|
danielebarchiesi@4
|
10 */
|
danielebarchiesi@4
|
11 function rules_scheduler_schema() {
|
danielebarchiesi@4
|
12 $schema['rules_scheduler'] = array(
|
danielebarchiesi@4
|
13 'description' => 'Stores scheduled tasks.',
|
danielebarchiesi@4
|
14 'fields' => array(
|
danielebarchiesi@4
|
15 'tid' => array(
|
danielebarchiesi@4
|
16 'type' => 'serial',
|
danielebarchiesi@4
|
17 'unsigned' => TRUE,
|
danielebarchiesi@4
|
18 'not null' => TRUE,
|
danielebarchiesi@4
|
19 'description' => "The scheduled task's id.",
|
danielebarchiesi@4
|
20 ),
|
danielebarchiesi@4
|
21 'config' => array(
|
danielebarchiesi@4
|
22 'type' => 'varchar',
|
danielebarchiesi@4
|
23 'length' => '64',
|
danielebarchiesi@4
|
24 'default' => '',
|
danielebarchiesi@4
|
25 'not null' => TRUE,
|
danielebarchiesi@4
|
26 'description' => "The scheduled configuration's name.",
|
danielebarchiesi@4
|
27 ),
|
danielebarchiesi@4
|
28 'date' => array(
|
danielebarchiesi@4
|
29 'description' => 'The Unix timestamp of when the task is to be scheduled.',
|
danielebarchiesi@4
|
30 'type' => 'int',
|
danielebarchiesi@4
|
31 'not null' => TRUE,
|
danielebarchiesi@4
|
32 ),
|
danielebarchiesi@4
|
33 'data' => array(
|
danielebarchiesi@4
|
34 'type' => 'text',
|
danielebarchiesi@4
|
35 'not null' => FALSE,
|
danielebarchiesi@4
|
36 'serialize' => TRUE,
|
danielebarchiesi@4
|
37 'description' => 'The whole, serialized evaluation data.',
|
danielebarchiesi@4
|
38 ),
|
danielebarchiesi@4
|
39 'identifier' => array(
|
danielebarchiesi@4
|
40 'type' => 'varchar',
|
danielebarchiesi@4
|
41 'length' => '255',
|
danielebarchiesi@4
|
42 'default' => '',
|
danielebarchiesi@4
|
43 'not null' => FALSE,
|
danielebarchiesi@4
|
44 'description' => 'The user defined string identifying this task.',
|
danielebarchiesi@4
|
45 ),
|
danielebarchiesi@4
|
46 'handler' => array(
|
danielebarchiesi@4
|
47 'type' => 'varchar',
|
danielebarchiesi@4
|
48 'length' => '255',
|
danielebarchiesi@4
|
49 'not null' => FALSE,
|
danielebarchiesi@4
|
50 'description' => 'The fully qualified class name of a the queue item handler.',
|
danielebarchiesi@4
|
51 ),
|
danielebarchiesi@4
|
52 ),
|
danielebarchiesi@4
|
53 'primary key' => array('tid'),
|
danielebarchiesi@4
|
54 'indexes' => array(
|
danielebarchiesi@4
|
55 'date' => array('date'),
|
danielebarchiesi@4
|
56 ),
|
danielebarchiesi@4
|
57 'unique key' => array(
|
danielebarchiesi@4
|
58 'id' => array('config', 'identifier'),
|
danielebarchiesi@4
|
59 ),
|
danielebarchiesi@4
|
60 );
|
danielebarchiesi@4
|
61 return $schema;
|
danielebarchiesi@4
|
62 }
|
danielebarchiesi@4
|
63
|
danielebarchiesi@4
|
64 /**
|
danielebarchiesi@4
|
65 * Upgrade from Rules scheduler 6.x-1.x to 7.x.
|
danielebarchiesi@4
|
66 */
|
danielebarchiesi@4
|
67 function rules_scheduler_update_7200() {
|
danielebarchiesi@4
|
68 // Rename the old table so we can keep its content and start over with a
|
danielebarchiesi@4
|
69 // fresh one.
|
danielebarchiesi@4
|
70 db_rename_table('rules_scheduler', 'rules_scheduler_d6');
|
danielebarchiesi@4
|
71 // Create the d7 table.
|
danielebarchiesi@4
|
72 $schema['rules_scheduler'] = array(
|
danielebarchiesi@4
|
73 'description' => 'Stores scheduled tasks.',
|
danielebarchiesi@4
|
74 'fields' => array(
|
danielebarchiesi@4
|
75 'tid' => array(
|
danielebarchiesi@4
|
76 'type' => 'serial',
|
danielebarchiesi@4
|
77 'unsigned' => TRUE,
|
danielebarchiesi@4
|
78 'not null' => TRUE,
|
danielebarchiesi@4
|
79 'description' => "The scheduled task's id.",
|
danielebarchiesi@4
|
80 ),
|
danielebarchiesi@4
|
81 'config' => array(
|
danielebarchiesi@4
|
82 'type' => 'varchar',
|
danielebarchiesi@4
|
83 'length' => '255',
|
danielebarchiesi@4
|
84 'default' => '',
|
danielebarchiesi@4
|
85 'not null' => TRUE,
|
danielebarchiesi@4
|
86 'description' => "The scheduled configuration's name.",
|
danielebarchiesi@4
|
87 ),
|
danielebarchiesi@4
|
88 'date' => array(
|
danielebarchiesi@4
|
89 'description' => 'The Unix timestamp of when the task is to be scheduled.',
|
danielebarchiesi@4
|
90 'type' => 'int',
|
danielebarchiesi@4
|
91 'not null' => TRUE,
|
danielebarchiesi@4
|
92 ),
|
danielebarchiesi@4
|
93 'data' => array(
|
danielebarchiesi@4
|
94 'type' => 'text',
|
danielebarchiesi@4
|
95 'not null' => FALSE,
|
danielebarchiesi@4
|
96 'serialize' => TRUE,
|
danielebarchiesi@4
|
97 'description' => 'The whole, serialized evaluation data.',
|
danielebarchiesi@4
|
98 ),
|
danielebarchiesi@4
|
99 'identifier' => array(
|
danielebarchiesi@4
|
100 'type' => 'varchar',
|
danielebarchiesi@4
|
101 'length' => '255',
|
danielebarchiesi@4
|
102 'default' => '',
|
danielebarchiesi@4
|
103 'not null' => FALSE,
|
danielebarchiesi@4
|
104 'description' => 'The user defined string identifying this task.',
|
danielebarchiesi@4
|
105 ),
|
danielebarchiesi@4
|
106 ),
|
danielebarchiesi@4
|
107 'primary key' => array('tid'),
|
danielebarchiesi@4
|
108 'indexes' => array('date' => array('date')),
|
danielebarchiesi@4
|
109 );
|
danielebarchiesi@4
|
110 db_create_table('rules_scheduler', $schema['rules_scheduler']);
|
danielebarchiesi@4
|
111 }
|
danielebarchiesi@4
|
112
|
danielebarchiesi@4
|
113 /**
|
danielebarchiesi@4
|
114 * Fix the length of the rules_scheduler.name column.
|
danielebarchiesi@4
|
115 */
|
danielebarchiesi@4
|
116 function rules_scheduler_update_7202() {
|
danielebarchiesi@4
|
117 // Note that update 7201 (add the 'id' unique key') has been removed as it is
|
danielebarchiesi@4
|
118 // incorporated by 7202. For anyone that has already run the previous update
|
danielebarchiesi@4
|
119 // 7201, we have to first drop the unique key.
|
danielebarchiesi@4
|
120 db_drop_unique_key('rules_scheduler', 'id');
|
danielebarchiesi@4
|
121 db_change_field('rules_scheduler', 'config', 'config', array(
|
danielebarchiesi@4
|
122 'type' => 'varchar',
|
danielebarchiesi@4
|
123 'length' => '64',
|
danielebarchiesi@4
|
124 'default' => '',
|
danielebarchiesi@4
|
125 'not null' => TRUE,
|
danielebarchiesi@4
|
126 'description' => "The scheduled configuration's name.",
|
danielebarchiesi@4
|
127 ));
|
danielebarchiesi@4
|
128 db_add_unique_key('rules_scheduler', 'id', array('config', 'identifier'));
|
danielebarchiesi@4
|
129 }
|
danielebarchiesi@4
|
130
|
danielebarchiesi@4
|
131 /**
|
danielebarchiesi@4
|
132 * Add a database column for specifying a queue item handler.
|
danielebarchiesi@4
|
133 */
|
danielebarchiesi@4
|
134 function rules_scheduler_update_7203() {
|
danielebarchiesi@4
|
135 db_add_field('rules_scheduler', 'handler', array(
|
danielebarchiesi@4
|
136 'type' => 'varchar',
|
danielebarchiesi@4
|
137 'length' => '255',
|
danielebarchiesi@4
|
138 'not null' => FALSE,
|
danielebarchiesi@4
|
139 'description' => 'The fully qualified class name of a the queue item handler.',
|
danielebarchiesi@4
|
140 ));
|
danielebarchiesi@4
|
141 }
|
danielebarchiesi@4
|
142
|
danielebarchiesi@4
|
143 /**
|
danielebarchiesi@4
|
144 * Rename rules_scheduler.state into rules_scheduler.data.
|
danielebarchiesi@4
|
145 */
|
danielebarchiesi@4
|
146 function rules_scheduler_update_7204() {
|
danielebarchiesi@4
|
147 db_change_field('rules_scheduler', 'state', 'data', array(
|
danielebarchiesi@4
|
148 'type' => 'text',
|
danielebarchiesi@4
|
149 'not null' => FALSE,
|
danielebarchiesi@4
|
150 'serialize' => TRUE,
|
danielebarchiesi@4
|
151 'description' => 'The whole, serialized evaluation data.',
|
danielebarchiesi@4
|
152 ));
|
danielebarchiesi@4
|
153 }
|
danielebarchiesi@4
|
154
|
danielebarchiesi@4
|
155 /**
|
danielebarchiesi@4
|
156 * Rules upgrade callback for mapping the action name.
|
danielebarchiesi@4
|
157 */
|
danielebarchiesi@4
|
158 function rules_scheduler_action_upgrade_map_name($element) {
|
danielebarchiesi@4
|
159 return 'schedule';
|
danielebarchiesi@4
|
160 }
|
danielebarchiesi@4
|
161
|
danielebarchiesi@4
|
162 /**
|
danielebarchiesi@4
|
163 * Rules upgrade callback.
|
danielebarchiesi@4
|
164 */
|
danielebarchiesi@4
|
165 function rules_scheduler_action_upgrade($element, $target) {
|
danielebarchiesi@4
|
166 $target->settings['component'] = $element['#info']['set'];
|
danielebarchiesi@4
|
167 $target->settings['date'] = $element['#settings']['task_date'];
|
danielebarchiesi@4
|
168 $target->settings['identifier'] = $element['#settings']['task_identifier'];
|
danielebarchiesi@4
|
169
|
danielebarchiesi@4
|
170 unset($element['#info']['arguments']['task_date'], $element['#info']['arguments']['task_identifier']);
|
danielebarchiesi@4
|
171 foreach ($element['#info']['arguments'] as $name => $info) {
|
danielebarchiesi@4
|
172 rules_upgrade_element_parameter_settings($element, $target, $name, $info, 'param_' . $name);
|
danielebarchiesi@4
|
173 }
|
danielebarchiesi@4
|
174 }
|
danielebarchiesi@4
|
175
|
danielebarchiesi@4
|
176 /**
|
danielebarchiesi@4
|
177 * Rules upgrade callback for mapping the action name.
|
danielebarchiesi@4
|
178 */
|
danielebarchiesi@4
|
179 function rules_action_delete_scheduled_set_upgrade_map_name($element) {
|
danielebarchiesi@4
|
180 return 'schedule_delete';
|
danielebarchiesi@4
|
181 }
|
danielebarchiesi@4
|
182
|
danielebarchiesi@4
|
183 /**
|
danielebarchiesi@4
|
184 * Rules upgrade callback.
|
danielebarchiesi@4
|
185 */
|
danielebarchiesi@4
|
186 function rules_action_delete_scheduled_set_upgrade($element, $target) {
|
danielebarchiesi@4
|
187 $target->settings['component'] = $element['#settings']['ruleset'];
|
danielebarchiesi@4
|
188 $target->settings['task'] = $element['#settings']['task_identifier'];
|
danielebarchiesi@4
|
189 }
|