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

Contents of /contributions/modules/mysite/mysite.install

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


Revision 1.28 - (show annotations) (download) (as text)
Tue Apr 1 00:55:56 2008 UTC (19 months, 4 weeks ago) by agentken
Branch: MAIN
CVS Tags: DRUPAL-5--3-3, DRUPAL-5--3-2, DRUPAL-5--3-1, DRUPAL-5--3-0, DRUPAL-5--3-0rc2, HEAD
Changes since 1.27: +35 -35 lines
File MIME type: text/x-php
  -- Cleans up profile settings form.
  -- #230919 by WiseOZ.  Fixed display error for droplet source links.
  -- Cleans up code style issues.
  -- Cleans up API documentation.
1 <?php
2 // $Id: mysite.install,v 1.27 2008/01/05 20:45:38 agentken Exp $
3
4 /**
5 * Implementation of hook_install()
6 */
7 function mysite_install() {
8 $success = FALSE;
9 drupal_set_message(t('Installing the MySite module'));
10 switch ($GLOBALS['db_type']) {
11 case 'mysqli':
12 case 'mysql':
13 $sql = "CREATE TABLE {mysite} (
14 uid int(10) NOT NULL default '0',
15 created int(11) NOT NULL default '0',
16 updated int(11) default '0',
17 status tinyint(1) NOT NULL default '0',
18 confirm varchar(1) NOT NULL default '0',
19 title varchar(80) NOT NULL default '',
20 layout varchar(40) NOT NULL default 'default',
21 style varchar(40) NOT NULL default 'default',
22 format varchar(40) NOT NULL default 'default',
23 theme varchar(40),
24 message mediumtext,
25 PRIMARY KEY (uid)
26 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ";
27 db_query($sql);
28
29 $sql = "CREATE TABLE {mysite_data} (
30 mid int(11) NOT NULL,
31 uid int(10) NOT NULL default '0',
32 page int(10) NOT NULL default '0',
33 type varchar(40) NOT NULL default '',
34 type_id int(10) NOT NULL default '0',
35 sort smallint(6) NOT NULL default '0',
36 position smallint(6) NOT NULL default '0',
37 locked varchar(1) NOT NULL default '0',
38 title varchar(255) NOT NULL default '',
39 format varchar(40) NOT NULL default 'default',
40 settings text,
41 PRIMARY KEY (mid),
42 KEY uid (uid)
43 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ";
44 db_query($sql);
45
46 $sql = "CREATE TABLE {mysite_content} (
47 myid int(10) NOT NULL default '0',
48 format smallint(6) default NULL,
49 type varchar(40) NOT NULL default '',
50 type_key varchar(80) default NULL,
51 title varchar(255) NOT NULL default '',
52 base varchar(255) default NULL,
53 xml varchar(255) default NULL,
54 content blob,
55 PRIMARY KEY (myid),
56 KEY type (type),
57 KEY type_key (type_key),
58 KEY title (title)
59 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ";
60 db_query($sql);
61
62 $sql = "CREATE TABLE {mysite_page} (
63 page int(10) NOT NULL default '0',
64 uid int(10) NOT NULL default '0',
65 created int(10) NOT NULL default '0',
66 updated int(10) ,
67 status tinyint(1) NOT NULL default '0',
68 title varchar(80) NOT NULL default '',
69 layout varchar(40) NOT NULL default 'default',
70 style varchar(40) NOT NULL default 'default',
71 format varchar(40) NOT NULL default 'default',
72 theme varchar(40) NULL,
73 UNIQUE (page, uid)
74 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ";
75 db_query($sql);
76
77 $success = TRUE;
78 break;
79
80 case 'pgsql':
81 $sql = "CREATE TABLE {mysite} (
82 uid integer NOT NULL default '0',
83 created integer NOT NULL default '0',
84 updated integer default '0',
85 status integer NOT NULL default '0',
86 confirm varchar(1) NOT NULL default '0',
87 title varchar(80) NOT NULL default '',
88 layout varchar(40) NOT NULL default 'default',
89 style varchar(40) NOT NULL default 'default',
90 format varchar(40) NOT NULL default 'default',
91 theme varchar(40),
92 message text,
93 PRIMARY KEY (uid)
94 )";
95 db_query($sql);
96
97 $sql = "CREATE TABLE {mysite_data} (
98 mid serial,
99 uid integer NOT NULL default '0',
100 page integer NOT NULL default '0',
101 type varchar(40) NOT NULL default '',
102 type_id integer NOT NULL default '0',
103 sort integer NOT NULL default '0',
104 position integer NOT NULL default '0',
105 locked varchar(1) NOT NULL default '0',
106 title varchar(255) NOT NULL default '',
107 format varchar(40) NOT NULL default 'default',
108 settings text,
109 PRIMARY KEY (mid)
110 )";
111 db_query($sql);
112 db_query("CREATE INDEX {mysite_data}_uid_idx ON {mysite_data} (uid)");
113 db_query("CREATE INDEX {mysite_data}_page_idx ON {mysite_data} (page)");
114
115 $sql = "CREATE TABLE {mysite_content} (
116 myid serial,
117 format integer default NULL,
118 type varchar(40) NOT NULL default '',
119 type_key varchar(80) default '',
120 title varchar(255) NOT NULL default '',
121 base varchar(255) default NULL,
122 xml varchar(255) default NULL,
123 content text,
124 PRIMARY KEY (myid)
125 )";
126 db_query($sql);
127 db_query("CREATE INDEX {mysite_content}_type_idx ON {mysite_content} (type)");
128 db_query("CREATE INDEX {mysite_content}_typekey_idx ON {mysite_content} (type_key)");
129 db_query("CREATE INDEX {mysite_content}_title_idx ON {mysite_content} (title)");
130
131 $sql = "CREATE TABLE {mysite_page} (
132 page integer NOT NULL default '0',
133 uid integer NOT NULL default '0',
134 created integer NOT NULL default '0',
135 updated integer,
136 status integer NOT NULL default '0',
137 title varchar(80) NOT NULL default '',
138 layout varchar(40) NOT NULL default 'default',
139 style varchar(40) NOT NULL default 'default',
140 format varchar(40) NOT NULL default 'default',
141 theme varchar(40) NULL,
142 UNIQUE (page, uid)
143 )";
144 db_query($sql);
145 db_query("CREATE INDEX {mysite_page}_page_idx ON {mysite_page} (page)");
146 db_query("CREATE INDEX {mysite_page}_uid_idx ON {mysite_page} (uid)");
147
148 $success = TRUE;
149 break;
150 }
151 if ($success) {
152 drupal_set_message(t('MySite module installed successfully.'));
153 }
154 else {
155 drupal_set_message(t('The installation of the MySite module was unsuccessful.'), 'error');
156 }
157 }
158
159 /**
160 * Update to v 4.7.x.3 -- 27-NOV-2006
161 */
162 function mysite_update_1() {
163 $ret = array();
164 switch ($GLOBALS['db_type']) {
165 case 'mysqli':
166 case 'mysql':
167 $sql = "CREATE TABLE {mysite_content} (
168 myid int(11) NOT NULL default '0',
169 type varchar(40) NOT NULL default '',
170 type_key varchar(80) default NULL,
171 title varchar(255) NOT NULL default '',
172 content blob,
173 PRIMARY KEY (myid),
174 KEY type (type),
175 KEY type_key (type_key)
176 )";
177 $ret[] = update_sql($sql);
178 break;
179
180 case 'pgsql':
181 $sql = "CREATE TABLE {mysite_content} (
182 myid serial,
183 type varchar(40) NOT NULL default '',
184 type_key varchar(80) default '',
185 title varchar(255) NOT NULL default '',
186 content text
187 )";
188 $ret[] = update_sql($sql);
189 $ret[] = update_sql("CREATE INDEX {mysite_content}_myid_idx ON {mysite_content} (myid)");
190 $ret[] = update_sql("CREATE INDEX {mysite_content}_type_idx ON {mysite_content} (type)");
191 $ret[] = update_sql("CREATE INDEX {mysite_content}_typekey_idx ON {mysite_content} (type_key)");
192 break;
193 }
194 return $ret;
195 }
196
197 /**
198 * Update to add theming -- 4 MAR 2007
199 */
200 function mysite_update_2() {
201 $ret = array();
202 switch ($GLOBALS['db_type']) {
203 case 'mysqli':
204 case 'mysql':
205 $sql = "ALTER TABLE {mysite} ADD theme varchar(40);";
206 $ret[] = update_sql($sql);
207 break;
208 case 'pgsql':
209 $sql = "ALTER TABLE {mysite} ADD theme varchar(40);";
210 $ret[] = update_sql($sql);
211 break;
212 }
213 return $ret;
214 }
215
216 /**
217 * Update to restore UTF-8 encoding 20-MAR-2007
218 */
219 function mysite_update_3() {
220 return _system_update_utf8(array('mysite', 'mysite_data', 'mysite_content'));
221 }
222
223 /**
224 * First update to v. 5.x.2
225 */
226 function mysite_update_4() {
227 $ret = array();
228 switch ($GLOBALS['db_type']) {
229 case 'mysqli':
230 case 'mysql':
231 $sql = "ALTER TABLE {mysite_data} ADD position SMALLINT DEFAULT '0' NOT NULL;";
232 $ret[] = update_sql($sql);
233 break;
234 case 'pgsql':
235 $sql = "ALTER TABLE {mysite_data} ADD position integer NOT NULL default '0';";
236 $ret[] = update_sql($sql);
237 break;
238 }
239 return $ret;
240 }
241
242 /**
243 * Second update to v. 5.x.2
244 */
245 function mysite_update_5() {
246 $ret = array();
247 switch ($GLOBALS['db_type']) {
248 case 'mysqli':
249 case 'mysql':
250 $ret[] = update_sql("ALTER TABLE {mysite_content} ADD format smallint(6) default NULL;");
251 $ret[] = update_sql("ALTER TABLE {mysite_content} ADD base varchar(255) default NULL;");
252 $ret[] = update_sql("ALTER TABLE {mysite_content} ADD xml varchar(255) default NULL;");
253 $ret[] = update_sql("ALTER TABLE {mysite_content} ADD INDEX (title);");
254 $ret[] = update_sql("ALTER TABLE {mysite_data} ADD settings text;");
255 break;
256 case 'pgsql':
257 $ret[] = update_sql("ALTER TABLE {mysite_content} ADD format integer default NULL;");
258 $ret[] = update_sql("ALTER TABLE {mysite_content} ADD base varchar(255) default NULL;");
259 $ret[] = update_sql("ALTER TABLE {mysite_content} ADD xml varchar(255) default NULL;");
260 $ret[] = update_sql("CREATE INDEX {mysite_content}_title_idx ON {mysite_content} (title);");
261 $ret[] = update_sql("ALTER TABLE {mysite_data} ADD settings text;");
262 break;
263 }
264 // update red.css and blue.css to fire.css and sky.css
265 $ret[] = update_sql("UPDATE {mysite} SET style = 'fire' WHERE style = 'red';");
266 $ret[] = update_sql("UPDATE {mysite} SET style = 'sky' WHERE style = 'blue';");
267 return $ret;
268 }
269
270 /**
271 * Adds the ability to lock content. See http://drupal.org/node/152917.
272 */
273 function mysite_update_6() {
274 $ret = array();
275 switch ($GLOBALS['db_type']) {
276 case 'mysqli':
277 case 'mysql':
278 $ret[] = update_sql("ALTER TABLE {mysite_data} ADD locked varchar(1) NOT NULL default 0;");
279 break;
280 case 'pgsql':
281 $ret[] = update_sql("ALTER TABLE {mysite_data} ADD locked varchar(1) NOT NULL default 0;");
282 break;
283 }
284 return $ret;
285 }
286
287 /**
288 * Adds the ability to confirm deletion of items.
289 */
290 function mysite_update_7() {
291 $ret = array();
292 $ret[] = update_sql("ALTER TABLE {mysite} ADD confirm varchar(1) NOT NULL default 0;");
293 return $ret;
294 }
295
296 /**
297 * Update to 5.x.3 -- add the page (mysite page id) to the {mysite_data} table.
298 */
299 function mysite_update_8() {
300 $ret = array();
301 switch ($GLOBALS['db_type']) {
302 case 'mysqli':
303 case 'mysql':
304 $ret[] = update_sql("ALTER TABLE {mysite_data} ADD {page} INT DEFAULT '0' NOT NULL AFTER uid;");
305 $ret[] = update_sql("ALTER TABLE {mysite_data} ADD INDEX (page);");
306 break;
307 case 'pgsql':
308 db_add_column($ret, 'mysite_data', 'page', 'int', array('default' => 0, 'not null' => TRUE));
309 $ret[] = update_sql("CREATE INDEX {mysite_data}_page_idx ON {mysite_data} (page)");
310 break;
311 }
312 return $ret;
313 }
314
315 /**
316 * Update to 5.x.3 -- add the {mysite_page} table.
317 */
318 function mysite_update_9() {
319 $ret = array();
320 switch ($GLOBALS['db_type']) {
321 case 'mysqli':
322 case 'mysql':
323 $sql = "CREATE TABLE {mysite_page} (
324 page int(10) NOT NULL default '0',
325 uid int(10) NOT NULL default '0',
326 created int(10) NOT NULL default '0',
327 updated int(10) ,
328 status tinyint(1) NOT NULL default '0',
329 title varchar(80) NOT NULL default '',
330 layout varchar(40) NOT NULL default 'default',
331 style varchar(40) NOT NULL default 'default',
332 format varchar(40) NOT NULL default 'default',
333 theme varchar(40) NULL,
334 UNIQUE (page, uid)
335 ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ";
336 $ret[] = update_sql($sql);
337 break;
338 case 'pgsql':
339 $sql = "CREATE TABLE {mysite_page} (
340 page integer NOT NULL default '0',
341 uid integer NOT NULL default '0',
342 created integer NOT NULL default '0',
343 updated integer,
344 status integer NOT NULL default '0',
345 title varchar(80) NOT NULL default '',
346 layout varchar(40) NOT NULL default 'default',
347 style varchar(40) NOT NULL default 'default',
348 format varchar(40) NOT NULL default 'default',
349 theme varchar(40) NULL,
350 UNIQUE (page, uid)
351 )";
352 $ret[] = update_sql($sql);
353 $ret[] = update_sql("CREATE INDEX {mysite_page}_page_idx ON {mysite_page} (page)");
354 $ret[] = update_sql("CREATE INDEX {mysite_page}_uid_idx ON {mysite_page} (uid)");
355 break;
356 }
357 return $ret;
358 }
359
360 /**
361 * Update to 5.x.3 -- corrections to pgsql
362 */
363 function mysite_update_10() {
364 $ret = array();
365 if ($GLOBALS['db_type'] == 'pgsql') {
366 db_change_column($ret, 'mysite', 'uid', 'integer', array('not null' => TRUE, 'default' => 0));
367 // Reindex the coluimn.
368 $ret[] = update_sql("DROP INDEX {mysite}_uid_idx");
369 $ret[] = update_sql("CREATE INDEX {mysite}_uid_idx ON {mysite} (uid)");
370 $ret[] = update_sql("ALTER TABLE {mysite} ADD CONSTRAINT PRIMARY KEY (uid)");
371 $ret[] = update_sql("ALTER TABLE {mysite_data} ADD CONSTRAINT PRIMARY KEY (mid)");
372 $ret[] = update_sql("ALTER TABLE {mysite_content} ADD CONSTRAINT PRIMARY KEY (myid)");
373 }
374 return $ret;
375 }
376
377 /**
378 * Update to 5.x.3 -- create a {mysite_page} entry for current users.
379 */
380 function mysite_update_11() {
381 $ret = array();
382 $result = db_query("SELECT * FROM {mysite}");
383 while ($mysite = db_fetch_object($result)) {
384 $page_check = db_result(db_query("SELECT COUNT(*) FROM {mysite_page} WHERE uid = %d AND page = %d", $mysite->uid, 0));
385 if (empty($page_check)) {
386 db_query("INSERT INTO {mysite_page} (page, uid, created, updated, status, title, layout, style, format, theme)
387 VALUES (%d, %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s')",
388 $page, $mysite->uid, $mysite->created, $mysite->updated, $mysite->status, $mysite->title, $mysite->layout, $mysite->style, $mysite->format, $mysite->theme);
389 }
390 }
391 return $ret;
392 }
393
394 /**
395 * Implementation of hook_uninstall().
396 */
397 function mysite_uninstall() {
398 // Drop the tables.
399 db_query('DROP TABLE {mysite}');
400 db_query('DROP TABLE {mysite_content}');
401 db_query('DROP TABLE {mysite_data}');
402 db_query('DROP TABLE {mysite_page}');
403
404 // Delete the variables correctly.
405 $variables = array(
406 'mysite_browser_max',
407 'mysite_browser_pager',
408 'mysite_browser',
409 'mysite_cache',
410 'mysite_confirm_delete',
411 'mysite_content',
412 'mysite_cron',
413 'mysite_default_user',
414 'mysite_elements',
415 'mysite_fullscreen',
416 'mysite_items',
417 'mysite_links',
418 'mysite_list',
419 'mysite_pages',
420 'mysite_private_status',
421 'mysite_sitename',
422 'mysite_theme_settings',
423 'mysite_use_icons'
424 );
425 foreach ($variables as $var) {
426 variable_del($var);
427 }
428 }

  ViewVC Help
Powered by ViewVC 1.1.2