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

Contents of /contributions/modules/user_suspend/user_suspend.install

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


Revision 1.2 - (show annotations) (download) (as text)
Mon Jun 30 16:24:43 2008 UTC (16 months, 3 weeks ago) by gestaltware
Branch: MAIN
CVS Tags: DRUPAL-5--1-2, HEAD
Changes since 1.1: +1 -1 lines
File MIME type: text/x-php
#246681 by gestaltware: support only default schema data.
Streamlined table copy functions to support only default schema data.
Added check to prevent suspending self.
Fixed install error for pgsql db.
1 <?php
2 // $Id$
3
4 /**
5 * Implementation of hook_install().
6 */
7 function user_suspend_install() {
8 switch ($GLOBALS['db_type']) {
9 case 'mysqli':
10 case 'mysql':
11 db_query("CREATE TABLE if not exists {user_suspend} (
12 uid int unsigned NOT NULL default '0',
13 suspended int NOT NULL default '0',
14 PRIMARY KEY (uid)
15 ) TYPE=MyISAM /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
16
17 db_query("CREATE TABLE if not exists {user_suspend_users} (
18 uid int unsigned NOT NULL default '0',
19 name varchar(60) NOT NULL default '',
20 pass varchar(32) NOT NULL default '',
21 mail varchar(64) default '',
22 mode tinyint NOT NULL default '0',
23 sort tinyint default '0',
24 threshold tinyint default '0',
25 theme varchar(255) NOT NULL default '',
26 signature varchar(255) NOT NULL default '',
27 created int NOT NULL default '0',
28 access int NOT NULL default '0',
29 login int NOT NULL default '0',
30 status tinyint NOT NULL default '0',
31 timezone varchar(8) default NULL,
32 language varchar(12) NOT NULL default '',
33 picture varchar(255) NOT NULL DEFAULT '',
34 init varchar(64) default '',
35 data longtext,
36 PRIMARY KEY (uid),
37 UNIQUE KEY name (name),
38 KEY access (access)
39 ) TYPE=MyISAM /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
40
41 db_query("CREATE TABLE if not exists {user_suspend_users_roles} (
42 uid int unsigned NOT NULL default '0',
43 rid int unsigned NOT NULL default '0',
44 PRIMARY KEY (uid, rid)
45 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
46
47 db_query("CREATE TABLE if not exists {user_suspend_node} (
48 nid int unsigned NOT NULL auto_increment,
49 vid int unsigned NOT NULL default '0',
50 type varchar(32) NOT NULL default '',
51 title varchar(128) NOT NULL default '',
52 uid int NOT NULL default '0',
53 status int NOT NULL default '1',
54 created int NOT NULL default '0',
55 changed int NOT NULL default '0',
56 comment int NOT NULL default '0',
57 promote int NOT NULL default '0',
58 moderate int NOT NULL default '0',
59 sticky int NOT NULL default '0',
60 PRIMARY KEY (nid, vid),
61 UNIQUE KEY vid (vid),
62 KEY node_type (type(4)),
63 KEY node_title_type (title, type(4)),
64 KEY status (status),
65 KEY uid (uid),
66 KEY node_moderate (moderate),
67 KEY node_promote_status (promote, status),
68 KEY node_created (created),
69 KEY node_changed (changed),
70 KEY node_status_type (status, type, nid),
71 KEY nid (nid)
72 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
73
74 db_query("CREATE TABLE {user_suspend_comments} (
75 cid int NOT NULL auto_increment,
76 pid int NOT NULL default '0',
77 nid int NOT NULL default '0',
78 uid int NOT NULL default '0',
79 subject varchar(64) NOT NULL default '',
80 comment longtext NOT NULL,
81 hostname varchar(128) NOT NULL default '',
82 timestamp int NOT NULL default '0',
83 score mediumint NOT NULL default '0',
84 status tinyint unsigned NOT NULL default '0',
85 format int NOT NULL default '0',
86 thread varchar(255) NOT NULL,
87 users longtext,
88 name varchar(60) default NULL,
89 mail varchar(64) default NULL,
90 homepage varchar(255) default NULL,
91 PRIMARY KEY (cid),
92 KEY lid (nid)
93 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
94
95 break;
96
97 case 'pgsql':
98 db_query("CREATE TABLE {user_suspend} (
99 uid serial CHECK (uid >= 0),
100 suspended int NOT NULL default '0',
101 PRIMARY KEY (uid)
102 )");
103
104 db_query("CREATE TABLE {user_suspend_users} (
105 uid serial CHECK (uid >= 0),
106 name varchar(60) NOT NULL default '',
107 pass varchar(32) NOT NULL default '',
108 mail varchar(64) default '',
109 mode smallint NOT NULL default '0',
110 sort smallint default '0',
111 threshold smallint default '0',
112 theme varchar(255) NOT NULL default '',
113 signature varchar(255) NOT NULL default '',
114 created int NOT NULL default '0',
115 access int NOT NULL default '0',
116 login int NOT NULL default '0',
117 status smallint NOT NULL default '0',
118 timezone varchar(8) default NULL,
119 language varchar(12) NOT NULL default '',
120 picture varchar(255) NOT NULL DEFAULT '',
121 init varchar(64) default '',
122 data text,
123 PRIMARY KEY (uid),
124 UNIQUE (name)
125 )");
126 db_query("CREATE INDEX {user_suspend_users}_access_idx ON {user_suspend_users} (access)");
127
128 db_query("CREATE TABLE {user_suspend_users_roles} (
129 uid int_unsigned NOT NULL default '0',
130 rid int_unsigned NOT NULL default '0',
131 PRIMARY KEY (uid, rid)
132 )");
133
134 db_query("CREATE TABLE {user_suspend_node} (
135 nid serial CHECK (nid >= 0),
136 vid int_unsigned NOT NULL default '0',
137 type varchar(32) NOT NULL default '',
138 title varchar(128) NOT NULL default '',
139 uid int NOT NULL default '0',
140 status int NOT NULL default '1',
141 created int NOT NULL default '0',
142 changed int NOT NULL default '0',
143 comment int NOT NULL default '0',
144 promote int NOT NULL default '0',
145 moderate int NOT NULL default '0',
146 sticky int NOT NULL default '0',
147 PRIMARY KEY (nid, vid),
148 UNIQUE (vid)
149 )");
150 db_query("CREATE INDEX {user_suspend_node}_node_type_idx ON {user_suspend_node} (substr (type, 1, 4))");
151 db_query("CREATE INDEX {user_suspend_node}_node_title_type_idx ON {user_suspend_node} (title, substr(type, 1, 4))");
152 db_query("CREATE INDEX {user_suspend_node}_status_idx ON {user_suspend_node} (status)");
153 db_query("CREATE INDEX {user_suspend_node}_uid_idx ON {user_suspend_node} (uid)");
154 db_query("CREATE INDEX {user_suspend_node}_node_moderate_idx ON {user_suspend_node} (moderate)");
155 db_query("CREATE INDEX {user_suspend_node}_node_promote_status_idx ON {user_suspend_node} (promote, status)");
156 db_query("CREATE INDEX {user_suspend_node}_node_created_idx ON {user_suspend_node} (created)");
157 db_query("CREATE INDEX {user_suspend_node}_node_changed_idx ON {user_suspend_node} (changed)");
158 db_query("CREATE INDEX {user_suspend_node}_node_status_type_idx ON {user_suspend_node} (status, type, nid)");
159 db_query("CREATE INDEX {user_suspend_node}_nid_idx ON {user_suspend_node} (nid)");
160
161 db_query("CREATE TABLE {user_suspend_comments} (
162 cid serial,
163 pid int NOT NULL default '0',
164 nid int NOT NULL default '0',
165 uid int NOT NULL default '0',
166 subject varchar(64) NOT NULL default '',
167 comment text NOT NULL,
168 hostname varchar(128) NOT NULL default '',
169 timestamp int NOT NULL default '0',
170 score int NOT NULL default '0',
171 status smallint_unsigned NOT NULL default '0',
172 format smallint NOT NULL default '0',
173 thread varchar(255) NOT NULL,
174 users text,
175 name varchar(60) default NULL,
176 mail varchar(64) default NULL,
177 homepage varchar(255) default NULL,
178 PRIMARY KEY (cid)
179 )");
180 db_query("CREATE INDEX {user_suspend_comments}_nid_idx ON {user_suspend_comments} (nid)");
181 break;
182
183 default:
184 break;
185 }
186 db_query("UPDATE {system} SET weight = -9 WHERE name = 'user_suspend'");
187 }
188
189 /**
190 * Implementation of hook_uninstall().
191 */
192 function user_suspend_uninstall() {
193 db_query("DROP TABLE {user_suspend}");
194 db_query("DROP TABLE {user_suspend_users}");
195 db_query("DROP TABLE {user_suspend_users_roles}");
196 db_query("DROP TABLE {user_suspend_node}");
197 db_query("DROP TABLE {user_suspend_comments}");
198 $variables = array(
199 'user_suspend_remove_nodes',
200 'user_suspend_remove_comments',
201 'user_suspend_email_suspend',
202 'user_suspend_email_suspend_subject',
203 'user_suspend_email_suspend_body',
204 'user_suspend_email_reinstate',
205 'user_suspend_email_reinstate_subject',
206 'user_suspend_email_reinstate_body',
207 );
208 foreach ($variables as $variable) {
209 variable_del($variable);
210 }
211 cache_clear_all();
212 }

  ViewVC Help
Powered by ViewVC 1.1.2