/[drupal]/contributions/modules/og2list/og2list.install
ViewVC logotype

Contents of /contributions/modules/og2list/og2list.install

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


Revision 1.16 - (show annotations) (download) (as text)
Sun Aug 5 12:30:19 2007 UTC (2 years, 3 months ago) by killes
Branch: MAIN
CVS Tags: HEAD
Changes since 1.15: +14 -1 lines
File MIME type: text/x-php
#161387, update to use db_next_id, patch by damien_vancouver
1 <?php
2 /**
3 * $Id: og2list.install,v 1.15 2006/11/28 18:07:25 killes Exp $
4 *
5 * MySQL definitions for og2list.module
6 *
7 *
8 */
9
10 function og2list_install() {
11 switch ($GLOBALS['db_type']) {
12 case 'mysql':
13 case 'mysqli':
14 db_query("CREATE TABLE og2list_groups (
15 -- node-ID specific to the ogroup
16 nid int(10) unsigned NOT NULL default 0,
17 -- v-- FIXME misleading name (group_address)
18 recipient varchar(128) NOT NULL default '',
19 -- 0 = do not send mail
20 -- 1 = send mail
21 status int(2) NOT NULL default '0',
22 -- 0 = do not put new mails into moderation
23 -- 1 = do put new mails into moderation
24 moderate int(2) NOT NULL default '0',
25 -- subject prefix
26 prefix varchar(128) NOT NULL default ''
27 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
28
29 db_query("CREATE TABLE og2list_outgoing_recipients (
30 mid int(10) unsigned NOT NULL default 0,
31 nid int(10) unsigned NOT NULL default 0,
32 recipient_name varchar(60) NOT NULL default '',
33 recipient_address varchar(128) NOT NULL default '',
34 timestamp int(11) NOT NULL default '0',
35 -- 0 = undefined
36 -- 1 = not sent
37 -- 2 = handed off to MTA successfully
38 -- 3 = local error
39 -- 4 = remote error (DSN received)
40 -- 5 = postponed
41 -- 6 = mail in moderation
42 -- 7 = send in digest
43 status int(2) NOT NULL default '0',
44 KEY mid (mid),
45 KEY status (status),
46 KEY recipient_address (recipient_address)
47 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
48
49 db_query("CREATE TABLE og2list_outgoing_content (
50 mid int(10) unsigned NOT NULL auto_increment,
51 -- Header fields.
52 headers text NOT NULL default '',
53 -- *_name and subject are encoded in utf-8.
54 from_name varchar(128) default '',
55 from_address varchar(128) default '',
56 to_name varchar(128) default '',
57 to_address varchar(128) default '',
58 subject varchar(128) default '',
59 msgid varchar(128) NOT NULL default '',
60 -- The body should be a single piece of HTML, no MIME-encapsulation.
61 content_type varchar(255) NOT NULL default 'text/html',
62 body longtext NOT NULL default '',
63 -- is_node is 1 for nodes, 0 for comments
64 is_node int(2) NOT NULL default '0',
65 -- id is nid for nodes, cid for comments
66 id int(10) unsigned NOT NULL default 0,
67 PRIMARY KEY (mid)
68 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
69
70 #-- Connection between Drupal node (nid,cid) and Message-ID header
71 db_query("CREATE TABLE og2list_msgid (
72 nid int(10) unsigned NOT NULL default '0',
73 cid int(10) unsigned NOT NULL default '0',
74 msgid varchar(128) NOT NULL default '',
75 timestamp int(11) NOT NULL default '0',
76 PRIMARY KEY (nid, cid)
77 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
78
79 #-- Equivalent to the "References:" line of a mail message, necessary
80 #-- for creating threads when mail messages are received
81 db_query("CREATE TABLE og2list_references (
82 sort_key int(10) unsigned NOT NULL auto_increment,
83 msgid varchar(128) NOT NULL default '',
84 reference varchar(128) NOT NULL default '',
85 PRIMARY KEY (msgid, reference, sort_key)
86 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
87
88 #-- mail-in.pl passes a *simple* mail to the og2list module
89 db_query("CREATE TABLE og2list_incoming_content (
90 mid int(10) unsigned NOT NULL auto_increment,
91 -- Header fields.
92 headers text NOT NULL default '',
93 -- from_name and subject are encoded in utf-8.
94 from_address varchar(128) default '',
95 from_name varchar(128) default '',
96 subject varchar(128) default '',
97 msgid varchar(128) NOT NULL default '',
98 -- The body should be a single piece of HTML, no MIME-encapsulation.
99 content_type varchar(255) NOT NULL default 'text/html',
100 body longtext NOT NULL default '',
101 PRIMARY KEY (mid, msgid)
102 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
103
104 db_query("CREATE TABLE og2list_incoming_groups (
105 mid int(10) unsigned NOT NULL,
106 -- node-ID specific to the group
107 oid int(10) unsigned NOT NULL
108 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
109
110 db_query("CREATE TABLE og2list_outgoing_arguments (
111 mid int(10) unsigned NOT NULL default 0,
112 nid int(10) unsigned NOT NULL default 0,
113 timestamp int(11) NOT NULL default '0',
114 status int(2) NOT NULL default '0',
115 uid int(10) unsigned NOT NULL default '0'
116 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
117
118 db_query("CREATE TABLE og2list_attachment (
119 -- Seriel ID
120 fid int(10) unsigned NOT NULL auto_increment,
121 -- FK for messages in og2list_incoming_content.
122 mid int(10) unsigned NOT NULL default 0,
123 filename varchar(255) NOT NULL default '',
124 content_type varchar(255) NOT NULL default '',
125 -- Medium Blob allows for 2^24 bytes (16Mb) which
126 -- is greater than most mail servers will allow
127 payload MEDIUMBLOB,
128 -- Disposition may be 'inline' or 'attached'
129 disposition varchar(255) NOT NULL default '',
130 PRIMARY KEY (fid)
131 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
132 }
133
134 $result = db_fetch_object(db_query("SELECT * FROM {system} WHERE name = 'og'"));
135 if ($result->weight) {
136 db_query("UPDATE {system} SET weight = %d + 1 WHERE name = 'og2list'", $result->weight);
137 }
138 else {
139 db_query("UPDATE {system} SET weight = 1 WHERE name = 'og2list'");
140 }
141 }
142
143 function og2list_update_1() {
144 $ret = array();
145 switch ($GLOBALS['db_type']) {
146 case 'mysql':
147 case 'mysqli':
148 db_query("CREATE TABLE og2list_outgoing_arguments (
149 mid int(10) unsigned NOT NULL default 0,
150 nid int(10) unsigned NOT NULL default 0,
151 timestamp int(11) NOT NULL default '0',
152 status int(2) NOT NULL default '0',
153 uid int(10) unsigned NOT NULL default '0'
154 ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
155 }
156 return $ret;
157 }
158
159 function og2list_update_2() {
160 $ret = array();
161 switch ($GLOBALS['db_type']) {
162 case 'mysql':
163 case 'mysqli':
164 $ret[] = db_query('ALTER TABLE og2list_outgoing_recipients ADD KEY recipient_address (recipient_address)');
165 }
166 return $ret;
167 }
168
169 function og2list_update_3() {
170 $ret = array();
171 switch ($GLOBALS['db_type']) {
172 case 'mysql':
173 case 'mysqli':
174 $ret[] = db_query("ALTER TABLE {og_uid} ADD `digest` int(1) default '0'");
175 }
176 return $ret;
177 }
178
179 function og2list_update_4() {
180 $ret = array();
181 switch ($GLOBALS['db_type']) {
182 case 'mysql':
183 case 'mysqli':
184 $ret[] = db_query("ALTER TABLE og2list_groups ADD `moderate` int(2) default '0'");
185 $ret[] = db_query("ALTER TABLE og2list_outgoing_content ADD is_node int(2) NOT NULL default '0'");
186 $ret[] = db_query("ALTER TABLE og2list_outgoing_content ADD id int(10) unsigned NOT NULL default 0");
187 }
188 return $ret;
189 }
190
191 function og2list_update_5() {
192 $ret = array();
193 switch ($GLOBALS['db_type']) {
194 case 'mysql':
195 case 'mysqli':
196 $result = db_fetch_object(db_query("SELECT * FROM {system} WHERE name = 'og'"));
197 $ret[] = db_query("UPDATE {system} SET weight = %d + 1 WHERE name = 'og2list'", $result->weight);
198 }
199 return $ret;
200 }
201
202 function og2list_update_6() {
203 $ret = array();
204 switch ($GLOBALS['db_type']) {
205 case 'mysql':
206 case 'mysqli':
207 $ret[] = db_query("ALTER TABLE og2list_groups ADD prefix varchar(128) NOT NULL default ''");
208 }
209 return $ret;
210 }
211
212 function og2list_update_7() {
213 $ret = array();
214 switch ($GLOBALS['db_type']) {
215 case 'mysql':
216 case 'mysqli':
217 $ret[] = update_sql('UPDATE {og_uid} SET mail_type = 7 WHERE digest = 1 AND mail_type = 1');
218 $ret[] = update_sql("ALTER TABLE {og_uid} DROP digest");
219 }
220 return $ret;
221 }
222
223 function og2list_update_8() {
224 $ret = array();
225 switch ($GLOBALS['db_type']) {
226 case 'mysql':
227 case 'mysqli':
228 $ret[] = db_query("CREATE TABLE og2list_attachment (
229 -- Seriel ID
230 fid int(10) unsigned NOT NULL auto_increment,
231 -- FK for messages in og2list_incoming_content.
232 mid int(10) unsigned NOT NULL default 0,
233 filename varchar(255) NOT NULL default '',
234 content_type varchar(255) NOT NULL default '',
235 -- Medium Blob allows for 2^24 bytes (16Mb) which
236 -- is greater than most mail servers will allow
237 payload MEDIUMBLOB,
238 -- Disposition may be 'inline' or 'attached'
239 disposition varchar(255) NOT NULL default '',
240 PRIMARY KEY (fid)
241 );");
242 }
243 return $ret;
244 }
245
246 // now using db_next_id() from Drupal API instead of mysql_next_id() when inserting new messages.
247 function og2list_update_9() {
248 $ret = array();
249
250 switch ($GLOBALS['db_type']) {
251 case 'mysql':
252 case 'mysqli':
253 $ret[] = update_sql("ALTER TABLE og2list_outgoing_content CHANGE `mid` `mid` INT( 10 ) UNSIGNED NOT NULL");
254 $ret[] = update_sql("REPLACE INTO {sequences} (name,id) SELECT 'og2list_outgoing_content_mid' AS name, MAX(mid) AS id FROM og2list_outgoing_content");
255 }
256 return $ret;
257 }

  ViewVC Help
Powered by ViewVC 1.1.2