/[drupal]/contributions/modules/feedparser/feedmanager.install
ViewVC logotype

Contents of /contributions/modules/feedparser/feedmanager.install

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.9 - (show annotations) (download) (as text)
Mon Nov 20 21:33:13 2006 UTC (3 years ago) by budda
Branch: MAIN
CVS Tags: DRUPAL-5--0-1-dev, HEAD
Branch point for: DRUPAL-5, DRUPAL-4-7
Changes since 1.8: +25 -7 lines
File MIME type: text/x-php
Installer now updates existing tables rather than making site admin run update.php

Also checks if tables already exist to avoid warnings.
1 <?php
2 // $id:$
3
4 function feedmanager_install() {
5 switch ($GLOBALS['db_type']) {
6 case 'mysql':
7 case 'mysqli':
8 db_query("CREATE TABLE IF NOT EXISTS {aggregator_category} (
9 cid int NOT NULL auto_increment,
10 title varchar(255) NOT NULL default '',
11 description longtext NOT NULL,
12 block tinyint NOT NULL default '0',
13 PRIMARY KEY (cid),
14 UNIQUE KEY title (title)
15 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
16
17 db_query("CREATE TABLE IF NOT EXISTS {aggregator_category_feed} (
18 fid int NOT NULL default '0',
19 cid int NOT NULL default '0',
20 PRIMARY KEY (fid,cid)
21 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
22
23 db_query("CREATE TABLE IF NOT EXISTS {aggregator_category_item} (
24 iid int NOT NULL default '0',
25 cid int NOT NULL default '0',
26 PRIMARY KEY (iid,cid)
27 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
28
29 db_query("CREATE TABLE IF NOT EXISTS {aggregator_feed} (
30 fid int NOT NULL auto_increment,
31 title varchar(255) NOT NULL default '',
32 url varchar(255) NOT NULL default '',
33 refresh int NOT NULL default '0',
34 checked int NOT NULL default '0',
35 link varchar(255) NOT NULL default '',
36 description longtext NOT NULL,
37 image longtext NOT NULL,
38 etag varchar(255) NOT NULL default '',
39 modified int NOT NULL default '0',
40 block tinyint NOT NULL default '0',
41 PRIMARY KEY (fid),
42 UNIQUE KEY link (url),
43 UNIQUE KEY title (title)
44 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
45
46 db_query("CREATE TABLE IF NOT EXISTS {aggregator_item} (
47 iid int NOT NULL auto_increment,
48 fid int NOT NULL default '0',
49 title varchar(255) NOT NULL default '',
50 link varchar(255) NOT NULL default '',
51 author varchar(255) NOT NULL default '',
52 description longtext NOT NULL,
53 timestamp int default NULL,
54 guid varchar(255),
55 PRIMARY KEY (iid),
56 KEY fid (fid)
57 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
58
59 // Uninstall aggregator.module
60 db_query("UPDATE {system} SET status = 0 WHERE name = 'aggregator'");
61
62 // Update existing tables
63 db_query('ALTER TABLE {aggregator_feed} DROP KEY link');
64 db_query('ALTER TABLE {aggregator_feed} CHANGE url url TEXT NOT NULL');
65 db_query('ALTER TABLE {aggregator_feed} ADD expires INT (10) AFTER block');
66 db_query('ALTER TABLE {aggregator_feed} ADD data LONGTEXT AFTER expires');
67 db_query('ALTER TABLE {aggregator_feed} DROP INDEX title');
68 break;
69
70 case 'pgsql':
71 db_query("CREATE TABLE {aggregator_category} (
72 cid serial,
73 title varchar(255) NOT NULL default '',
74 description text NOT NULL,
75 block smallint NOT NULL default '0',
76 PRIMARY KEY (cid),
77 UNIQUE (title)
78 )");
79
80 db_query("CREATE TABLE {aggregator_category_feed} (
81 fid int NOT NULL default '0',
82 cid int NOT NULL default '0',
83 PRIMARY KEY (fid,cid)
84 )");
85
86 db_query("CREATE TABLE {aggregator_category_item} (
87 iid int NOT NULL default '0',
88 cid int NOT NULL default '0',
89 PRIMARY KEY (iid,cid)
90 )");
91
92 db_query("CREATE TABLE {aggregator_feed} (
93 fid serial,
94 title varchar(255) NOT NULL default '',
95 url varchar(255) NOT NULL default '',
96 refresh int NOT NULL default '0',
97 checked int NOT NULL default '0',
98 link varchar(255) NOT NULL default '',
99 description text NOT NULL default '',
100 image text NOT NULL default '',
101 etag varchar(255) NOT NULL default '',
102 modified int NOT NULL default '0',
103 block smallint NOT NULL default '0',
104 PRIMARY KEY (fid),
105 UNIQUE (url),
106 UNIQUE (title)
107 )");
108
109 db_query("CREATE TABLE {aggregator_item} (
110 iid serial,
111 fid int NOT NULL default '0',
112 title varchar(255) NOT NULL default '',
113 link varchar(255) NOT NULL default '',
114 author varchar(255) NOT NULL default '',
115 description text NOT NULL,
116 timestamp int default NULL,
117 guid varchar(255),
118 PRIMARY KEY (iid)
119 )");
120 db_query("CREATE INDEX {aggregator_item}_fid_idx ON {aggregator_item} (fid)");
121
122 // Uninstall aggregator.module
123 db_query("UPDATE {system} SET status = 0 WHERE name = 'aggregator'");
124
125 // Update existing tables
126 db_query('ALTER TABLE {aggregator_feed} DROP KEY link');
127 db_query('ALTER TABLE {aggregator_feed} CHANGE url url TEXT NOT NULL');
128 db_query('ALTER TABLE {aggregator_feed} ADD expires INT (10) AFTER block');
129 db_query('ALTER TABLE {aggregator_feed} ADD data LONGTEXT AFTER expires');
130 db_query('ALTER TABLE {aggregator_feed} DROP INDEX title');
131 break;
132 }
133 }
134
135 /**
136 * Implementation of hook_uninstall().
137 */
138 function feedmanager_uninstall() {
139 db_query('DROP TABLE {aggregator_category}');
140 db_query('DROP TABLE {aggregator_category_feed}');
141 db_query('DROP TABLE {aggregator_category_item}');
142 db_query('DROP TABLE {aggregator_feed}');
143 db_query('DROP TABLE {aggregator_item}');
144 }
145
146 function feedmanager_update_1() {
147 switch ($GLOBALS['db_type']) {
148 case 'mysql':
149 case 'mysqli':
150 $ret[] = update_sql('ALTER TABLE {aggregator_feed} DROP KEY link');
151 $ret[] = update_sql('ALTER TABLE {aggregator_feed} CHANGE url url TEXT NOT NULL');
152 $ret[] = update_sql('ALTER TABLE {aggregator_feed} ADD expires INT (10) AFTER block');
153 $ret[] = update_sql('ALTER TABLE {aggregator_feed} ADD data LONGTEXT AFTER expires');
154 $ret[] = update_sql('ALTER TABLE {aggregator_feed} DROP INDEX title');
155 break;
156
157 case 'pgsql':
158 break;
159 }
160 return $ret;
161 }
162 ?>

  ViewVC Help
Powered by ViewVC 1.1.2