summaryrefslogtreecommitdiff
path: root/modules/aggregator
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2007-05-25 12:46:46 +0000
committerDries Buytaert <dries@buytaert.net>2007-05-25 12:46:46 +0000
commit3cafffe63f70f418d0b6ca32ac5e0f3e27dceb41 (patch)
treecd59a40556a084f35b7b5a3bc3caa50874087541 /modules/aggregator
parentae762838c0e92bded86370103df4583874c50da7 (diff)
downloadbrdo-3cafffe63f70f418d0b6ca32ac5e0f3e27dceb41.tar.gz
brdo-3cafffe63f70f418d0b6ca32ac5e0f3e27dceb41.tar.bz2
- Killer patch #144765 by bjaspan, frando et al: schema API 1 hits core. Oh, behave.
Diffstat (limited to 'modules/aggregator')
-rw-r--r--modules/aggregator/aggregator.install119
-rw-r--r--modules/aggregator/aggregator.schema70
2 files changed, 75 insertions, 114 deletions
diff --git a/modules/aggregator/aggregator.install b/modules/aggregator/aggregator.install
index 9cc59cc2d..8c44c33a7 100644
--- a/modules/aggregator/aggregator.install
+++ b/modules/aggregator/aggregator.install
@@ -5,126 +5,17 @@
* Implementation of hook_install().
*/
function aggregator_install() {
- switch ($GLOBALS['db_type']) {
- case 'mysql':
- case 'mysqli':
- db_query("CREATE TABLE {aggregator_category} (
- cid int NOT NULL auto_increment,
- title varchar(255) NOT NULL default '',
- description longtext NOT NULL,
- block tinyint NOT NULL default '0',
- PRIMARY KEY (cid),
- UNIQUE KEY title (title)
- ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
-
- db_query("CREATE TABLE {aggregator_category_feed} (
- fid int NOT NULL default '0',
- cid int NOT NULL default '0',
- PRIMARY KEY (fid,cid)
- ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
-
- db_query("CREATE TABLE {aggregator_category_item} (
- iid int NOT NULL default '0',
- cid int NOT NULL default '0',
- PRIMARY KEY (iid,cid)
- ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
-
- db_query("CREATE TABLE {aggregator_feed} (
- fid int NOT NULL auto_increment,
- title varchar(255) NOT NULL default '',
- url varchar(255) NOT NULL default '',
- refresh int NOT NULL default '0',
- checked int NOT NULL default '0',
- link varchar(255) NOT NULL default '',
- description longtext NOT NULL,
- image longtext NOT NULL,
- etag varchar(255) NOT NULL default '',
- modified int NOT NULL default '0',
- block tinyint NOT NULL default '0',
- PRIMARY KEY (fid),
- UNIQUE KEY link (url),
- UNIQUE KEY title (title)
- ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
-
- db_query("CREATE TABLE {aggregator_item} (
- iid int NOT NULL auto_increment,
- fid int NOT NULL default '0',
- title varchar(255) NOT NULL default '',
- link varchar(255) NOT NULL default '',
- author varchar(255) NOT NULL default '',
- description longtext NOT NULL,
- timestamp int default NULL,
- guid varchar(255),
- PRIMARY KEY (iid),
- KEY fid (fid)
- ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
-
- break;
- case 'pgsql':
- db_query("CREATE TABLE {aggregator_category} (
- cid serial,
- title varchar(255) NOT NULL default '',
- description text NOT NULL,
- block smallint NOT NULL default '0',
- PRIMARY KEY (cid),
- UNIQUE (title)
- )");
-
- db_query("CREATE TABLE {aggregator_category_feed} (
- fid int NOT NULL default '0',
- cid int NOT NULL default '0',
- PRIMARY KEY (fid,cid)
- )");
-
- db_query("CREATE TABLE {aggregator_category_item} (
- iid int NOT NULL default '0',
- cid int NOT NULL default '0',
- PRIMARY KEY (iid,cid)
- )");
-
- db_query("CREATE TABLE {aggregator_feed} (
- fid serial,
- title varchar(255) NOT NULL default '',
- url varchar(255) NOT NULL default '',
- refresh int NOT NULL default '0',
- checked int NOT NULL default '0',
- link varchar(255) NOT NULL default '',
- description text NOT NULL default '',
- image text NOT NULL default '',
- etag varchar(255) NOT NULL default '',
- modified int NOT NULL default '0',
- block smallint NOT NULL default '0',
- PRIMARY KEY (fid),
- UNIQUE (url),
- UNIQUE (title)
- )");
-
- db_query("CREATE TABLE {aggregator_item} (
- iid serial,
- fid int NOT NULL default '0',
- title varchar(255) NOT NULL default '',
- link varchar(255) NOT NULL default '',
- author varchar(255) NOT NULL default '',
- description text NOT NULL,
- timestamp int default NULL,
- guid varchar(255),
- PRIMARY KEY (iid)
- )");
- db_query("CREATE INDEX {aggregator_item}_fid_idx ON {aggregator_item} (fid)");
-
- break;
- }
+ // Create tables.
+ drupal_install_schema('aggregator');
}
/**
* Implementation of hook_uninstall().
*/
function aggregator_uninstall() {
- db_query('DROP TABLE {aggregator_category}');
- db_query('DROP TABLE {aggregator_category_feed}');
- db_query('DROP TABLE {aggregator_category_item}');
- db_query('DROP TABLE {aggregator_feed}');
- db_query('DROP TABLE {aggregator_item}');
+ // Remove tables.
+ drupal_uninstall_schema('aggregator');
+
variable_del('aggregator_allowed_html_tags');
variable_del('aggregator_summary_items');
variable_del('aggregator_clear');
diff --git a/modules/aggregator/aggregator.schema b/modules/aggregator/aggregator.schema
new file mode 100644
index 000000000..ed0c146e9
--- /dev/null
+++ b/modules/aggregator/aggregator.schema
@@ -0,0 +1,70 @@
+<?php
+// $Id$
+
+function aggregator_schema() {
+ $schema['aggregator_category'] = array(
+ 'fields' => array(
+ 'cid' => array('type' => 'serial', 'not null' => TRUE),
+ 'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'description' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
+ 'block' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
+ ),
+ 'primary key' => array('cid'),
+ 'unique keys' => array('title' => array('title')),
+ );
+
+ $schema['aggregator_category_feed'] = array(
+ 'fields' => array(
+ 'fid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'cid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
+ ),
+ 'primary key' => array('fid', 'cid'),
+ );
+
+ $schema['aggregator_category_item'] = array(
+ 'fields' => array(
+ 'iid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'cid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0)
+ ),
+ 'primary key' => array('iid', 'cid'),
+ );
+
+ $schema['aggregator_feed'] = array(
+ 'fields' => array(
+ 'fid' => array('type' => 'serial', 'not null' => TRUE),
+ 'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'url' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'refresh' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'checked' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'link' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'description' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
+ 'image' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
+ 'etag' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'modified' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'block' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')
+ ),
+ 'unique keys' => array(
+ 'url' => array('url'),
+ 'title' => array('title')
+ ),
+ 'primary key' => array('fid'),
+ );
+
+ $schema['aggregator_item'] = array(
+ 'fields' => array(
+ 'iid' => array('type' => 'serial', 'not null' => TRUE),
+ 'fid' => array('type' => 'int', 'not null' => TRUE, 'default' => 0),
+ 'title' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'link' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'author' => array('type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => ''),
+ 'description' => array('type' => 'text', 'not null' => TRUE, 'size' => 'big'),
+ 'timestamp' => array('type' => 'int', 'not null' => FALSE),
+ 'guid' => array('type' => 'varchar', 'length' => 255, 'not null' => FALSE)
+ ),
+ 'indexes' => array('fid' => array('fid')),
+ 'primary key' => array('iid'),
+ );
+
+ return $schema;
+}
+