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

Contents of /contributions/modules/og_blueprints/og_blueprints.install

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


Revision 1.2 - (show annotations) (download) (as text)
Thu Apr 17 21:17:25 2008 UTC (19 months, 1 week ago) by sdboyer
Branch: MAIN
CVS Tags: DRUPAL-5--1-0-ALPHA4, DRUPAL-5--1-0-ALPHA1, DRUPAL-5--1-0-ALPHA3, DRUPAL-5--1-0-ALPHA2, HEAD
Branch point for: DRUPAL-5
Changes since 1.1: +50 -16 lines
File MIME type: text/x-php
ready for alpha1 release
1 <?php
2 // $Id: og_blueprints.install,v 1.1 2008/04/12 05:14:13 sdboyer Exp $
3
4 function og_blueprints_install() {
5 switch ($GLOBALS['db_type']) {
6 case 'mysql':
7 case 'mysqli':
8 db_query(<<<EOT
9 CREATE TABLE {og_bundle} (
10 grouptype varchar(32) NOT NULL,
11 bid int(11) PRIMARY KEY,
12 vid int(11) NOT NULL DEFAULT 0,
13 release_id int(4) NULL,
14 KEY (vid),
15 KEY bvid (bid, vid)
16 ) /*!40100 DEFAULT CHARACTER SET utf8 */
17 EOT
18 );
19
20 db_query(<<<EOT
21 CREATE TABLE {og_bundle_revision} (
22 bid int(11) NOT NULL,
23 vid int(11) PRIMARY KEY AUTO_INCREMENT,
24 release_id int(4) NULL,
25 release_name varchar(128) NULL,
26 timestamp int(11) NULL,
27 KEY bvid (vid, bid),
28 KEY release_idx (vid, release_id)
29 ) /*!40100 DEFAULT CHARACTER SET utf8 */
30 EOT
31 );
32
33 db_query(<<<EOT
34 CREATE TABLE {og_blueprint} (
35 bid int(11) NOT NULL,
36 vid int(11) NOT NULL,
37 bpid int(11) NOT NULL,
38 bpname varchar(32) NOT NULL,
39 did int(11) NOT NULL DEFAULT 0,
40 linked int(1) DEFAULT 1,
41 enabled int(1) DEFAULT 0,
42 published int(1) DEFAULT 0,
43 default_page int(1) DEFAULT 0,
44 page_title varchar(255) NOT NULL,
45 path varchar(100) NOT NULL,
46 show_blocks int(1) DEFAULT 1,
47 weight int(4) DEFAULT 0,
48 PRIMARY KEY (bpid, bid, vid),
49 KEY rev_idx (vid),
50 KEY bp_idx (bpid, bpname)
51 ) /*!40100 DEFAULT CHARACTER SET utf8 */
52 EOT
53 );
54
55 db_query(<<<EOT
56 CREATE TABLE {og_blueprint_control} (
57 bid int(11) NOT NULL,
58 vid int(11) NOT NULL,
59 bpid int(11) NOT NULL,
60 nid int(11) NOT NULL,
61 did_link int(1) NOT NULL DEFAULT 1,
62 PRIMARY KEY (nid, bpid),
63 KEY bvid (bid, vid),
64 KEY linked (nid, bpid, did_link)
65 ) /*!40100 DEFAULT CHARACTER SET utf8 */
66 EOT
67 );
68 break;
69
70 case 'pgsql':
71 db_query(<<<EOT
72 CREATE TABLE {og_bundle} (
73 grouptype varchar(32) NOT NULL,
74 bid integer(11) NOT NULL,
75 vid integer(11) NOT NULL DEFAULT 0,
76 release_id integer(4) NULL,
77 PRIMARY KEY bid
78 );
79 EOT
80 );
81 db_query("CREATE SEQUENCE {og_bundle}_bid_seq;");
82 db_query("CREATE INDEX {og_bundle}_bvid ON {og_bundle} (bid, vid);");
83 db_query("CREATE INDEX {og_bundle}_vid ON {og_bundle} (vid);");
84 db_query(<<<EOT
85 CREATE TABLE {og_bundle_revision} (
86 bid int(11) NOT NULL,
87 vid int(11) NOT NULL,
88 release_id integer(4) NOT NULL DEFAULT 0,
89 release_name varchar(128),
90 timestamp integer(11) NULL,
91 PRIMARY KEY (vid)
92 );
93 EOT
94 );
95 db_query("CREATE SEQUENCE {og_bundle_revision}_vid_seq;");
96 db_query("CREATE INDEX {og_bundle_revision}_bvid ON {og_bundle_revision} (vid, bid);");
97 db_query("CREATE INDEX {og_bundle_revision}_release_idx ON {og_bundle_revision} (vid, release_id);");
98 db_query(<<<EOT
99 CREATE TABLE {og_blueprint} (
100 bid int(11) NOT NULL,
101 vid int(11) NOT NULL,
102 bpid int(11) NOT NULL,
103 bpname varchar(32) NOT NULL,
104 did int(11) NOT NULL DEFAULT 0,
105 linked int(1) DEFAULT 1,
106 enabled int(1) DEFAULT 0,
107 published int(1) DEFAULT 0,
108 default_page int(1) DEFAULT 0,
109 page_title varchar(255) NOT NULL,
110 show_blocks int(1) DEFAULT 1,
111 path varchar(100) NOT NULL,
112 weight int(4) DEFAULT 0,
113 PRIMARY KEY (bid, vid, bpid)
114 );
115 EOT
116 );
117 db_query("CREATE INDEX {og_blueprint}_revision_idx ON {og_blueprint} (bpname, bpid);");
118 db_query("CREATE INDEX {og_blueprint}_bvid ON {og_blueprint} (bid, vid);");
119 db_query("CREATE INDEX {og_blueprint}_rev_idx ON {og_blueprint} (vid);");
120 db_query(<<<EOT
121 CREATE TABLE {og_blueprint_control} (
122 bid integer(11) NOT NULL,
123 vid integer(11) NOT NULL,
124 bpid integer(11) NOT NULL,
125 nid integer(11) NOT NULL,
126 did_link integer(1) NOT NULL DEFAULT 1,
127 PRIMARY KEY (nid, bpid)
128 );
129 EOT
130 );
131 db_query("CREATE INDEX {og_blueprint_control}_linked ON {og_blueprint_control} (nid, bpid, did_link);");
132 break;
133 }
134 $bid = db_next_id("{og_bundle}_bid");
135 db_query("INSERT INTO {og_bundle} (grouptype, bid, vid) VALUES ('%s', 1, 1)", 'master');
136 db_query("INSERT INTO {og_bundle_revision} (vid, bid) VALUES (1, 1)");
137 variable_set('og_blueprints_mode', 0);
138 }
139
140 function og_blueprints_uninstall() {
141 db_query('DROP TABLE {og_bundle}');
142 db_query('DROP TABLE {og_bundle_revision}');
143 db_query('DROP TABLE {og_blueprint}');
144 db_query('DROP TABLE {og_blueprint_control}');
145 if (in_array($GLOBALS['db_type'], array('mysql', 'mysqli'))) {
146 db_query("DELETE FROM {sequences} WHERE name IN ('{og_bundle}_bid', '{og_blueprint}_bpid')");
147 }
148 // Delete variables
149 $variables = array('og_blueprints_mode', 'og_blueprints_list');
150 foreach ($variables as $variable) {
151 variable_del($variable);
152 }
153 }
154
155 /**
156 * Implementation of hook_enable()
157 *
158 */
159 function og_blueprints_enable() {
160 drupal_set_message(t('OG Blueprints has been installed. You can begin configuring your blueprint bundles at the !link administrative menu.', array('!link' => l(t('OG Blueprints'), 'admin/og/og_blueprints'))));
161 }
162
163 /**
164 * Smarter implementation of update_sql() that allows for args to be passed
165 * through the normal db_query escaping functions. So, mostly nicked from db_query()
166 *
167 */
168 function _og_blueprints_update_sql($sql) {
169 $args = func_get_args();
170 array_shift($args);
171 if (isset($args[0]) and is_array($args[0])) { // 'All arguments in one array' syntax
172 $args = $args[0];
173 }
174 $result = db_query($sql, $args);
175 _db_query_callback($args, TRUE);
176 $query = preg_replace_callback(DB_QUERY_REGEXP, '_db_query_callback', $sql);
177 return array('success' => $result !== FALSE, 'query' => check_plain($query));
178 }

  ViewVC Help
Powered by ViewVC 1.1.2