r665: Renaming product from "BugStrike" to "Bugdar"
[bugdar.git] / install / install.php
1 <?php
2 /*=====================================================================*\
3 || ################################################################### ||
4 || # Bugdar [#]version[#]
5 || # --------------------------------------------------------------- # ||
6 || # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
7 || # This file may not be reproduced in any way without permission. # ||
8 || # --------------------------------------------------------------- # ||
9 || # User License Agreement at http://www.iris-studios.com/license/ # ||
10 || ################################################################### ||
11 \*=====================================================================*/
12
13 define('STOP_MARK', 7);
14 define('ACTIVE_SITE', 'install.php');
15
16 require_once('./global.php');
17
18 page_start();
19
20 // ###################################################################
21
22 if ($bugsys->in['mark'] == 0)
23 {
24 ?>
25 <h1>Welcome to Bugdar</h1>
26
27 <p>This installer will take you through the procedure of setting up your Bugdar installation. If you are seeing this message, that means that your configuration file was read properly and that your database is accessible.</p>
28
29 <p>The following steps will initialize your database, place the default settings and data in your database, and finally ask you to enter in some settings to allow you to access the system when the installer finishes.</p>
30
31 <p>To begin the installation process, please click the button below.</p>
32 <?php
33 }
34
35 // ###################################################################
36
37 if ($bugsys->in['mark'] == 1)
38 {
39 ?>
40 <h1>Initializing Database</h1>
41
42 <p>This step will load the tables into your database so the rest of the installation can proceed forward.</p>
43
44 <?php
45
46 require_once('./install/schema.php');
47
48 foreach ($query AS $table => $query)
49 {
50 $db->query($query);
51 echo 'Creating table ' . $table . '<br />' . "\n";
52 }
53 }
54
55 // ###################################################################
56
57 if ($bugsys->in['mark'] == 2)
58 {
59 ?>
60 <h1>Loading Default Data</h1>
61
62 <p>Default table data for usergroups, statuses, priorities, and other various options are being loaded. This will allow you to use Bugdar with minimal setup.</p>
63
64 <?php
65
66 require_once('./install/default_data.php');
67
68 foreach ($data AS $table => $records)
69 {
70 foreach ($records AS $record)
71 {
72 $fields = $values = array();
73 foreach ($record AS $field => $value)
74 {
75 $fields[] = $field;
76 $values[] = addslashes($value);
77 }
78
79 $db->query("INSERT INTO " . TABLE_PREFIX . "$table (" . implode(',', $fields) . ") VALUES ('" . implode("', '", $values) . "')");
80 }
81
82 echo 'Populating table ' . $table . '<br />' . "\n";
83 }
84
85 $db->query("INSERT INTO " . TABLE_PREFIX . "product (componentmother, shortname, displayorder, title, description) VALUES (0, 'main', 10, 'Main Product', 'Default product from installer')");
86 $db->query("INSERT INTO " . TABLE_PREFIX . "version (productid, version, displayorder) VALUES (1, 'Main Version', 100)");
87
88 echo 'Inserting default product and version<br />' . "\n";
89 }
90
91 // ###################################################################
92
93 if ($bugsys->in['mark'] == 3)
94 {
95 ?>
96 <h1>Loading Settings</h1>
97
98 <p>Default settings are being loaded into the system.</p>
99
100 <?php
101
102 class dummy { function string() {} }
103 $lang = new dummy();
104
105 require_once('./includes/settings.php');
106
107 foreach ($config AS $varname => $setting)
108 {
109 $db->query("INSERT INTO " . TABLE_PREFIX . "setting (varname, value) VALUES ('" . $varname . "', '" . addslashes($setting[3]) . "')");
110 }
111
112 echo 'Settings loaded...';
113 }
114
115 // ###################################################################
116
117 if ($bugsys->in['mark'] == 4)
118 {
119 $value = 'http' . ($_SERVER['HTTPS'] == 'on' ? 's' : '') . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != '80' ? ':' . $_SERVER['SERVER_PORT'] : '') . str_replace('/install/install.php', '', $_SERVER['SCRIPT_NAME']);
120 ?>
121 <h1>General Settings</h1>
122
123 <p>These three settings are fundamental in setting up your bug tracking system. Please fill them in to proceed with the installation.</p>
124
125 <form name="settings-do" action="install.php" method="post">
126 <input type="hidden" name="mark" value="5" />
127
128 <div><strong>Tracker Name (the name of the entire tracking system, for instance "Acme Inc. Bug Tracker"):</strong> <input type="text" name="trackertitle" size="50" /></div>
129 <div><strong>Tracker URL (the root URL of your tracker, we have tried to guess this for you; <em>it does not end with a trailing slash!</em>):</strong> <input type="text" name="trackerurl" size="50" value="<?= $value ?>" /></div>
130 <div><strong>Webmaster Email:</strong> <input type="text" name="webmasteremail" size="50" /></div>
131
132 <input type="submit" name="submit" value="Next Step" />
133
134 </form>
135
136 <?php
137
138 page_end(false);
139 }
140
141 // ###################################################################
142
143 if ($bugsys->in['mark'] == 5)
144 {
145 ?>
146 <h1>New Administrator</h1>
147
148 <p>Your settings have been saved. Now you must create a new administrative account for yourself. This account will have complete control over the system.</p>
149
150 <form name="user-do" action="install.php" method="post">
151 <input type="hidden" name="mark" value="6" />
152
153 <div><strong>Display Name:</strong> <input type="text" name="displayname" size="50" /></div>
154 <div><strong>Email Address:</strong> <input type="text" name="email" size="50" /></div>
155 <div><strong>Password:</strong> <input type="password" name="password" size="50" /></div>
156
157 <input type="submit" name="submit" value="Next Step" />
158 </form>
159
160 <?php
161
162 $db->query("UPDATE " . TABLE_PREFIX . "setting SET value = '" . $bugsys->in['trackertitle'] . "' WHERE varname = 'trackertitle'");
163 $db->query("UPDATE " . TABLE_PREFIX . "setting SET value = '" . $bugsys->in['trackerurl'] . "' WHERE varname = 'trackerurl'");
164 $db->query("UPDATE " . TABLE_PREFIX . "setting SET value = '" . $bugsys->in['webmasteremail'] . "' WHERE varname = 'webmasteremail'");
165
166 page_end(false);
167 }
168
169 // ###################################################################
170
171 if ($bugsys->in['mark'] == 6)
172 {
173 ?>
174 <h1>User Added</h1>
175
176 <p>Your new user has been added.</p>
177 <?php
178
179 $bugsys->load('functions');
180
181 $salt = $funct->rand(15);
182
183 $db->query("
184 INSERT INTO " . TABLE_PREFIX . "user
185 (email, displayname, password, salt, authkey, showemail, showcolours, usergroupid)
186 VALUES
187 ('" . $bugsys->in['email'] . "', '" . $bugsys->in['displayname'] . "',
188 '" . md5(md5($bugsys->in['password']) . md5($salt)) . "', '$salt',
189 '" . $funct->rand() . "', 1, 1, 6
190 )"
191 );
192 }
193
194 // ###################################################################
195
196 if ($bugsys->in['mark'] == 7)
197 {
198 ?>
199 <h1>Cache Data</h1>
200
201 <p>In order to make Bugdar as efficient as possible, the system caches the portions of data it can. This reduces the load of your server without compromising usability. Currently the caches are being built.</p>
202 <?php
203
204 require_once('./includes/permissions.php');
205
206 build_settings();
207 echo "Cached settings<br />\n";
208
209 build_usergroups();
210 echo "Cached usergroups<br />\n";
211
212 build_statuses();
213 echo "Cached statuses<br />\n";
214
215 build_priorities();
216 echo "Cached priorities<br />\n";
217
218 build_severities();
219 echo "Cached severities<br />\n";
220
221 build_assignedto();
222 echo "Cached assignable users/developers<br />\n";
223
224 build_resolutions();
225 echo "Cached resolutions<br />\n";
226
227 build_products();
228 echo "Cached products<br />\n";
229
230 build_versions();
231 echo "Cached versions<br />\n";
232 }
233
234 // ###################################################################
235
236 page_end();
237
238 /*=====================================================================*\
239 || ###################################################################
240 || # $HeadURL$
241 || # $Id$
242 || ###################################################################
243 \*=====================================================================*/
244 ?>