annotate modules/rules/rules_scheduler/rules_scheduler.install @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
rev   line source
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 }