r704: - Don't insert a default product and version
[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
86 // ###################################################################
87
88 if ($bugsys->in['mark'] == 3)
89 {
90 ?>
91 <h1>Loading Settings</h1>
92
93 <p>Default settings are being loaded into the system.</p>
94
95 <?php
96
97 class dummy { function string() {} }
98 $lang = new dummy();
99
100 require_once('./includes/settings.php');
101
102 foreach ($config AS $varname => $setting)
103 {
104 $db->query("INSERT INTO " . TABLE_PREFIX . "setting (varname, value) VALUES ('" . $varname . "', '" . addslashes($setting[3]) . "')");
105 }
106
107 echo 'Settings loaded...';
108 }
109
110 // ###################################################################
111
112 if ($bugsys->in['mark'] == 4)
113 {
114 $value = 'http' . ($_SERVER['HTTPS'] == 'on' ? 's' : '') . '://' . $_SERVER['SERVER_NAME'] . ($_SERVER['SERVER_PORT'] != '80' ? ':' . $_SERVER['SERVER_PORT'] : '') . str_replace('/install/install.php', '', $_SERVER['SCRIPT_NAME']);
115 ?>
116 <h1>General Settings</h1>
117
118 <p>These three settings are fundamental in setting up your bug tracking system. Please fill them in to proceed with the installation.</p>
119
120 <form name="settings-do" action="install.php" method="post">
121 <input type="hidden" name="mark" value="5" />
122
123 <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>
124 <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>
125 <div><strong>Webmaster Email:</strong> <input type="text" name="webmasteremail" size="50" /></div>
126
127 <input type="submit" name="submit" value="Next Step" />
128
129 </form>
130
131 <?php
132
133 page_end(false);
134 }
135
136 // ###################################################################
137
138 if ($bugsys->in['mark'] == 5)
139 {
140 ?>
141 <h1>New Administrator</h1>
142
143 <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>
144
145 <form name="user-do" action="install.php" method="post">
146 <input type="hidden" name="mark" value="6" />
147
148 <div><strong>Display Name:</strong> <input type="text" name="displayname" size="50" /></div>
149 <div><strong>Email Address:</strong> <input type="text" name="email" size="50" /></div>
150 <div><strong>Password:</strong> <input type="password" name="password" size="50" /></div>
151
152 <input type="submit" name="submit" value="Next Step" />
153 </form>
154
155 <?php
156
157 $db->query("UPDATE " . TABLE_PREFIX . "setting SET value = '" . $bugsys->in['trackertitle'] . "' WHERE varname = 'trackertitle'");
158 $db->query("UPDATE " . TABLE_PREFIX . "setting SET value = '" . $bugsys->in['trackerurl'] . "' WHERE varname = 'trackerurl'");
159 $db->query("UPDATE " . TABLE_PREFIX . "setting SET value = '" . $bugsys->in['webmasteremail'] . "' WHERE varname = 'webmasteremail'");
160
161 page_end(false);
162 }
163
164 // ###################################################################
165
166 if ($bugsys->in['mark'] == 6)
167 {
168 ?>
169 <h1>User Added</h1>
170
171 <p>Your new user has been added.</p>
172 <?php
173
174 $bugsys->load('functions');
175
176 $salt = $funct->rand(15);
177
178 $db->query("
179 INSERT INTO " . TABLE_PREFIX . "user
180 (email, displayname, password, salt, authkey, showemail, showcolours, usergroupid)
181 VALUES
182 ('" . $bugsys->in['email'] . "', '" . $bugsys->in['displayname'] . "',
183 '" . md5(md5($bugsys->in['password']) . md5($salt)) . "', '$salt',
184 '" . $funct->rand() . "', 1, 1, 6
185 )"
186 );
187 }
188
189 // ###################################################################
190
191 if ($bugsys->in['mark'] == 7)
192 {
193 ?>
194 <h1>Cache Data</h1>
195
196 <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>
197 <?php
198
199 require_once('./includes/permissions.php');
200
201 build_settings();
202 echo "Cached settings<br />\n";
203
204 build_usergroups();
205 echo "Cached usergroups<br />\n";
206
207 build_statuses();
208 echo "Cached statuses<br />\n";
209
210 build_priorities();
211 echo "Cached priorities<br />\n";
212
213 build_severities();
214 echo "Cached severities<br />\n";
215
216 build_assignedto();
217 echo "Cached assignable users/developers<br />\n";
218
219 build_resolutions();
220 echo "Cached resolutions<br />\n";
221
222 build_products();
223 echo "Cached products<br />\n";
224
225 build_versions();
226 echo "Cached versions<br />\n";
227
228 build_user_help();
229 echo "Cached user help documentation<br />\n";
230 }
231
232 // ###################################################################
233
234 page_end();
235
236 /*=====================================================================*\
237 || ###################################################################
238 || # $HeadURL$
239 || # $Id$
240 || ###################################################################
241 \*=====================================================================*/
242 ?>