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

Contents of /contributions/modules/rpg/rpg.install

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


Revision 1.25 - (show annotations) (download) (as text)
Sat Mar 8 00:31:03 2008 UTC (20 months, 2 weeks ago) by aaron
Branch: MAIN
CVS Tags: HEAD
Changes since 1.24: +44 -1 lines
File MIME type: text/x-php
fix character creation process, so it correctly selects the character
change object insertion so it uses rpg_set instead of _rpg_set_raw
1 <?php
2 // $Id: rpg.install,v 1.24 2008/02/10 03:32:07 aaron Exp $
3
4 function rpg_install() {
5 switch ($GLOBALS['db_type']) {
6 case 'mysql':
7 case 'mysqli':
8 // this stores all object information
9 db_query("
10 CREATE TABLE {rpg} (
11 rid int(10) NOT NULL default '0',
12 uid int(10) NOT NULL default '0',
13 created int(11) NOT NULL default '0',
14 changed int(11) NOT NULL default '0',
15 data longtext NOT NULL,
16 PRIMARY KEY (rid),
17 KEY uid (uid)
18 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
19 ");
20 // this stores all the types of an object
21 db_query("
22 CREATE TABLE {rpg_object_types} (
23 rid int(10) NOT NULL default '0',
24 type varchar(128) NOT NULL default '',
25 KEY rid (rid),
26 KEY type (type)
27 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
28 ");
29 // this stores meta info about object types: more tables are created dynamically
30 db_query("
31 CREATE TABLE {rpg_types} (
32 type varchar(128) NOT NULL default '',
33 name varchar(128) NOT NULL default '',
34 module varchar(128) NOT NULL default '',
35 parents longtext NOT NULL,
36 shortdesc longtext NOT NULL,
37 longdesc longtext NOT NULL,
38 data longtext NOT NULL,
39 PRIMARY KEY (type),
40 KEY name (name),
41 KEY module (module)
42 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
43 ");
44 // this stores meta info about attributes: more tables are created dynamically
45 db_query("
46 CREATE TABLE {rpg_attributes} (
47 attribute varchar(128) NOT NULL default '',
48 class varchar(128) NOT NULL default '',
49 name varchar(128) NOT NULL default '',
50 PRIMARY KEY (attribute)
51 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
52 ");
53 // this stores meta info about actions: more tables are created dynamically
54 db_query("
55 CREATE TABLE {rpg_actions} (
56 action varchar(128) NOT NULL default '',
57 name varchar(128) NOT NULL default '',
58 PRIMARY KEY (action)
59 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
60 ");
61 // this stores meta info about events: more tables are created dynamically
62 db_query("
63 CREATE TABLE {rpg_events_table} (
64 event varchar(128) NOT NULL default '',
65 name varchar(128) NOT NULL default '',
66 PRIMARY KEY (event)
67 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
68 ");
69 // this is a many-to-many table of objects that are pc objects (may be subject of rpg/play). keyed to drupal user
70 db_query("
71 CREATE TABLE {rpg_pc} (
72 uid int(10) NOT NULL default '0',
73 rid int(10) NOT NULL default '0',
74 active int(2) NOT NULL default '0',
75 KEY uid (uid),
76 KEY rid (rid)
77 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
78 ");
79 // this is the rpg cache table.
80 db_query("
81 CREATE TABLE {cache_rpg} (
82 cid varchar(255) NOT NULL default '',
83 data longblob,
84 expire int(11) NOT NULL default '0',
85 created int(11) NOT NULL default '0',
86 headers text,
87 PRIMARY KEY (cid),
88 INDEX expire (expire)
89 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
90 ");
91 break;
92 case 'pgsql':
93 // these are the same tables as above, but for pgsql. love d6...
94 db_query("
95 CREATE TABLE {rpg} (
96 rid integer NOT NULL default '0',
97 uid integer NOT NULL default '0',
98 created integer NOT NULL default '0',
99 changed integer NOT NULL default '0',
100 data text NOT NULL default '',
101 PRIMARY KEY (rid)
102 );
103 ");
104 db_query("CREATE INDEX {rpg}_rid_idx ON {rpg}(rid);");
105 db_query("CREATE INDEX {rpg}_uid_idx ON {rpg}(uid);");
106 db_query("
107 CREATE TABLE {rpg_object_types} (
108 rid integer NOT NULL default '0',
109 type varchar(128) NOT NULL default ''
110 );
111 ");
112 db_query("CREATE INDEX {rpg_object_types}_rid_idx ON {rpg_object_types}(rid);");
113 db_query("CREATE INDEX {rpg_object_types}_type_idx ON {rpg_object_types}(type);");
114 db_query("
115 CREATE TABLE {rpg_types} (
116 type varchar(128) NOT NULL default '',
117 name varchar(128) NOT NULL default '',
118 module varchar(128) NOT NULL default '',
119 parents text NOT NULL default '',
120 shortdesc text NOT NULL default '',
121 longdesc text NOT NULL default '',
122 data text NOT NULL default '',
123 PRIMARY KEY (type)
124 );
125 ");
126 db_query("CREATE INDEX {rpg_types}_type_idx ON {rpg_types}(type);");
127 db_query("CREATE INDEX {rpg_types}_name_idx ON {rpg_types}(name);");
128 db_query("CREATE INDEX {rpg_types}_module_idx ON {rpg_types}(module);");
129 db_query("
130 CREATE TABLE {rpg_attributes} (
131 attribute varchar(128) NOT NULL default '',
132 class varchar(128) NOT NULL default '',
133 name varchar(128) NOT NULL default '',
134 PRIMARY KEY (attribute)
135 );
136 ");
137 db_query("CREATE INDEX {rpg_attributes}_attribute_idx ON {rpg_attributes}(attribute);");
138 db_query("
139 CREATE TABLE {rpg_actions} (
140 action varchar(128) NOT NULL default '',
141 name varchar(128) NOT NULL default '',
142 PRIMARY KEY (action)
143 );
144 ");
145 db_query("CREATE INDEX {rpg_actions}_action_idx ON {rpg_actions}(action);");
146 db_query("
147 CREATE TABLE {rpg_events_table} (
148 event varchar(128) NOT NULL default '',
149 name varchar(128) NOT NULL default '',
150 PRIMARY KEY (action)
151 );
152 ");
153 db_query("CREATE INDEX {rpg_events_table}_event_idx ON {rpg_events_table}(event);");
154 db_query("
155 CREATE TABLE {rpg_pc} (
156 uid integer NOT NULL default '0',
157 rid integer NOT NULL default '0',
158 active integer NOT NULL default '0'
159 );
160 ");
161 db_query("CREATE INDEX {rpg_pc}_uid_idx ON {rpg_pc}(uid);");
162 db_query("CREATE INDEX {rpg_pc}_rid_idx ON {rpg_pc}(rid);");
163 db_query("
164 CREATE TABLE {cache_rpg} (
165 cid varchar(255) NOT NULL default '',
166 data bytea default '',
167 expire integer NOT NULL default '0',
168 created integer NOT NULL default '0',
169 headers text default '',
170 PRIMARY KEY (cid)
171 );
172 ");
173 db_query("CREATE INDEX {rpg_cache}_expire_idx ON {rpg_cache}(expire);");
174 break;
175 }
176 }
177
178 /**
179 * move types to their own table
180 */
181 function rpg_update_1() {
182 $ret = array();
183 switch ($GLOBALS['db_type']) {
184 case 'mysql':
185 case 'mysqli':
186 $ret[] = update_sql("
187 CREATE TABLE {rpg_object_types} (
188 rid int(10) NOT NULL default '0',
189 type varchar(128) NOT NULL default '',
190 KEY rid (rid),
191 KEY type (type)
192 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
193 ");
194 break;
195 case 'pgsql':
196 $ret[] = update_sql("
197 CREATE TABLE {rpg_object_types} (
198 rid integer NOT NULL default '0',
199 type varchar(128) NOT NULL default ''
200 );
201 ");
202 $ret[] = update_sql("CREATE INDEX {rpg_object_types}_rid_idx ON {rpg_object_types}(rid);");
203 $ret[] = update_sql("CREATE INDEX {rpg_object_types}_type_idx ON {rpg_object_types}(type);");
204 break;
205 }
206 $results = db_query("SELECT rid, types FROM {rpg}");
207 while ($object = db_fetch_object($results)) {
208 foreach (unserialize($object->types) as $type) {
209 $ret[] = update_sql("INSERT INTO {rpg_object_types} (rid, type) VALUES (" . $object->rid . ", '" . db_escape_string($type) . "')");
210 }
211 }
212 $ret[] = update_sql("ALTER TABLE {rpg} DROP types");
213 return $ret;
214 }
215
216 function rpg_update_2() {
217 $ret = array();
218 $ret[] = update_sql("DELETE FROM {cache_rpg}");
219 return $ret;
220 }
221
222 /**
223 * set form_display in action/attribute tables
224 */
225 function rpg_update_3() {
226 $changes = "ADD COLUMN form_display varchar(255) NOT NULL default ''";
227 $ret = _rpg_update_attribute_table_alter($changes);
228 $ret[] = update_sql("DELETE FROM {cache_rpg}");
229 return $ret;
230 }
231
232 function _rpg_update_attribute_table_alter($changes) {
233 include_once('./'. drupal_get_path('module', 'rpg') .'/rpg.module');
234 $ret = array();
235 $attributes = rpg_attributes();
236 foreach ($attributes as $attribute) {
237 $type_table = "rpg_attribute_types_{$attribute['attribute']}";
238 $ret[] = update_sql("ALTER TABLE {" . $type_table . "} $changes");
239 }
240 return $ret;
241 }
242
243 function _rpg_update_action_table_alter($changes) {
244 include_once('./'. drupal_get_path('module', 'rpg') .'/rpg.module');
245 $ret = array();
246 $actions = rpg_actions();
247 foreach ($actions as $action) {
248 $type_table = "rpg_action_types_{$action['action']}";
249 $ret[] = update_sql("ALTER TABLE {" . $type_table . "} $changes");
250 }
251 $ret[] = update_sql("DELETE FROM {cache_rpg}");
252 return $ret;
253 }
254
255 function rpg_update_4() {
256 $ret = array();
257 $ret[] = update_sql("DROP TABLE {rpg_tangible}");
258 return $ret;
259 }
260
261 function rpg_update_5() {
262 $ret = array();
263 switch ($GLOBALS['db_type']) {
264 case 'mysql':
265 case 'mysqli':
266 $ret[] = update_sql("
267 CREATE TABLE {rpg_events_table} (
268 event varchar(128) NOT NULL default '',
269 name varchar(128) NOT NULL default '',
270 PRIMARY KEY (event)
271 ) /* !40100 DEFAULT CHARACTER SET UTF8 */;
272 ");
273 break;
274 case 'pgsql':
275 $ret[] = update_sql("
276 CREATE TABLE {rpg_events_table} (
277 event varchar(128) NOT NULL default '',
278 name varchar(128) NOT NULL default '',
279 PRIMARY KEY (event)
280 );
281 ");
282 $ret[] = update_sql("CREATE INDEX {rpg_events_table}_event_idx ON {rpg_events_table}(event);");
283 break;
284 }
285 return $ret;
286 }

  ViewVC Help
Powered by ViewVC 1.1.2