root/dev/install/install_step40_tblchk.php @ 400

Revision 400, 11.7 KB (checked in by kovell, 13 years ago)

Fixes: install is locked after first run, private cache files made inaccesible, initial summary caching removed from kill posting, board will not attempt to run on MySQL < 4.1, PILOT_ID cannot be set, legacy option removed from admin panel, pos values added to installation defaults

Line 
1<?php
2if(!$installrunning) {header('Location: index.php');die();}
3
4function check_commenttable()
5{
6    $qry = new DBQuery();
7    $query = 'select count(*) from kb3_comments';
8    $result = $qry->execute($query);
9    if ($result)
10    {
11        check_commenttablerow();
12        return;
13    }
14    $query = 'CREATE TABLE `kb3_comments` (
15        `ID` INT NOT NULL AUTO_INCREMENT ,
16        `kll_id` INT NOT NULL ,
17        `comment` TEXT NOT NULL ,
18        `name` TINYTEXT NOT NULL ,
19        `posttime` TIMESTAMP DEFAULT \'0000-00-00 00:00:00\' NOT NULL,
20        PRIMARY KEY ( `ID` )
21        ) TYPE = MYISAM';
22    $qry->execute($query);
23}
24
25function check_navigationtable()
26{
27        if (CORP_ID)
28        {
29            $statlink = '?a=corp_detail';
30        }
31        elseif (ALLIANCE_ID)
32        {
33            $statlink = '?a=alliance_detail';
34        }
35
36        $qry = new DBQuery();
37        $query = 'select count(*) from kb3_navigation';
38        $result = mysql_query($query);
39        if ($result)
40        {
41                $query = "select hidden from kb3_navigation limit 1";
42                $result = @mysql_query($query);
43                if (!$result)
44                {
45                         $qry->execute("ALTER TABLE `kb3_navigation` ADD `hidden` BOOL NOT NULL DEFAULT '0' AFTER `page` ;");
46                }
47                $query = "select count(KBSITE) from kb3_navigation WHERE KBSITE = '".KB_SITE."'";
48                $result = @mysql_query($query);
49                if ($result)
50                {
51                        $row = mysql_fetch_row($result);
52                        if ($row[0] == 0)
53                        {
54                                $queries = "INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr`,`page` ,`hidden`,`KBSITE`) VALUES ('top',1,'Home','?a=home','_self',1,'ALL_PAGES',0,'".KB_SITE."');
55                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Campaigns','?a=campaigns','_self',2,'ALL_PAGES',0,'".KB_SITE."');
56                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Contracts','?a=contracts','_self',3,'ALL_PAGES',0,'".KB_SITE."');
57                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Kills','?a=kills','_self',4,'ALL_PAGES',0,'".KB_SITE."');
58                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Losses','?a=losses','_self',5,'ALL_PAGES',0,'".KB_SITE."');
59                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Post Mail','?a=post','_self',6,'ALL_PAGES',0,'".KB_SITE."');
60                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Stats','$statlink','_self',7,'ALL_PAGES',0,'".KB_SITE."');
61                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Awards','?a=awards','_self',8,'ALL_PAGES',0,'".KB_SITE."');
62                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Standings','?a=standings','_self',9,'ALL_PAGES',0,'".KB_SITE."');
63                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Search','?a=search','_self',10,'ALL_PAGES',0,'".KB_SITE."');
64                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'Admin','?a=admin','_self',11,'ALL_PAGES',0,'".KB_SITE."');
65                                                        INSERT IGNORE INTO `kb3_navigation` (`nav_type`,`intern`,`descr` ,`url` ,`target`,`posnr` ,`page`,`hidden`,`KBSITE`) VALUES ('top',1,'About','?a=about','_self',12,'ALL_PAGES',0,'".KB_SITE."');";
66                                $query = explode("\n", $queries);
67                                foreach ($query as $querystring)
68                                {
69                                        if ($string = trim(str_replace(');', ')', $querystring)))
70                                        {
71                                            $qry->execute($string);
72                                        }
73                                }
74                        }
75                        return;
76                }
77                $query = 'ALTER TABLE `kb3_navigation` ADD `KBSITE` VARCHAR( 16 ) NOT NULL';
78        $qry->execute($query);
79                $query = 'UPDATE `kb3_navigation` SET KBSITE = "'.KB_SITE.'" WHERE KBSITE LIKE "";';
80        $qry->execute($query);
81                return;
82        }else{
83                $query = 'CREATE TABLE `kb3_navigation` (
84                `ID` INT NOT NULL AUTO_INCREMENT ,
85                `nav_type` TINYTEXT NOT NULL,
86                `intern` INT ( 1 ) NOT NULL,
87                `descr` TINYTEXT NOT NULL ,
88                `url` TINYTEXT NOT NULL ,
89                `target` VARCHAR( 10 )  NOT NULL,
90                `posnr` INT NOT NULL,
91                `page` TINYTEXT NOT NULL,
92                `hidden` BOOL NOT NULL DEFAULT "0",
93                `KBSITE` VARCHAR ( 16 ) NOT NULL,
94                PRIMARY KEY ( `ID` )
95                ) TYPE = MYISAM;';
96                   $qry->execute($query);
97                $queries = "INSERT IGNORE INTO `kb3_navigation` VALUES (1,'top',1,'Home','?a=home','_self',1,'ALL_PAGES',0,'".KB_SITE."');
98                        INSERT IGNORE INTO `kb3_navigation` VALUES (2,'top',1,'Campaigns','?a=campaigns','_self',2,'ALL_PAGES',0,'".KB_SITE."');
99                        INSERT IGNORE INTO `kb3_navigation` VALUES (3,'top',1,'Contracts','?a=contracts','_self',3,'ALL_PAGES',0,'".KB_SITE."');
100                        INSERT IGNORE INTO `kb3_navigation` VALUES (4,'top',1,'Kills','?a=kills','_self',4,'ALL_PAGES',0,'".KB_SITE."');
101                        INSERT IGNORE INTO `kb3_navigation` VALUES (5,'top',1,'Losses','?a=losses','_self',5,'ALL_PAGES',0,'".KB_SITE."');
102                        INSERT IGNORE INTO `kb3_navigation` VALUES (6,'top',1,'Post Mail','?a=post','_self',6,'ALL_PAGES',0,'".KB_SITE."');
103                        INSERT IGNORE INTO `kb3_navigation` VALUES (7,'top',1,'Stats','$statlink','_self',7,'ALL_PAGES',0,'".KB_SITE."');
104                        INSERT IGNORE INTO `kb3_navigation` VALUES (8,'top',1,'Awards','?a=awards','_self',8,'ALL_PAGES',0,'".KB_SITE."');
105                        INSERT IGNORE INTO `kb3_navigation` VALUES (9,'top',1,'Standings','?a=standings','_self',9,'ALL_PAGES',0,'".KB_SITE."');
106                        INSERT IGNORE INTO `kb3_navigation` VALUES (10,'top',1,'Search','?a=search','_self',10,'ALL_PAGES',0,'".KB_SITE."');
107                        INSERT IGNORE INTO `kb3_navigation` VALUES (11,'top',1,'Admin','?a=admin','_self',11,'ALL_PAGES',0,'".KB_SITE."');
108                        INSERT IGNORE INTO `kb3_navigation` VALUES (12,'top',1,'About','?a=about','_self',12,'ALL_PAGES',0,'".KB_SITE."');";
109                $query = explode("\n", $queries);
110                foreach ($query as $querystring)
111                {
112                        if ($string = trim(str_replace(');', ')', $querystring)))
113                        {
114                            $qry->execute($string);
115                        }
116                }
117        }
118}
119
120function check_commenttablerow()
121{
122    $qry = new DBQuery();
123    $query = 'select posttime from kb3_comments limit 1';
124    $result = mysql_query($query);
125    if ($result)
126    {
127        $query = 'ALTER TABLE `kb3_comments` CHANGE `ID` `id` INT( 11 ) NOT NULL AUTO_INCREMENT';
128        $qry->execute($query);
129        return;
130    }
131    $query = 'ALTER TABLE `kb3_comments` ADD `posttime` TIMESTAMP DEFAULT \'0000-00-00 00:00:00\' NOT NULL';
132    $qry->execute($query);
133}
134
135function check_shipvaltable()
136{
137    $qry = new DBQuery();
138    $query = 'select count(*) from kb3_ships_values';
139    $result = mysql_query($query);
140    if ($result)
141    {
142        return;
143    }
144    $query = 'CREATE TABLE `kb3_ships_values` (
145`shp_id` INT( 11 ) NOT NULL ,
146`shp_value` BIGINT( 4 ) NOT NULL ,
147PRIMARY KEY ( `shp_id` )
148) TYPE = MYISAM ;';
149    $qry->execute($query);
150}
151
152function check_invdetail()
153{
154    $qry = new DBQuery();
155    $query = 'select ind_sec_status from kb3_inv_detail limit 1';
156    $qry->execute($query);
157    $len = mysql_field_len($qry->resid_,0);
158    if ($len == 4)
159    {
160        $query = 'ALTER TABLE `kb3_inv_detail` CHANGE `ind_sec_status` `ind_sec_status` VARCHAR(5)';
161        $qry->execute($query);
162    }
163}
164
165function check_pilots()
166{
167    $qry = new DBQuery();
168    $query = 'select plt_name from kb3_pilots limit 1';
169    $qry->execute($query);
170    $len = mysql_field_len($qry->resid_,0);
171    if ($len == 32)
172    {
173        $query = 'ALTER TABLE `kb3_pilots` CHANGE `plt_name` `plt_name` VARCHAR(64) NOT NULL';
174        $qry->execute($query);
175    }
176}
177
178function check_contracts()
179{
180    $qry = new DBQuery();
181    $query = 'select ctd_sys_id from kb3_contract_details limit 1';
182    $result = mysql_query($query);
183    if ($result)
184    {
185        return;
186    }
187    $qry->execute('ALTER TABLE `kb3_contract_details` ADD `ctd_sys_id` INT(11) NOT NULL DEFAULT \'0\'');
188
189    $qry->execute('SHOW columns from `kb3_contract_details` like \'ctd_ctr_id\'');
190    $arr = $qry->getRow();
191    if ($arr['Key'] == 'PRI')
192    {
193        return;
194    }
195    $qry->execute('ALTER TABLE `kb3_contract_details` ADD INDEX (`ctd_ctr_id`) ');
196}
197
198function check_index()
199{
200    check_index_invcrp();
201    check_index_invall();
202    $qry = new DBQuery();
203    $qry->execute('SHOW columns from kb3_item_types like \'itt_id\'');
204    $arr = $qry->getRow();
205    if ($arr['Key'] == 'PRI')
206    {
207        return;
208    }
209    $qry->execute('ALTER TABLE `kb3_item_types` ADD PRIMARY KEY ( `itt_id` ) ');
210}
211
212function check_index_invcrp()
213{
214    $qry = new DBQuery();
215    $qry->execute('SHOW columns from kb3_inv_crp like \'inc_kll_id\'');
216    $arr = $qry->getRow();
217    if ($arr['Key'] == 'MUL')
218    {
219        return;
220    }
221    $qry->execute('ALTER TABLE `kb3_inv_crp` ADD INDEX ( `inc_kll_id` ) ');
222}
223
224function check_index_invall()
225{
226    $qry = new DBQuery();
227    $qry->execute('SHOW columns from kb3_inv_all like \'ina_kll_id\'');
228    $arr = $qry->getRow();
229    if ($arr['Key'] == 'MUL')
230    {
231        return;
232    }
233    $qry->execute('ALTER TABLE `kb3_inv_all` ADD INDEX ( `ina_kll_id` ) ');
234}
235
236function check_tblstrct1()
237{
238    $qry = new DBQuery();
239    $query = 'select shp_description from kb3_ships limit 1';
240    $result = mysql_query($query);
241    if (!$result)
242    {
243        return;
244    }
245    $query = 'ALTER TABLE `kb3_ships` DROP `shp_description`';
246    $qry->execute($query);
247}
248function check_tblstrct5()
249{
250    $qry = new DBQuery();
251    $query = 'select count(*) from kb3_standings';
252    $result = mysql_query($query);
253    if ($result)
254    {
255        $query = 'select count(*) from kb3_standings where sta_from=1 and sta_to=1 and sta_from_type=\'a\' and
256                  sta_to_type=\'c\'';
257        $result = mysql_query($query);
258        if ($result)
259        {
260            return;
261        }
262        $qry->execute('drop table kb3_standings');
263    }
264$query = 'CREATE TABLE `kb3_standings` (
265  `sta_from` int(11) NOT NULL default \'0\',
266  `sta_to` int(11) NOT NULL default \'0\',
267  `sta_from_type` enum(\'a\',\'c\') NOT NULL default \'a\',
268  `sta_to_type` enum(\'a\',\'c\') NOT NULL default \'a\',
269  `sta_value` float NOT NULL default \'0\',
270  `sta_comment` varchar(200) NOT NULL,
271  KEY `sta_from` (`sta_from`)
272) TYPE=MyISAM;';
273    $qry->execute($query);
274}
275
276function check_tblstrct6()
277{
278    $qry = new DBQuery();
279    $query = 'select all_img from kb3_alliances limit 1';
280    $result = mysql_query($query);
281    if (!$result)
282    {
283        return;
284    }
285    $query = 'ALTER TABLE `kb3_alliances` DROP `all_img`';
286    $qry->execute($query);
287}
288
289function check_killtables()
290{
291    $qry = new DBQuery();
292    $query = 'select kll_dmgtaken from kb3_kills limit 1';
293    $result = mysql_query($query);
294    if ($result)
295    {
296        return;
297    }
298    $qry->execute('ALTER TABLE `kb3_kills` ADD `kll_dmgtaken` INT(11) NOT NULL DEFAULT \'0\'');
299
300    $qry = new DBQuery();
301    $query = 'select ind_dmgdone from kb3_inv_detail limit 1';
302    $result = mysql_query($query);
303    if ($result)
304    {
305        return;
306    }
307    $qry->execute('ALTER TABLE `kb3_inv_detail` ADD `ind_dmgdone` INT(11) NOT NULL DEFAULT \'0\'');
308}
309
310check_commenttable();
311check_navigationtable();
312check_commenttablerow();
313check_shipvaltable();
314check_invdetail();
315check_pilots();
316check_contracts();
317check_index();
318check_index_invcrp();
319check_index_invall();
320check_tblstrct1();
321check_tblstrct5();
322check_tblstrct6();
323check_killtables();
324?>
Note: See TracBrowser for help on using the browser.