annotate modules/aggregator/aggregator.install @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 /**
danielebarchiesi@0 4 * @file
danielebarchiesi@0 5 * Install, update and uninstall functions for the aggregator module.
danielebarchiesi@0 6 */
danielebarchiesi@0 7
danielebarchiesi@0 8 /**
danielebarchiesi@0 9 * Implements hook_uninstall().
danielebarchiesi@0 10 */
danielebarchiesi@0 11 function aggregator_uninstall() {
danielebarchiesi@0 12 variable_del('aggregator_allowed_html_tags');
danielebarchiesi@0 13 variable_del('aggregator_summary_items');
danielebarchiesi@0 14 variable_del('aggregator_clear');
danielebarchiesi@0 15 variable_del('aggregator_category_selector');
danielebarchiesi@0 16 variable_del('aggregator_fetcher');
danielebarchiesi@0 17 variable_del('aggregator_parser');
danielebarchiesi@0 18 variable_del('aggregator_processors');
danielebarchiesi@0 19 variable_del('aggregator_teaser_length');
danielebarchiesi@0 20 }
danielebarchiesi@0 21
danielebarchiesi@0 22 /**
danielebarchiesi@0 23 * Implements hook_schema().
danielebarchiesi@0 24 */
danielebarchiesi@0 25 function aggregator_schema() {
danielebarchiesi@0 26 $schema['aggregator_category'] = array(
danielebarchiesi@0 27 'description' => 'Stores categories for aggregator feeds and feed items.',
danielebarchiesi@0 28 'fields' => array(
danielebarchiesi@0 29 'cid' => array(
danielebarchiesi@0 30 'type' => 'serial',
danielebarchiesi@0 31 'not null' => TRUE,
danielebarchiesi@0 32 'description' => 'Primary Key: Unique aggregator category ID.',
danielebarchiesi@0 33 ),
danielebarchiesi@0 34 'title' => array(
danielebarchiesi@0 35 'type' => 'varchar',
danielebarchiesi@0 36 'length' => 255,
danielebarchiesi@0 37 'not null' => TRUE,
danielebarchiesi@0 38 'default' => '',
danielebarchiesi@0 39 'description' => 'Title of the category.',
danielebarchiesi@0 40 ),
danielebarchiesi@0 41 'description' => array(
danielebarchiesi@0 42 'type' => 'text',
danielebarchiesi@0 43 'not null' => TRUE,
danielebarchiesi@0 44 'size' => 'big',
danielebarchiesi@0 45 'description' => 'Description of the category',
danielebarchiesi@0 46 ),
danielebarchiesi@0 47 'block' => array(
danielebarchiesi@0 48 'type' => 'int',
danielebarchiesi@0 49 'not null' => TRUE,
danielebarchiesi@0 50 'default' => 0,
danielebarchiesi@0 51 'size' => 'tiny',
danielebarchiesi@0 52 'description' => 'The number of recent items to show within the category block.',
danielebarchiesi@0 53 )
danielebarchiesi@0 54 ),
danielebarchiesi@0 55 'primary key' => array('cid'),
danielebarchiesi@0 56 'unique keys' => array(
danielebarchiesi@0 57 'title' => array('title'),
danielebarchiesi@0 58 ),
danielebarchiesi@0 59 );
danielebarchiesi@0 60
danielebarchiesi@0 61 $schema['aggregator_category_feed'] = array(
danielebarchiesi@0 62 'description' => 'Bridge table; maps feeds to categories.',
danielebarchiesi@0 63 'fields' => array(
danielebarchiesi@0 64 'fid' => array(
danielebarchiesi@0 65 'type' => 'int',
danielebarchiesi@0 66 'not null' => TRUE,
danielebarchiesi@0 67 'default' => 0,
danielebarchiesi@0 68 'description' => "The feed's {aggregator_feed}.fid.",
danielebarchiesi@0 69 ),
danielebarchiesi@0 70 'cid' => array(
danielebarchiesi@0 71 'type' => 'int',
danielebarchiesi@0 72 'not null' => TRUE,
danielebarchiesi@0 73 'default' => 0,
danielebarchiesi@0 74 'description' => 'The {aggregator_category}.cid to which the feed is being assigned.',
danielebarchiesi@0 75 )
danielebarchiesi@0 76 ),
danielebarchiesi@0 77 'primary key' => array('cid', 'fid'),
danielebarchiesi@0 78 'indexes' => array(
danielebarchiesi@0 79 'fid' => array('fid'),
danielebarchiesi@0 80 ),
danielebarchiesi@0 81 'foreign keys' => array(
danielebarchiesi@0 82 'aggregator_category' => array(
danielebarchiesi@0 83 'table' => 'aggregator_category',
danielebarchiesi@0 84 'columns' => array('cid' => 'cid'),
danielebarchiesi@0 85 ),
danielebarchiesi@0 86 ),
danielebarchiesi@0 87 );
danielebarchiesi@0 88
danielebarchiesi@0 89 $schema['aggregator_category_item'] = array(
danielebarchiesi@0 90 'description' => 'Bridge table; maps feed items to categories.',
danielebarchiesi@0 91 'fields' => array(
danielebarchiesi@0 92 'iid' => array(
danielebarchiesi@0 93 'type' => 'int',
danielebarchiesi@0 94 'not null' => TRUE,
danielebarchiesi@0 95 'default' => 0,
danielebarchiesi@0 96 'description' => "The feed item's {aggregator_item}.iid.",
danielebarchiesi@0 97 ),
danielebarchiesi@0 98 'cid' => array(
danielebarchiesi@0 99 'type' => 'int',
danielebarchiesi@0 100 'not null' => TRUE,
danielebarchiesi@0 101 'default' => 0,
danielebarchiesi@0 102 'description' => 'The {aggregator_category}.cid to which the feed item is being assigned.',
danielebarchiesi@0 103 )
danielebarchiesi@0 104 ),
danielebarchiesi@0 105 'primary key' => array('cid', 'iid'),
danielebarchiesi@0 106 'indexes' => array(
danielebarchiesi@0 107 'iid' => array('iid'),
danielebarchiesi@0 108 ),
danielebarchiesi@0 109 'foreign keys' => array(
danielebarchiesi@0 110 'aggregator_category' => array(
danielebarchiesi@0 111 'table' => 'aggregator_category',
danielebarchiesi@0 112 'columns' => array('cid' => 'cid'),
danielebarchiesi@0 113 ),
danielebarchiesi@0 114 ),
danielebarchiesi@0 115 );
danielebarchiesi@0 116
danielebarchiesi@0 117 $schema['aggregator_feed'] = array(
danielebarchiesi@0 118 'description' => 'Stores feeds to be parsed by the aggregator.',
danielebarchiesi@0 119 'fields' => array(
danielebarchiesi@0 120 'fid' => array(
danielebarchiesi@0 121 'type' => 'serial',
danielebarchiesi@0 122 'not null' => TRUE,
danielebarchiesi@0 123 'description' => 'Primary Key: Unique feed ID.',
danielebarchiesi@0 124 ),
danielebarchiesi@0 125 'title' => array(
danielebarchiesi@0 126 'type' => 'varchar',
danielebarchiesi@0 127 'length' => 255,
danielebarchiesi@0 128 'not null' => TRUE,
danielebarchiesi@0 129 'default' => '',
danielebarchiesi@0 130 'description' => 'Title of the feed.',
danielebarchiesi@0 131 ),
danielebarchiesi@0 132 'url' => array(
danielebarchiesi@0 133 'type' => 'text',
danielebarchiesi@0 134 'not null' => TRUE,
danielebarchiesi@0 135 'description' => 'URL to the feed.',
danielebarchiesi@0 136 ),
danielebarchiesi@0 137 'refresh' => array(
danielebarchiesi@0 138 'type' => 'int',
danielebarchiesi@0 139 'not null' => TRUE,
danielebarchiesi@0 140 'default' => 0,
danielebarchiesi@0 141 'description' => 'How often to check for new feed items, in seconds.',
danielebarchiesi@0 142 ),
danielebarchiesi@0 143 'checked' => array(
danielebarchiesi@0 144 'type' => 'int',
danielebarchiesi@0 145 'not null' => TRUE,
danielebarchiesi@0 146 'default' => 0,
danielebarchiesi@0 147 'description' => 'Last time feed was checked for new items, as Unix timestamp.',
danielebarchiesi@0 148 ),
danielebarchiesi@0 149 'queued' => array(
danielebarchiesi@0 150 'type' => 'int',
danielebarchiesi@0 151 'not null' => TRUE,
danielebarchiesi@0 152 'default' => 0,
danielebarchiesi@0 153 'description' => 'Time when this feed was queued for refresh, 0 if not queued.',
danielebarchiesi@0 154 ),
danielebarchiesi@0 155 'link' => array(
danielebarchiesi@0 156 'type' => 'text',
danielebarchiesi@0 157 'not null' => TRUE,
danielebarchiesi@0 158 'description' => 'The parent website of the feed; comes from the <link> element in the feed.',
danielebarchiesi@0 159 ),
danielebarchiesi@0 160 'description' => array(
danielebarchiesi@0 161 'type' => 'text',
danielebarchiesi@0 162 'not null' => TRUE,
danielebarchiesi@0 163 'size' => 'big',
danielebarchiesi@0 164 'description' => "The parent website's description; comes from the <description> element in the feed.",
danielebarchiesi@0 165 ),
danielebarchiesi@0 166 'image' => array(
danielebarchiesi@0 167 'type' => 'text',
danielebarchiesi@0 168 'not null' => TRUE,
danielebarchiesi@0 169 'size' => 'big',
danielebarchiesi@0 170 'description' => 'An image representing the feed.',
danielebarchiesi@0 171 ),
danielebarchiesi@0 172 'hash' => array(
danielebarchiesi@0 173 'type' => 'varchar',
danielebarchiesi@0 174 'length' => 64,
danielebarchiesi@0 175 'not null' => TRUE,
danielebarchiesi@0 176 'default' => '',
danielebarchiesi@0 177 'description' => 'Calculated hash of the feed data, used for validating cache.',
danielebarchiesi@0 178 ),
danielebarchiesi@0 179 'etag' => array(
danielebarchiesi@0 180 'type' => 'varchar',
danielebarchiesi@0 181 'length' => 255,
danielebarchiesi@0 182 'not null' => TRUE,
danielebarchiesi@0 183 'default' => '',
danielebarchiesi@0 184 'description' => 'Entity tag HTTP response header, used for validating cache.',
danielebarchiesi@0 185 ),
danielebarchiesi@0 186 'modified' => array(
danielebarchiesi@0 187 'type' => 'int',
danielebarchiesi@0 188 'not null' => TRUE,
danielebarchiesi@0 189 'default' => 0,
danielebarchiesi@0 190 'description' => 'When the feed was last modified, as a Unix timestamp.',
danielebarchiesi@0 191 ),
danielebarchiesi@0 192 'block' => array(
danielebarchiesi@0 193 'type' => 'int',
danielebarchiesi@0 194 'not null' => TRUE,
danielebarchiesi@0 195 'default' => 0,
danielebarchiesi@0 196 'size' => 'tiny',
danielebarchiesi@0 197 'description' => "Number of items to display in the feed's block.",
danielebarchiesi@0 198 )
danielebarchiesi@0 199 ),
danielebarchiesi@0 200 'primary key' => array('fid'),
danielebarchiesi@0 201 'indexes' => array(
danielebarchiesi@0 202 'url' => array(array('url', 255)),
danielebarchiesi@0 203 'queued' => array('queued'),
danielebarchiesi@0 204 ),
danielebarchiesi@0 205 'unique keys' => array(
danielebarchiesi@0 206 'title' => array('title'),
danielebarchiesi@0 207 ),
danielebarchiesi@0 208 );
danielebarchiesi@0 209
danielebarchiesi@0 210 $schema['aggregator_item'] = array(
danielebarchiesi@0 211 'description' => 'Stores the individual items imported from feeds.',
danielebarchiesi@0 212 'fields' => array(
danielebarchiesi@0 213 'iid' => array(
danielebarchiesi@0 214 'type' => 'serial',
danielebarchiesi@0 215 'not null' => TRUE,
danielebarchiesi@0 216 'description' => 'Primary Key: Unique ID for feed item.',
danielebarchiesi@0 217 ),
danielebarchiesi@0 218 'fid' => array(
danielebarchiesi@0 219 'type' => 'int',
danielebarchiesi@0 220 'not null' => TRUE,
danielebarchiesi@0 221 'default' => 0,
danielebarchiesi@0 222 'description' => 'The {aggregator_feed}.fid to which this item belongs.',
danielebarchiesi@0 223 ),
danielebarchiesi@0 224 'title' => array(
danielebarchiesi@0 225 'type' => 'varchar',
danielebarchiesi@0 226 'length' => 255,
danielebarchiesi@0 227 'not null' => TRUE,
danielebarchiesi@0 228 'default' => '',
danielebarchiesi@0 229 'description' => 'Title of the feed item.',
danielebarchiesi@0 230 ),
danielebarchiesi@0 231 'link' => array(
danielebarchiesi@0 232 'type' => 'text',
danielebarchiesi@0 233 'not null' => TRUE,
danielebarchiesi@0 234 'description' => 'Link to the feed item.',
danielebarchiesi@0 235 ),
danielebarchiesi@0 236 'author' => array(
danielebarchiesi@0 237 'type' => 'varchar',
danielebarchiesi@0 238 'length' => 255,
danielebarchiesi@0 239 'not null' => TRUE,
danielebarchiesi@0 240 'default' => '',
danielebarchiesi@0 241 'description' => 'Author of the feed item.',
danielebarchiesi@0 242 ),
danielebarchiesi@0 243 'description' => array(
danielebarchiesi@0 244 'type' => 'text',
danielebarchiesi@0 245 'not null' => TRUE,
danielebarchiesi@0 246 'size' => 'big',
danielebarchiesi@0 247 'description' => 'Body of the feed item.',
danielebarchiesi@0 248 ),
danielebarchiesi@0 249 'timestamp' => array(
danielebarchiesi@0 250 'type' => 'int',
danielebarchiesi@0 251 'not null' => FALSE,
danielebarchiesi@0 252 'description' => 'Posted date of the feed item, as a Unix timestamp.',
danielebarchiesi@0 253 ),
danielebarchiesi@0 254 'guid' => array(
danielebarchiesi@0 255 'type' => 'text',
danielebarchiesi@0 256 'not null' => TRUE,
danielebarchiesi@0 257 'description' => 'Unique identifier for the feed item.',
danielebarchiesi@0 258 )
danielebarchiesi@0 259 ),
danielebarchiesi@0 260 'primary key' => array('iid'),
danielebarchiesi@0 261 'indexes' => array(
danielebarchiesi@0 262 'fid' => array('fid'),
danielebarchiesi@0 263 ),
danielebarchiesi@0 264 'foreign keys' => array(
danielebarchiesi@0 265 'aggregator_feed' => array(
danielebarchiesi@0 266 'table' => 'aggregator_feed',
danielebarchiesi@0 267 'columns' => array('fid' => 'fid'),
danielebarchiesi@0 268 ),
danielebarchiesi@0 269 ),
danielebarchiesi@0 270 );
danielebarchiesi@0 271
danielebarchiesi@0 272 return $schema;
danielebarchiesi@0 273 }
danielebarchiesi@0 274
danielebarchiesi@0 275 /**
danielebarchiesi@0 276 * @addtogroup updates-6.x-to-7.x
danielebarchiesi@0 277 * @{
danielebarchiesi@0 278 */
danielebarchiesi@0 279
danielebarchiesi@0 280 /**
danielebarchiesi@0 281 * Add hash column to aggregator_feed table.
danielebarchiesi@0 282 */
danielebarchiesi@0 283 function aggregator_update_7000() {
danielebarchiesi@0 284 db_add_field('aggregator_feed', 'hash', array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => ''));
danielebarchiesi@0 285 }
danielebarchiesi@0 286
danielebarchiesi@0 287 /**
danielebarchiesi@0 288 * Add aggregator teaser length to settings from old global default teaser length
danielebarchiesi@0 289 */
danielebarchiesi@0 290 function aggregator_update_7001() {
danielebarchiesi@0 291 variable_set('aggregator_teaser_length', variable_get('teaser_length'));
danielebarchiesi@0 292 }
danielebarchiesi@0 293
danielebarchiesi@0 294 /**
danielebarchiesi@0 295 * Add queued timestamp.
danielebarchiesi@0 296 */
danielebarchiesi@0 297 function aggregator_update_7002() {
danielebarchiesi@0 298 db_add_field('aggregator_feed', 'queued', array(
danielebarchiesi@0 299 'type' => 'int',
danielebarchiesi@0 300 'not null' => TRUE,
danielebarchiesi@0 301 'default' => 0,
danielebarchiesi@0 302 'description' => 'Time when this feed was queued for refresh, 0 if not queued.',
danielebarchiesi@0 303 ));
danielebarchiesi@0 304 db_add_index('aggregator_feed', 'queued', array('queued'));
danielebarchiesi@0 305 }
danielebarchiesi@0 306
danielebarchiesi@0 307 /**
danielebarchiesi@0 308 * @} End of "addtogroup updates-6.x-to-7.x"
danielebarchiesi@0 309 */
danielebarchiesi@0 310
danielebarchiesi@0 311 /**
danielebarchiesi@0 312 * @addtogroup updates-7.x-extra
danielebarchiesi@0 313 * @{
danielebarchiesi@0 314 */
danielebarchiesi@0 315
danielebarchiesi@0 316 /**
danielebarchiesi@0 317 * Increase the length of {aggregator_feed}.url.
danielebarchiesi@0 318 */
danielebarchiesi@0 319 function aggregator_update_7003() {
danielebarchiesi@0 320 db_drop_unique_key('aggregator_feed', 'url');
danielebarchiesi@0 321 db_change_field('aggregator_feed', 'url', 'url', array('type' => 'text', 'not null' => TRUE, 'description' => 'URL to the feed.'));
danielebarchiesi@0 322 db_change_field('aggregator_feed', 'link', 'link', array('type' => 'text', 'not null' => TRUE, 'description' => 'The parent website of the feed; comes from the <link> element in the feed.'));
danielebarchiesi@0 323 db_change_field('aggregator_item', 'link', 'link', array('type' => 'text', 'not null' => TRUE, 'description' => 'Link to the feed item.'));
danielebarchiesi@0 324 db_change_field('aggregator_item', 'guid', 'guid', array('type' => 'text', 'not null' => TRUE, 'description' => 'Unique identifier for the feed item.'));
danielebarchiesi@0 325 db_add_index('aggregator_feed', 'url', array(array('url', 255)));
danielebarchiesi@0 326 }
danielebarchiesi@0 327
danielebarchiesi@0 328 /**
danielebarchiesi@0 329 * @} End of "addtogroup updates-7.x-extra"
danielebarchiesi@0 330 */