Revision 417
Added by doc almost 18 years ago
save.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
// $Id$ |
|
4 |
|
|
5 |
/* |
|
6 |
|
|
7 |
Website Baker Project <http://www.websitebaker.org/> |
|
8 |
Copyright (C) 2004-2007, Ryan Djurovich |
|
9 |
|
|
10 |
Website Baker is free software; you can redistribute it and/or modify |
|
11 |
it under the terms of the GNU General Public License as published by |
|
12 |
the Free Software Foundation; either version 2 of the License, or |
|
13 |
(at your option) any later version. |
|
14 |
|
|
15 |
Website Baker is distributed in the hope that it will be useful, |
|
16 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
17 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
18 |
GNU General Public License for more details. |
|
19 |
|
|
20 |
You should have received a copy of the GNU General Public License |
|
21 |
along with Website Baker; if not, write to the Free Software |
|
22 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
23 |
|
|
24 |
*/ |
|
25 |
|
|
26 |
// Start a session |
|
27 |
if(!defined('SESSION_STARTED')) { |
|
28 |
session_name('wb_session_id'); |
|
29 |
session_start(); |
|
30 |
define('SESSION_STARTED', true); |
|
31 |
} |
|
32 |
|
|
33 |
// Function to set error |
|
34 |
function set_error($message) { |
|
35 |
global $_POST; |
|
36 |
if(isset($message) AND $message != '') { |
|
37 |
// Copy values entered into session so user doesn't have to re-enter everything |
|
38 |
if(isset($_POST['website_title'])) { |
|
39 |
$_SESSION['wb_url'] = $_POST['wb_url']; |
|
40 |
$_SESSION['wb_path'] = $_POST['wb_path']; |
|
41 |
$_SESSION['default_timezone'] = $_POST['default_timezone']; |
|
42 |
if(!isset($_POST['operating_system'])) { |
|
43 |
$_SESSION['operating_system'] = 'linux'; |
|
44 |
} else { |
|
45 |
$_SESSION['operating_system'] = $_POST['operating_system']; |
|
46 |
} |
|
47 |
if(!isset($_POST['world_writeable'])) { |
|
48 |
$_SESSION['world_writeable'] = false; |
|
49 |
} else { |
|
50 |
$_SESSION['world_writeable'] = true; |
|
51 |
} |
|
52 |
$_SESSION['database_host'] = $_POST['database_host']; |
|
53 |
$_SESSION['database_username'] = $_POST['database_username']; |
|
54 |
$_SESSION['database_password'] = $_POST['database_password']; |
|
55 |
$_SESSION['database_name'] = $_POST['database_name']; |
|
56 |
$_SESSION['table_prefix'] = $_POST['table_prefix']; |
|
57 |
if(!isset($_POST['install_tables'])) { |
|
58 |
$_SESSION['install_tables'] = false; |
|
59 |
} else { |
|
60 |
$_SESSION['install_tables'] = true; |
|
61 |
} |
|
62 |
$_SESSION['website_title'] = $_POST['website_title']; |
|
63 |
$_SESSION['admin_username'] = $_POST['admin_username']; |
|
64 |
$_SESSION['admin_email'] = $_POST['admin_email']; |
|
65 |
$_SESSION['admin_password'] = $_POST['admin_password']; |
|
66 |
|
|
67 |
if(!isset($_POST['outgoing_mails'])) { |
|
68 |
$_SESSION['outgoing_mails'] = 'php'; |
|
69 |
} else { |
|
70 |
$_SESSION['outgoing_mails'] = $_POST['outgoing_mails']; |
|
71 |
} |
|
72 |
$_SESSION['smtp_server'] = $_POST['smtp_server']; |
|
73 |
|
|
74 |
} |
|
75 |
// Set the message |
|
76 |
$_SESSION['message'] = $message; |
|
77 |
// Specify that session support is enabled |
|
78 |
$_SESSION['session_support'] = '<font class="good">Enabled</font>'; |
|
79 |
// Redirect to first page again and exit |
|
80 |
header('Location: index.php?sessions_checked=true'); |
|
81 |
exit(); |
|
82 |
} |
|
83 |
} |
|
84 |
|
|
85 |
// Dummy class to allow modules' install scripts to call $admin->print_error |
|
86 |
class admin_dummy |
|
87 |
{ |
|
88 |
var $error=''; |
|
89 |
function print_error($message) |
|
90 |
{ |
|
91 |
$this->error=$message; |
|
92 |
} |
|
93 |
} |
|
94 |
|
|
95 |
// Function to workout what the default permissions are for files created by the webserver |
|
96 |
function default_file_mode($temp_dir) { |
|
97 |
$v = explode(".",PHP_VERSION); |
|
98 |
$v = $v[0].$v[1]; |
|
99 |
if($v > 41 AND is_writable($temp_dir)) { |
|
100 |
$filename = $temp_dir.'/test_permissions.txt'; |
|
101 |
$handle = fopen($filename, 'w'); |
|
102 |
fwrite($handle, 'This file is to get the default file permissions'); |
|
103 |
fclose($handle); |
|
104 |
$default_file_mode = '0'.substr(sprintf('%o', fileperms($filename)), -3); |
|
105 |
unlink($filename); |
|
106 |
} else { |
|
107 |
$default_file_mode = '0777'; |
|
108 |
} |
|
109 |
return $default_file_mode; |
|
110 |
} |
|
111 |
|
|
112 |
// Function to workout what the default permissions are for directories created by the webserver |
|
113 |
function default_dir_mode($temp_dir) { |
|
114 |
$v = explode(".",PHP_VERSION); |
|
115 |
$v = $v[0].$v[1]; |
|
116 |
if($v > 41 AND is_writable($temp_dir)) { |
|
117 |
$dirname = $temp_dir.'/test_permissions/'; |
|
118 |
mkdir($dirname); |
|
119 |
$default_dir_mode = '0'.substr(sprintf('%o', fileperms($dirname)), -3); |
|
120 |
rmdir($dirname); |
|
121 |
} else { |
|
122 |
$default_dir_mode = '0777'; |
|
123 |
} |
|
124 |
return $default_dir_mode; |
|
125 |
} |
|
126 |
|
|
127 |
function add_slashes($input) { |
|
128 |
if ( get_magic_quotes_gpc() || ( !is_string($input) ) ) { |
|
129 |
return $input; |
|
130 |
} |
|
131 |
$output = addslashes($input); |
|
132 |
return $output; |
|
133 |
} |
|
134 |
|
|
135 |
// Begin check to see if form was even submitted |
|
136 |
// Set error if no post vars found |
|
137 |
if(!isset($_POST['website_title'])) { |
|
138 |
set_error('Please fill-in the form below'); |
|
139 |
} |
|
140 |
// End check to see if form was even submitted |
|
141 |
|
|
142 |
// Begin path and timezone details code |
|
143 |
|
|
144 |
// Check if user has entered the installation url |
|
145 |
if(!isset($_POST['wb_url']) OR $_POST['wb_url'] == '') { |
|
146 |
set_error('Please enter an absolute URL'); |
|
147 |
} else { |
|
148 |
$wb_url = $_POST['wb_url']; |
|
149 |
} |
|
150 |
// Remove any slashes at the end of the URL |
|
151 |
if(substr($wb_url, strlen($wb_url)-1, 1) == "/") { |
|
152 |
$wb_url = substr($wb_url, 0, strlen($wb_url)-1); |
|
153 |
} |
|
154 |
if(substr($wb_url, strlen($wb_url)-1, 1) == "\\") { |
|
155 |
$wb_url = substr($wb_url, 0, strlen($wb_url)-1); |
|
156 |
} |
|
157 |
if(substr($wb_url, strlen($wb_url)-1, 1) == "/") { |
|
158 |
$wb_url = substr($wb_url, 0, strlen($wb_url)-1); |
|
159 |
} |
|
160 |
if(substr($wb_url, strlen($wb_url)-1, 1) == "\\") { |
|
161 |
$wb_url = substr($wb_url, 0, strlen($wb_url)-1); |
|
162 |
} |
|
163 |
// Get the default time zone |
|
164 |
if(!isset($_POST['default_timezone']) OR !is_numeric($_POST['default_timezone'])) { |
|
165 |
set_error('Please select a valid default timezone'); |
|
166 |
} else { |
|
167 |
$default_timezone = $_POST['default_timezone']*60*60; |
|
168 |
} |
|
169 |
// End path and timezone details code |
|
170 |
|
|
171 |
// Begin operating system specific code |
|
172 |
// Get operating system |
|
173 |
if(!isset($_POST['operating_system']) OR $_POST['operating_system'] != 'linux' AND $_POST['operating_system'] != 'windows') { |
|
174 |
set_error('Please select a valid operating system'); |
|
175 |
} else { |
|
176 |
$operating_system = $_POST['operating_system']; |
|
177 |
} |
|
178 |
// Work-out file permissions |
|
179 |
if($operating_system == 'windows') { |
|
180 |
$file_mode = '0777'; |
|
181 |
$dir_mode = '0777'; |
|
182 |
} elseif(isset($_POST['world_writeable']) AND $_POST['world_writeable'] == 'true') { |
|
183 |
$file_mode = '0777'; |
|
184 |
$dir_mode = '0777'; |
|
185 |
} else { |
|
186 |
$file_mode = default_file_mode('../temp'); |
|
187 |
$dir_mode = default_dir_mode('../temp'); |
|
188 |
} |
|
189 |
// End operating system specific code |
|
190 |
|
|
191 |
// Begin database details code |
|
192 |
// Check if user has entered a database host |
|
193 |
if(!isset($_POST['database_host']) OR $_POST['database_host'] == '') { |
|
194 |
set_error('Please enter a database host name'); |
|
195 |
} else { |
|
196 |
$database_host = $_POST['database_host']; |
|
197 |
} |
|
198 |
// Check if user has entered a database username |
|
199 |
if(!isset($_POST['database_username']) OR $_POST['database_username'] == '') { |
|
200 |
set_error('Please enter a database username'); |
|
201 |
} else { |
|
202 |
$database_username = $_POST['database_username']; |
|
203 |
} |
|
204 |
// Check if user has entered a database password |
|
205 |
if(!isset($_POST['database_password'])) { |
|
206 |
set_error('Please enter a database password'); |
|
207 |
} else { |
|
208 |
$database_password = $_POST['database_password']; |
|
209 |
} |
|
210 |
// Check if user has entered a database name |
|
211 |
if(!isset($_POST['database_name']) OR $_POST['database_name'] == '') { |
|
212 |
set_error('Please enter a database name'); |
|
213 |
} else { |
|
214 |
$database_name = $_POST['database_name']; |
|
215 |
} |
|
216 |
// Get table prefix |
|
217 |
$table_prefix = $_POST['table_prefix']; |
|
218 |
// Find out if the user wants to install tables and data |
|
219 |
if(isset($_POST['install_tables']) AND $_POST['install_tables'] == 'true') { |
|
220 |
$install_tables = true; |
|
221 |
} else { |
|
222 |
$install_tables = false; |
|
223 |
} |
|
224 |
// End database details code |
|
225 |
|
|
226 |
// Begin website title code |
|
227 |
// Get website title |
|
228 |
if(!isset($_POST['website_title']) OR $_POST['website_title'] == '') { |
|
229 |
set_error('Please enter a website title'); |
|
230 |
} else { |
|
231 |
$website_title = add_slashes($_POST['website_title']); |
|
232 |
} |
|
233 |
// End website title code |
|
234 |
|
|
235 |
// Begin admin user details code |
|
236 |
// Get admin username |
|
237 |
if(!isset($_POST['admin_username']) OR $_POST['admin_username'] == '') { |
|
238 |
set_error('Please enter a username for the Administrator account'); |
|
239 |
} else { |
|
240 |
$admin_username = $_POST['admin_username']; |
|
241 |
} |
|
242 |
// Get admin email and validate it |
|
243 |
if(!isset($_POST['admin_email']) OR $_POST['admin_email'] == '') { |
|
244 |
set_error('Please enter an email for the Administrator account'); |
|
245 |
} else { |
|
246 |
if(eregi("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $_POST['admin_email'])) { |
|
247 |
$admin_email = $_POST['admin_email']; |
|
248 |
} else { |
|
249 |
set_error('Please enter a valid email address for the Administrator account'); |
|
250 |
} |
|
251 |
} |
|
252 |
// Get the two admin passwords entered, and check that they match |
|
253 |
if(!isset($_POST['admin_password']) OR $_POST['admin_password'] == '') { |
|
254 |
set_error('Please enter a password for the Administrator account'); |
|
255 |
} else { |
|
256 |
$admin_password = $_POST['admin_password']; |
|
257 |
} |
|
258 |
if(!isset($_POST['admin_repassword']) OR $_POST['admin_repassword'] == '') { |
|
259 |
set_error('Please make sure you re-enter the password for the Administrator account'); |
|
260 |
} else { |
|
261 |
$admin_repassword = $_POST['admin_repassword']; |
|
262 |
} |
|
263 |
if($admin_password != $admin_repassword) { |
|
264 |
set_error('Sorry, the two Administrator account passwords you entered do not match'); |
|
265 |
} |
|
266 |
// End admin user details code |
|
267 |
|
|
268 |
// Get the SMTP server settings and check if valid |
|
269 |
$smtp_server_used = "mail.example.com"; |
|
270 |
if(isset($_POST['outgoing_mails']) AND $_POST['outgoing_mails']=="smtp") { |
|
271 |
if($_POST['smtp_server'] == "" || $_POST['smtp_server'] == "mail.example.com") { |
|
272 |
set_error('Please define the SMTP host (Step 7) of your domain or choose option PHP mail().'); |
|
273 |
} else { |
|
274 |
$smtp_server_used = $_POST['smtp_server']; |
|
275 |
} |
|
276 |
} |
|
277 |
|
|
278 |
// Create SMTP server output string for the config.php file |
|
279 |
if($smtp_server_used == "mail.example.com") { |
|
280 |
$smtp_server_used = "// define('WBMAILER_SMTP_HOST', '" .$smtp_server_used ."');\n"; |
|
281 |
} else { |
|
282 |
$smtp_server_used = "define('WBMAILER_SMTP_HOST', '" .$smtp_server_used ."');\n"; |
|
283 |
} |
|
284 |
// End SMTP server settings |
|
285 |
|
|
286 |
// Try and write settings to config file |
|
287 |
$config_content = "" . |
|
288 |
"<?php\n". |
|
289 |
"\n". |
|
290 |
"define('DB_TYPE', 'mysql');\n". |
|
291 |
"define('DB_HOST', '$database_host');\n". |
|
292 |
"define('DB_USERNAME', '$database_username');\n". |
|
293 |
"define('DB_PASSWORD', '$database_password');\n". |
|
294 |
"define('DB_NAME', '$database_name');\n". |
|
295 |
"define('TABLE_PREFIX', '$table_prefix');\n". |
|
296 |
"\n". |
|
297 |
"define('WB_PATH', dirname(__FILE__));\n". |
|
298 |
"define('WB_URL', '$wb_url');\n". |
|
299 |
"define('ADMIN_PATH', WB_PATH.'/admin');\n". |
|
300 |
"define('ADMIN_URL', '$wb_url/admin');\n". |
|
301 |
"\n". |
|
302 |
"// some mail provider do not deliver mails send via PHP mail() function as SMTP authentification is missing\n". |
|
303 |
"// in that case activate SMTP for outgoing mails: un-comment next line and specify SMTP host of your domain\n". |
|
304 |
$smtp_server_used. |
|
305 |
"\n". |
|
306 |
"require_once(WB_PATH.'/framework/initialize.php');\n". |
|
307 |
"\n". |
|
308 |
"?>"; |
|
309 |
|
|
310 |
$config_filename = '../config.php'; |
|
311 |
|
|
312 |
// Check if the file exists and is writable first. |
|
313 |
if(file_exists($config_filename) AND is_writable($config_filename)) { |
|
314 |
if(!$handle = fopen($config_filename, 'w')) { |
|
315 |
set_error("Cannot open the configuration file ($config_filename)"); |
|
316 |
} else { |
|
317 |
if (fwrite($handle, $config_content) === FALSE) { |
|
318 |
set_error("Cannot write to the configuration file ($config_filename)"); |
|
319 |
} |
|
320 |
// Close file |
|
321 |
fclose($handle); |
|
322 |
} |
|
323 |
} else { |
|
324 |
set_error("The configuration file $config_filename is not writable. Change its permissions so it is, then re-run step 4."); |
|
325 |
} |
|
326 |
|
|
327 |
// Define configuration vars |
|
328 |
define('DB_TYPE', 'mysql'); |
|
329 |
define('DB_HOST', $database_host); |
|
330 |
define('DB_USERNAME', $database_username); |
|
331 |
define('DB_PASSWORD', $database_password); |
|
332 |
define('DB_NAME', $database_name); |
|
333 |
define('TABLE_PREFIX', $table_prefix); |
|
334 |
define('WB_PATH', str_replace(array('/install','\install'), '',dirname(__FILE__))); |
|
335 |
define('WB_URL', $wb_url); |
|
336 |
define('ADMIN_PATH', WB_PATH.'/admin'); |
|
337 |
define('ADMIN_URL', $wb_url.'/admin'); |
|
338 |
|
|
339 |
// Check if the user has entered a correct path |
|
340 |
if(!file_exists(WB_PATH.'/framework/class.admin.php')) { |
|
341 |
set_error('It appears the Absolute path that you entered is incorrect'); |
|
342 |
} |
|
343 |
|
|
344 |
// Try connecting to database |
|
345 |
if(!mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD)) { |
|
346 |
set_error('Database host name, username and/or password incorrect. MySQL Error:<br />'.mysql_error()); |
|
347 |
} |
|
348 |
|
|
349 |
// Try to create the database |
|
350 |
mysql_query('CREATE DATABASE '.$database_name); |
|
351 |
|
|
352 |
// Close the mysql connection |
|
353 |
mysql_close(); |
|
354 |
|
|
355 |
// Include WB functions file |
|
356 |
require_once(WB_PATH.'/framework/functions.php'); |
|
357 |
|
|
358 |
// Re-connect to the database, this time using in-build database class |
|
359 |
require_once(WB_PATH.'/framework/class.login.php'); |
|
360 |
$database=new database(); |
|
361 |
|
|
362 |
// Check if we should install tables |
|
363 |
if($install_tables == true) { |
|
364 |
|
|
365 |
// Remove tables if they exist |
|
366 |
|
|
367 |
// Pages table |
|
368 |
$pages = "DROP TABLE IF EXISTS `".TABLE_PREFIX."pages`"; |
|
369 |
$database->query($pages); |
|
370 |
// Sections table |
|
371 |
$sections = "DROP TABLE IF EXISTS `".TABLE_PREFIX."sections`"; |
|
372 |
$database->query($sections); |
|
373 |
// Settings table |
|
374 |
$settings = "DROP TABLE IF EXISTS `".TABLE_PREFIX."settings`"; |
|
375 |
$database->query($settings); |
|
376 |
// Users table |
|
377 |
$users = "DROP TABLE IF EXISTS `".TABLE_PREFIX."users`"; |
|
378 |
$database->query($users); |
|
379 |
// Groups table |
|
380 |
$groups = "DROP TABLE IF EXISTS `".TABLE_PREFIX."groups`"; |
|
381 |
$database->query($groups); |
|
382 |
// Search table |
|
383 |
$search = "DROP TABLE IF EXISTS `".TABLE_PREFIX."search`"; |
|
384 |
$database->query($search); |
|
385 |
// Addons table |
|
386 |
$addons = "DROP TABLE IF EXISTS `".TABLE_PREFIX."addons`"; |
|
387 |
$database->query($addons); |
|
388 |
|
|
389 |
// Try installing tables |
|
390 |
|
|
391 |
// Pages table |
|
392 |
$pages = 'CREATE TABLE `'.TABLE_PREFIX.'pages` ( `page_id` INT NOT NULL auto_increment,' |
|
393 |
. ' `parent` INT NOT NULL DEFAULT \'0\',' |
|
394 |
. ' `root_parent` INT NOT NULL DEFAULT \'0\',' |
|
395 |
. ' `level` INT NOT NULL DEFAULT \'0\',' |
|
396 |
. ' `link` TEXT NOT NULL,' |
|
397 |
. ' `target` VARCHAR( 7 ) NOT NULL DEFAULT \'\' ,' |
|
398 |
. ' `page_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
399 |
. ' `menu_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
400 |
. ' `description` TEXT NOT NULL ,' |
|
401 |
. ' `keywords` TEXT NOT NULL ,' |
|
402 |
. ' `page_trail` TEXT NOT NULL ,' |
|
403 |
. ' `template` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
404 |
. ' `visibility` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
405 |
. ' `position` INT NOT NULL DEFAULT \'0\',' |
|
406 |
. ' `menu` INT NOT NULL DEFAULT \'0\',' |
|
407 |
. ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'\' ,' |
|
408 |
. ' `searching` INT NOT NULL DEFAULT \'0\',' |
|
409 |
. ' `admin_groups` TEXT NOT NULL ,' |
|
410 |
. ' `admin_users` TEXT NOT NULL ,' |
|
411 |
. ' `viewing_groups` TEXT NOT NULL ,' |
|
412 |
. ' `viewing_users` TEXT NOT NULL ,' |
|
413 |
. ' `modified_when` INT NOT NULL DEFAULT \'0\',' |
|
414 |
. ' `modified_by` INT NOT NULL DEFAULT \'0\',' |
|
415 |
. ' PRIMARY KEY ( `page_id` ) ' |
|
416 |
. ' )'; |
|
417 |
$database->query($pages); |
|
418 |
|
|
419 |
// Sections table |
|
420 |
$pages = 'CREATE TABLE `'.TABLE_PREFIX.'sections` ( `section_id` INT NOT NULL auto_increment,' |
|
421 |
. ' `page_id` INT NOT NULL DEFAULT \'0\',' |
|
422 |
. ' `position` INT NOT NULL DEFAULT \'0\',' |
|
423 |
. ' `module` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
424 |
. ' `block` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
425 |
. ' PRIMARY KEY ( `section_id` ) ' |
|
426 |
. ' )'; |
|
427 |
$database->query($pages); |
|
428 |
|
|
429 |
require(WB_PATH.'/admin/interface/version.php'); |
|
430 |
|
|
431 |
// Settings table |
|
432 |
$settings='CREATE TABLE `'.TABLE_PREFIX.'settings` ( `setting_id` INT NOT NULL auto_increment,' |
|
433 |
. ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
434 |
. ' `value` TEXT NOT NULL ,' |
|
435 |
. ' PRIMARY KEY ( `setting_id` ) ' |
|
436 |
. ' )'; |
|
437 |
$database->query($settings); |
|
438 |
|
|
439 |
$settings_rows= "INSERT INTO `".TABLE_PREFIX."settings` " |
|
440 |
." (name, value) VALUES " |
|
441 |
." ('wb_version', '".VERSION."')," |
|
442 |
." ('website_title', '$website_title')," |
|
443 |
." ('website_description', '')," |
|
444 |
." ('website_keywords', '')," |
|
445 |
." ('website_header', '')," |
|
446 |
." ('website_footer', '')," |
|
447 |
." ('wysiwyg_style', 'font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;')," |
|
448 |
." ('rename_files_on_upload', 'php,asp,phpx,aspx')," |
|
449 |
." ('er_level', '')," |
|
450 |
." ('default_language', 'EN')," |
|
451 |
." ('app_name', 'wb')," |
|
452 |
." ('default_timezone', '$default_timezone')," |
|
453 |
." ('default_date_format', 'M d Y')," |
|
454 |
." ('default_time_format', 'g:i A')," |
|
455 |
." ('home_folders', 'true')," |
|
456 |
." ('default_template', 'round')," |
|
457 |
." ('default_charset', 'utf-8')," |
|
458 |
." ('multiple_menus', 'false')," |
|
459 |
." ('page_level_limit', '4')," |
|
460 |
." ('intro_page', 'false')," |
|
461 |
." ('page_trash', 'disabled')," |
|
462 |
." ('homepage_redirection', 'false')," |
|
463 |
." ('page_languages', 'false')," |
|
464 |
." ('wysiwyg_editor', 'htmlarea')," |
|
465 |
." ('manage_sections', 'true')," |
|
466 |
." ('section_blocks', 'false')," |
|
467 |
." ('smart_login', 'false')," |
|
468 |
." ('captcha_verification', 'true')," |
|
469 |
." ('frontend_login', 'false')," |
|
470 |
." ('frontend_signup', 'false')," |
|
471 |
." ('server_email', '$admin_email')," |
|
472 |
." ('search', 'public')," |
|
473 |
." ('page_extension', '.php')," |
|
474 |
." ('page_spacer', '-')," |
|
475 |
." ('pages_directory', '/pages')," |
|
476 |
." ('media_directory', '/media')," |
|
477 |
." ('operating_system', '$operating_system')," |
|
478 |
." ('string_file_mode', '$file_mode')," |
|
479 |
." ('string_dir_mode', '$dir_mode')"; |
|
480 |
$database->query($settings_rows); |
|
481 |
|
|
482 |
|
|
483 |
// Users table |
|
484 |
$users = 'CREATE TABLE `'.TABLE_PREFIX.'users` ( `user_id` INT NOT NULL auto_increment,' |
|
485 |
. ' `group_id` INT NOT NULL DEFAULT \'0\',' |
|
486 |
. ' `active` INT NOT NULL DEFAULT \'0\',' |
|
487 |
. ' `username` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
488 |
. ' `password` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
489 |
. ' `remember_key` VARCHAR( 255 ) NOT NULL DEFAULT \'\',' |
|
490 |
. ' `last_reset` INT NOT NULL DEFAULT \'0\',' |
|
491 |
. ' `display_name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
492 |
. ' `email` TEXT NOT NULL ,' |
|
493 |
. ' `timezone` INT NOT NULL DEFAULT \'0\',' |
|
494 |
. ' `date_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
495 |
. ' `time_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
496 |
. ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'\' ,' |
|
497 |
. ' `home_folder` TEXT NOT NULL ,' |
|
498 |
. ' `login_when` INT NOT NULL DEFAULT \'0\',' |
|
499 |
. ' `login_ip` VARCHAR( 15 ) NOT NULL DEFAULT \'\' ,' |
|
500 |
. ' PRIMARY KEY ( `user_id` ) ' |
|
501 |
. ' )'; |
|
502 |
$database->query($users); |
|
503 |
|
|
504 |
// Groups table |
|
505 |
$groups = 'CREATE TABLE `'.TABLE_PREFIX.'groups` ( `group_id` INT NOT NULL auto_increment,' |
|
506 |
. ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
507 |
. ' `system_permissions` TEXT NOT NULL ,' |
|
508 |
. ' `module_permissions` TEXT NOT NULL ,' |
|
509 |
. ' `template_permissions` TEXT NOT NULL ,' |
|
510 |
. ' PRIMARY KEY ( `group_id` ) ' |
|
511 |
. ' )'; |
|
512 |
$database->query($groups); |
|
513 |
|
|
514 |
// Search settings table |
|
515 |
$search = 'CREATE TABLE `'.TABLE_PREFIX.'search` ( `search_id` INT NOT NULL auto_increment,' |
|
516 |
. ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
517 |
. ' `value` TEXT NOT NULL ,' |
|
518 |
. ' `extra` TEXT NOT NULL ,' |
|
519 |
. ' PRIMARY KEY ( `search_id` ) ' |
|
520 |
. ' )'; |
|
521 |
$database->query($search); |
|
522 |
|
|
523 |
// Addons table |
|
524 |
$addons = 'CREATE TABLE `'.TABLE_PREFIX.'addons` ( ' |
|
525 |
.'`addon_id` INT NOT NULL auto_increment ,' |
|
526 |
.'`type` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
527 |
.'`directory` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
528 |
.'`name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
529 |
.'`description` TEXT NOT NULL ,' |
|
530 |
.'`function` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
531 |
.'`version` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
532 |
.'`platform` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
533 |
.'`author` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
534 |
.'`license` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
535 |
.' PRIMARY KEY ( `addon_id` ) ' |
|
536 |
.' )'; |
|
537 |
$database->query($addons); |
|
538 |
|
|
539 |
// Insert default data |
|
540 |
|
|
541 |
// Admin group |
|
542 |
$full_system_permissions = 'pages,pages_view,pages_add,pages_add_l0,pages_settings,pages_modify,pages_intro,pages_delete,media,media_view,media_upload,media_rename,media_delete,media_create,addons,modules,modules_view,modules_install,modules_uninstall,templates,templates_view,templates_install,templates_uninstall,languages,languages_view,languages_install,languages_uninstall,settings,settings_basic,settings_advanced,access,users,users_view,users_add,users_modify,users_delete,groups,groups_view,groups_add,groups_modify,groups_delete'; |
|
543 |
$insert_admin_group = "INSERT INTO `".TABLE_PREFIX."groups` VALUES ('1', 'Administrators', '$full_system_permissions', '', '')"; |
|
544 |
$database->query($insert_admin_group); |
|
545 |
// Admin user |
|
546 |
$insert_admin_user = "INSERT INTO `".TABLE_PREFIX."users` (user_id,group_id,active,username,password,email,display_name) VALUES ('1','1','1','$admin_username','".md5($admin_password)."','$admin_email','Administrator')"; |
|
547 |
$database->query($insert_admin_user); |
|
548 |
|
|
549 |
// Search header |
|
550 |
$search_header = addslashes(' |
|
551 |
<h1>Search</h1> |
|
552 |
|
|
553 |
<form name="search" action="[WB_URL]/search/index[PAGE_EXTENSION]" method="get"> |
|
554 |
<table cellpadding="3" cellspacing="0" border="0" width="500"> |
|
555 |
<tr> |
|
556 |
<td> |
|
557 |
<input type="text" name="string" value="[SEARCH_STRING]" style="width: 100%;" /> |
|
558 |
</td> |
|
559 |
<td width="150"> |
|
560 |
<input type="submit" value="[TEXT_SEARCH]" style="width: 100%;" /> |
|
561 |
</td> |
|
562 |
</tr> |
|
563 |
<tr> |
|
564 |
<td colspan="2"> |
|
565 |
<input type="radio" name="match" id="match_all" value="all"[ALL_CHECKED] /> |
|
566 |
<label for="match_all">[TEXT_ALL_WORDS]</label> |
|
567 |
<input type="radio" name="match" id="match_any" value="any"[ANY_CHECKED] /> |
|
568 |
<label for="match_any">[TEXT_ANY_WORDS]</label> |
|
569 |
<input type="radio" name="match" id="match_exact" value="exact"[EXACT_CHECKED] /> |
|
570 |
<label for="match_exact">[TEXT_EXACT_MATCH]</label> |
|
571 |
</td> |
|
572 |
</tr> |
|
573 |
</table> |
|
574 |
|
|
575 |
</form> |
|
576 |
|
|
577 |
<hr /> |
|
578 |
'); |
|
579 |
$insert_search_header = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'header', '$search_header', '')"; |
|
580 |
$database->query($insert_search_header); |
|
581 |
// Search footer |
|
582 |
$search_footer = addslashes(''); |
|
583 |
$insert_search_footer = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'footer', '$search_footer', '')"; |
|
584 |
$database->query($insert_search_footer); |
|
585 |
// Search results header |
|
586 |
$search_results_header = addslashes(''. |
|
587 |
'[TEXT_RESULTS_FOR] \'<b>[SEARCH_STRING]</b>\': |
|
588 |
<table cellpadding="2" cellspacing="0" border="0" width="100%" style="padding-top: 10px;">'); |
|
589 |
$insert_search_results_header = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'results_header', '$search_results_header', '')"; |
|
590 |
$database->query($insert_search_results_header); |
|
591 |
// Search results loop |
|
592 |
$search_results_loop = addslashes(''. |
|
593 |
'<tr style="background-color: #F0F0F0;"> |
|
594 |
<td><a href="[LINK]">[TITLE]</a></td> |
|
595 |
<td align="right">[TEXT_LAST_UPDATED_BY] [DISPLAY_NAME] ([USERNAME]) [TEXT_ON] [DATE]</td> |
|
596 |
</tr> |
|
597 |
<tr><td colspan="2" style="text-align: justify; padding-bottom: 10px;">[DESCRIPTION]</td></tr>'); |
|
598 |
|
|
599 |
$insert_search_results_loop = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'results_loop', '$search_results_loop', '')"; |
|
600 |
$database->query($insert_search_results_loop); |
|
601 |
// Search results footer |
|
602 |
$search_results_footer = addslashes("</table>"); |
|
603 |
$insert_search_results_footer = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'results_footer', '$search_results_footer', '')"; |
|
604 |
$database->query($insert_search_results_footer); |
|
605 |
// Search no results |
|
606 |
$search_no_results = addslashes('<br />No results found'); |
|
607 |
$insert_search_no_results = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'no_results', '$search_no_results', '')"; |
|
608 |
$database->query($insert_search_no_results); |
|
609 |
// Search template |
|
610 |
$database->query("INSERT INTO `".TABLE_PREFIX."search` (name) VALUES ('template')"); |
|
611 |
|
|
612 |
require_once(WB_PATH.'/framework/initialize.php'); |
|
613 |
|
|
614 |
// Include the PclZip class file (thanks to |
|
615 |
require_once(WB_PATH.'/include/pclzip/pclzip.lib.php'); |
|
616 |
|
|
617 |
// Install add-ons |
|
618 |
if(file_exists(WB_PATH.'/install/modules')) { |
|
619 |
// Unpack pre-packaged modules |
|
620 |
|
|
621 |
} |
|
622 |
if(file_exists(WB_PATH.'/install/templates')) { |
|
623 |
// Unpack pre-packaged templates |
|
624 |
|
|
625 |
} |
|
626 |
if(file_exists(WB_PATH.'/install/languages')) { |
|
627 |
// Unpack pre-packaged languages |
|
628 |
|
|
629 |
} |
|
630 |
|
|
631 |
$admin=new admin_dummy(); |
|
632 |
// Load addons into DB |
|
633 |
$dirs['modules'] = WB_PATH.'/modules/'; |
|
634 |
$dirs['templates'] = WB_PATH.'/templates/'; |
|
635 |
$dirs['languages'] = WB_PATH.'/languages/'; |
|
636 |
foreach($dirs AS $type => $dir) { |
|
637 |
if($handle = opendir($dir)) { |
|
638 |
while(false !== ($file = readdir($handle))) { |
|
639 |
if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'admin.php' AND $file != 'index.php') { |
|
640 |
// Get addon type |
|
641 |
if($type == 'modules') { |
|
642 |
load_module($dir.'/'.$file, true); |
|
643 |
// Pretty ugly hack to let modules run $admin->set_error |
|
644 |
// See dummy class definition admin_dummy above |
|
645 |
if ($admin->error!='') { |
|
646 |
set_error($admin->error); |
|
647 |
} |
|
648 |
} elseif($type == 'templates') { |
|
649 |
load_template($dir.'/'.$file); |
|
650 |
} elseif($type == 'languages') { |
|
651 |
load_language($dir.'/'.$file); |
|
652 |
} |
|
653 |
} |
|
654 |
} |
|
655 |
closedir($handle); |
|
656 |
} |
|
657 |
} |
|
658 |
|
|
659 |
// Check if there was a database error |
|
660 |
if($database->is_error()) { |
|
661 |
set_error($database->get_error()); |
|
662 |
} |
|
663 |
|
|
664 |
} |
|
665 |
|
|
666 |
// Log the user in and go to Website Baker Administration |
|
667 |
$thisApp = new Login( |
|
668 |
array( |
|
669 |
"MAX_ATTEMPS" => "50", |
|
670 |
"WARNING_URL" => ADMIN_URL."/login/warning.html", |
|
671 |
"USERNAME_FIELDNAME" => 'admin_username', |
|
672 |
"PASSWORD_FIELDNAME" => 'admin_password', |
|
673 |
"REMEMBER_ME_OPTION" => SMART_LOGIN, |
|
674 |
"MIN_USERNAME_LEN" => "2", |
|
675 |
"MIN_PASSWORD_LEN" => "2", |
|
676 |
"MAX_USERNAME_LEN" => "30", |
|
677 |
"MAX_PASSWORD_LEN" => "30", |
|
678 |
'LOGIN_URL' => ADMIN_URL."/login/index.php", |
|
679 |
'DEFAULT_URL' => ADMIN_URL."/start/index.php", |
|
680 |
'TEMPLATE_DIR' => ADMIN_PATH."/login", |
|
681 |
'TEMPLATE_FILE' => "template.html", |
|
682 |
'FRONTEND' => false, |
|
683 |
'FORGOTTEN_DETAILS_APP' => ADMIN_URL."/login/forgot/index.php", |
|
684 |
'USERS_TABLE' => TABLE_PREFIX."users", |
|
685 |
'GROUPS_TABLE' => TABLE_PREFIX."groups", |
|
686 |
) |
|
687 |
); |
|
1 |
<?php |
|
2 |
|
|
3 |
// $Id$ |
|
4 |
|
|
5 |
/* |
|
6 |
|
|
7 |
Website Baker Project <http://www.websitebaker.org/> |
|
8 |
Copyright (C) 2004-2007, Ryan Djurovich |
|
9 |
|
|
10 |
Website Baker is free software; you can redistribute it and/or modify |
|
11 |
it under the terms of the GNU General Public License as published by |
|
12 |
the Free Software Foundation; either version 2 of the License, or |
|
13 |
(at your option) any later version. |
|
14 |
|
|
15 |
Website Baker is distributed in the hope that it will be useful, |
|
16 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
17 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
18 |
GNU General Public License for more details. |
|
19 |
|
|
20 |
You should have received a copy of the GNU General Public License |
|
21 |
along with Website Baker; if not, write to the Free Software |
|
22 |
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
23 |
|
|
24 |
*/ |
|
25 |
|
|
26 |
// Start a session |
|
27 |
if(!defined('SESSION_STARTED')) { |
|
28 |
session_name('wb_session_id'); |
|
29 |
session_start(); |
|
30 |
define('SESSION_STARTED', true); |
|
31 |
} |
|
32 |
|
|
33 |
// Function to set error |
|
34 |
function set_error($message) { |
|
35 |
global $_POST; |
|
36 |
if(isset($message) AND $message != '') { |
|
37 |
// Copy values entered into session so user doesn't have to re-enter everything |
|
38 |
if(isset($_POST['website_title'])) { |
|
39 |
$_SESSION['wb_url'] = $_POST['wb_url']; |
|
40 |
$_SESSION['wb_path'] = $_POST['wb_path']; |
|
41 |
$_SESSION['default_timezone'] = $_POST['default_timezone']; |
|
42 |
if(!isset($_POST['operating_system'])) { |
|
43 |
$_SESSION['operating_system'] = 'linux'; |
|
44 |
} else { |
|
45 |
$_SESSION['operating_system'] = $_POST['operating_system']; |
|
46 |
} |
|
47 |
if(!isset($_POST['world_writeable'])) { |
|
48 |
$_SESSION['world_writeable'] = false; |
|
49 |
} else { |
|
50 |
$_SESSION['world_writeable'] = true; |
|
51 |
} |
|
52 |
$_SESSION['database_host'] = $_POST['database_host']; |
|
53 |
$_SESSION['database_username'] = $_POST['database_username']; |
|
54 |
$_SESSION['database_password'] = $_POST['database_password']; |
|
55 |
$_SESSION['database_name'] = $_POST['database_name']; |
|
56 |
$_SESSION['table_prefix'] = $_POST['table_prefix']; |
|
57 |
if(!isset($_POST['install_tables'])) { |
|
58 |
$_SESSION['install_tables'] = false; |
|
59 |
} else { |
|
60 |
$_SESSION['install_tables'] = true; |
|
61 |
} |
|
62 |
$_SESSION['website_title'] = $_POST['website_title']; |
|
63 |
$_SESSION['admin_username'] = $_POST['admin_username']; |
|
64 |
$_SESSION['admin_email'] = $_POST['admin_email']; |
|
65 |
$_SESSION['admin_password'] = $_POST['admin_password']; |
|
66 |
} |
|
67 |
// Set the message |
|
68 |
$_SESSION['message'] = $message; |
|
69 |
// Specify that session support is enabled |
|
70 |
$_SESSION['session_support'] = '<font class="good">Enabled</font>'; |
|
71 |
// Redirect to first page again and exit |
|
72 |
header('Location: index.php?sessions_checked=true'); |
|
73 |
exit(); |
|
74 |
} |
|
75 |
} |
|
76 |
|
|
77 |
// Dummy class to allow modules' install scripts to call $admin->print_error |
|
78 |
class admin_dummy |
|
79 |
{ |
|
80 |
var $error=''; |
|
81 |
function print_error($message) |
|
82 |
{ |
|
83 |
$this->error=$message; |
|
84 |
} |
|
85 |
} |
|
86 |
|
|
87 |
// Function to workout what the default permissions are for files created by the webserver |
|
88 |
function default_file_mode($temp_dir) { |
|
89 |
$v = explode(".",PHP_VERSION); |
|
90 |
$v = $v[0].$v[1]; |
|
91 |
if($v > 41 AND is_writable($temp_dir)) { |
|
92 |
$filename = $temp_dir.'/test_permissions.txt'; |
|
93 |
$handle = fopen($filename, 'w'); |
|
94 |
fwrite($handle, 'This file is to get the default file permissions'); |
|
95 |
fclose($handle); |
|
96 |
$default_file_mode = '0'.substr(sprintf('%o', fileperms($filename)), -3); |
|
97 |
unlink($filename); |
|
98 |
} else { |
|
99 |
$default_file_mode = '0777'; |
|
100 |
} |
|
101 |
return $default_file_mode; |
|
102 |
} |
|
103 |
|
|
104 |
// Function to workout what the default permissions are for directories created by the webserver |
|
105 |
function default_dir_mode($temp_dir) { |
|
106 |
$v = explode(".",PHP_VERSION); |
|
107 |
$v = $v[0].$v[1]; |
|
108 |
if($v > 41 AND is_writable($temp_dir)) { |
|
109 |
$dirname = $temp_dir.'/test_permissions/'; |
|
110 |
mkdir($dirname); |
|
111 |
$default_dir_mode = '0'.substr(sprintf('%o', fileperms($dirname)), -3); |
|
112 |
rmdir($dirname); |
|
113 |
} else { |
|
114 |
$default_dir_mode = '0777'; |
|
115 |
} |
|
116 |
return $default_dir_mode; |
|
117 |
} |
|
118 |
|
|
119 |
function add_slashes($input) { |
|
120 |
if ( get_magic_quotes_gpc() || ( !is_string($input) ) ) { |
|
121 |
return $input; |
|
122 |
} |
|
123 |
$output = addslashes($input); |
|
124 |
return $output; |
|
125 |
} |
|
126 |
|
|
127 |
// Begin check to see if form was even submitted |
|
128 |
// Set error if no post vars found |
|
129 |
if(!isset($_POST['website_title'])) { |
|
130 |
set_error('Please fill-in the form below'); |
|
131 |
} |
|
132 |
// End check to see if form was even submitted |
|
133 |
|
|
134 |
// Begin path and timezone details code |
|
135 |
|
|
136 |
// Check if user has entered the installation url |
|
137 |
if(!isset($_POST['wb_url']) OR $_POST['wb_url'] == '') { |
|
138 |
set_error('Please enter an absolute URL'); |
|
139 |
} else { |
|
140 |
$wb_url = $_POST['wb_url']; |
|
141 |
} |
|
142 |
// Remove any slashes at the end of the URL |
|
143 |
if(substr($wb_url, strlen($wb_url)-1, 1) == "/") { |
|
144 |
$wb_url = substr($wb_url, 0, strlen($wb_url)-1); |
|
145 |
} |
|
146 |
if(substr($wb_url, strlen($wb_url)-1, 1) == "\\") { |
|
147 |
$wb_url = substr($wb_url, 0, strlen($wb_url)-1); |
|
148 |
} |
|
149 |
if(substr($wb_url, strlen($wb_url)-1, 1) == "/") { |
|
150 |
$wb_url = substr($wb_url, 0, strlen($wb_url)-1); |
|
151 |
} |
|
152 |
if(substr($wb_url, strlen($wb_url)-1, 1) == "\\") { |
|
153 |
$wb_url = substr($wb_url, 0, strlen($wb_url)-1); |
|
154 |
} |
|
155 |
// Get the default time zone |
|
156 |
if(!isset($_POST['default_timezone']) OR !is_numeric($_POST['default_timezone'])) { |
|
157 |
set_error('Please select a valid default timezone'); |
|
158 |
} else { |
|
159 |
$default_timezone = $_POST['default_timezone']*60*60; |
|
160 |
} |
|
161 |
// End path and timezone details code |
|
162 |
|
|
163 |
// Begin operating system specific code |
|
164 |
// Get operating system |
|
165 |
if(!isset($_POST['operating_system']) OR $_POST['operating_system'] != 'linux' AND $_POST['operating_system'] != 'windows') { |
|
166 |
set_error('Please select a valid operating system'); |
|
167 |
} else { |
|
168 |
$operating_system = $_POST['operating_system']; |
|
169 |
} |
|
170 |
// Work-out file permissions |
|
171 |
if($operating_system == 'windows') { |
|
172 |
$file_mode = '0777'; |
|
173 |
$dir_mode = '0777'; |
|
174 |
} elseif(isset($_POST['world_writeable']) AND $_POST['world_writeable'] == 'true') { |
|
175 |
$file_mode = '0777'; |
|
176 |
$dir_mode = '0777'; |
|
177 |
} else { |
|
178 |
$file_mode = default_file_mode('../temp'); |
|
179 |
$dir_mode = default_dir_mode('../temp'); |
|
180 |
} |
|
181 |
// End operating system specific code |
|
182 |
|
|
183 |
// Begin database details code |
|
184 |
// Check if user has entered a database host |
|
185 |
if(!isset($_POST['database_host']) OR $_POST['database_host'] == '') { |
|
186 |
set_error('Please enter a database host name'); |
|
187 |
} else { |
|
188 |
$database_host = $_POST['database_host']; |
|
189 |
} |
|
190 |
// Check if user has entered a database username |
|
191 |
if(!isset($_POST['database_username']) OR $_POST['database_username'] == '') { |
|
192 |
set_error('Please enter a database username'); |
|
193 |
} else { |
|
194 |
$database_username = $_POST['database_username']; |
|
195 |
} |
|
196 |
// Check if user has entered a database password |
|
197 |
if(!isset($_POST['database_password'])) { |
|
198 |
set_error('Please enter a database password'); |
|
199 |
} else { |
|
200 |
$database_password = $_POST['database_password']; |
|
201 |
} |
|
202 |
// Check if user has entered a database name |
|
203 |
if(!isset($_POST['database_name']) OR $_POST['database_name'] == '') { |
|
204 |
set_error('Please enter a database name'); |
|
205 |
} else { |
|
206 |
$database_name = $_POST['database_name']; |
|
207 |
} |
|
208 |
// Get table prefix |
|
209 |
$table_prefix = $_POST['table_prefix']; |
|
210 |
// Find out if the user wants to install tables and data |
|
211 |
if(isset($_POST['install_tables']) AND $_POST['install_tables'] == 'true') { |
|
212 |
$install_tables = true; |
|
213 |
} else { |
|
214 |
$install_tables = false; |
|
215 |
} |
|
216 |
// End database details code |
|
217 |
|
|
218 |
// Begin website title code |
|
219 |
// Get website title |
|
220 |
if(!isset($_POST['website_title']) OR $_POST['website_title'] == '') { |
|
221 |
set_error('Please enter a website title'); |
|
222 |
} else { |
|
223 |
$website_title = add_slashes($_POST['website_title']); |
|
224 |
} |
|
225 |
// End website title code |
|
226 |
|
|
227 |
// Begin admin user details code |
|
228 |
// Get admin username |
|
229 |
if(!isset($_POST['admin_username']) OR $_POST['admin_username'] == '') { |
|
230 |
set_error('Please enter a username for the Administrator account'); |
|
231 |
} else { |
|
232 |
$admin_username = $_POST['admin_username']; |
|
233 |
} |
|
234 |
// Get admin email and validate it |
|
235 |
if(!isset($_POST['admin_email']) OR $_POST['admin_email'] == '') { |
|
236 |
set_error('Please enter an email for the Administrator account'); |
|
237 |
} else { |
|
238 |
if(eregi("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $_POST['admin_email'])) { |
|
239 |
$admin_email = $_POST['admin_email']; |
|
240 |
} else { |
|
241 |
set_error('Please enter a valid email address for the Administrator account'); |
|
242 |
} |
|
243 |
} |
|
244 |
// Get the two admin passwords entered, and check that they match |
|
245 |
if(!isset($_POST['admin_password']) OR $_POST['admin_password'] == '') { |
|
246 |
set_error('Please enter a password for the Administrator account'); |
|
247 |
} else { |
|
248 |
$admin_password = $_POST['admin_password']; |
|
249 |
} |
|
250 |
if(!isset($_POST['admin_repassword']) OR $_POST['admin_repassword'] == '') { |
|
251 |
set_error('Please make sure you re-enter the password for the Administrator account'); |
|
252 |
} else { |
|
253 |
$admin_repassword = $_POST['admin_repassword']; |
|
254 |
} |
|
255 |
if($admin_password != $admin_repassword) { |
|
256 |
set_error('Sorry, the two Administrator account passwords you entered do not match'); |
|
257 |
} |
|
258 |
// End admin user details code |
|
259 |
|
|
260 |
// Try and write settings to config file |
|
261 |
$config_content = "" . |
|
262 |
"<?php\n". |
|
263 |
"\n". |
|
264 |
"define('DB_TYPE', 'mysql');\n". |
|
265 |
"define('DB_HOST', '$database_host');\n". |
|
266 |
"define('DB_USERNAME', '$database_username');\n". |
|
267 |
"define('DB_PASSWORD', '$database_password');\n". |
|
268 |
"define('DB_NAME', '$database_name');\n". |
|
269 |
"define('TABLE_PREFIX', '$table_prefix');\n". |
|
270 |
"\n". |
|
271 |
"define('WB_PATH', dirname(__FILE__));\n". |
|
272 |
"define('WB_URL', '$wb_url');\n". |
|
273 |
"define('ADMIN_PATH', WB_PATH.'/admin');\n". |
|
274 |
"define('ADMIN_URL', '$wb_url/admin');\n". |
|
275 |
"\n". |
|
276 |
"require_once(WB_PATH.'/framework/initialize.php');\n". |
|
277 |
"\n". |
|
278 |
"?>"; |
|
279 |
|
|
280 |
$config_filename = '../config.php'; |
|
281 |
|
|
282 |
// Check if the file exists and is writable first. |
|
283 |
if(file_exists($config_filename) AND is_writable($config_filename)) { |
|
284 |
if(!$handle = fopen($config_filename, 'w')) { |
|
285 |
set_error("Cannot open the configuration file ($config_filename)"); |
|
286 |
} else { |
|
287 |
if (fwrite($handle, $config_content) === FALSE) { |
|
288 |
set_error("Cannot write to the configuration file ($config_filename)"); |
|
289 |
} |
|
290 |
// Close file |
|
291 |
fclose($handle); |
|
292 |
} |
|
293 |
} else { |
|
294 |
set_error("The configuration file $config_filename is not writable. Change its permissions so it is, then re-run step 4."); |
|
295 |
} |
|
296 |
|
|
297 |
// Define configuration vars |
|
298 |
define('DB_TYPE', 'mysql'); |
|
299 |
define('DB_HOST', $database_host); |
|
300 |
define('DB_USERNAME', $database_username); |
|
301 |
define('DB_PASSWORD', $database_password); |
|
302 |
define('DB_NAME', $database_name); |
|
303 |
define('TABLE_PREFIX', $table_prefix); |
|
304 |
define('WB_PATH', str_replace(array('/install','\install'), '',dirname(__FILE__))); |
|
305 |
define('WB_URL', $wb_url); |
|
306 |
define('ADMIN_PATH', WB_PATH.'/admin'); |
|
307 |
define('ADMIN_URL', $wb_url.'/admin'); |
|
308 |
|
|
309 |
// Check if the user has entered a correct path |
|
310 |
if(!file_exists(WB_PATH.'/framework/class.admin.php')) { |
|
311 |
set_error('It appears the Absolute path that you entered is incorrect'); |
|
312 |
} |
|
313 |
|
|
314 |
// Try connecting to database |
|
315 |
if(!mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD)) { |
|
316 |
set_error('Database host name, username and/or password incorrect. MySQL Error:<br />'.mysql_error()); |
|
317 |
} |
|
318 |
|
|
319 |
// Try to create the database |
|
320 |
mysql_query('CREATE DATABASE '.$database_name); |
|
321 |
|
|
322 |
// Close the mysql connection |
|
323 |
mysql_close(); |
|
324 |
|
|
325 |
// Include WB functions file |
|
326 |
require_once(WB_PATH.'/framework/functions.php'); |
|
327 |
|
|
328 |
// Re-connect to the database, this time using in-build database class |
|
329 |
require_once(WB_PATH.'/framework/class.login.php'); |
|
330 |
$database=new database(); |
|
331 |
|
|
332 |
// Check if we should install tables |
|
333 |
if($install_tables == true) { |
|
334 |
|
|
335 |
// Remove tables if they exist |
|
336 |
|
|
337 |
// Pages table |
|
338 |
$pages = "DROP TABLE IF EXISTS `".TABLE_PREFIX."pages`"; |
|
339 |
$database->query($pages); |
|
340 |
// Sections table |
|
341 |
$sections = "DROP TABLE IF EXISTS `".TABLE_PREFIX."sections`"; |
|
342 |
$database->query($sections); |
|
343 |
// Settings table |
|
344 |
$settings = "DROP TABLE IF EXISTS `".TABLE_PREFIX."settings`"; |
|
345 |
$database->query($settings); |
|
346 |
// Users table |
|
347 |
$users = "DROP TABLE IF EXISTS `".TABLE_PREFIX."users`"; |
|
348 |
$database->query($users); |
|
349 |
// Groups table |
|
350 |
$groups = "DROP TABLE IF EXISTS `".TABLE_PREFIX."groups`"; |
|
351 |
$database->query($groups); |
|
352 |
// Search table |
|
353 |
$search = "DROP TABLE IF EXISTS `".TABLE_PREFIX."search`"; |
|
354 |
$database->query($search); |
|
355 |
// Addons table |
|
356 |
$addons = "DROP TABLE IF EXISTS `".TABLE_PREFIX."addons`"; |
|
357 |
$database->query($addons); |
|
358 |
|
|
359 |
// Try installing tables |
|
360 |
|
|
361 |
// Pages table |
|
362 |
$pages = 'CREATE TABLE `'.TABLE_PREFIX.'pages` ( `page_id` INT NOT NULL auto_increment,' |
|
363 |
. ' `parent` INT NOT NULL DEFAULT \'0\',' |
|
364 |
. ' `root_parent` INT NOT NULL DEFAULT \'0\',' |
|
365 |
. ' `level` INT NOT NULL DEFAULT \'0\',' |
|
366 |
. ' `link` TEXT NOT NULL,' |
|
367 |
. ' `target` VARCHAR( 7 ) NOT NULL DEFAULT \'\' ,' |
|
368 |
. ' `page_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
369 |
. ' `menu_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
370 |
. ' `description` TEXT NOT NULL ,' |
|
371 |
. ' `keywords` TEXT NOT NULL ,' |
|
372 |
. ' `page_trail` TEXT NOT NULL ,' |
|
373 |
. ' `template` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
374 |
. ' `visibility` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
375 |
. ' `position` INT NOT NULL DEFAULT \'0\',' |
|
376 |
. ' `menu` INT NOT NULL DEFAULT \'0\',' |
|
377 |
. ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'\' ,' |
|
378 |
. ' `searching` INT NOT NULL DEFAULT \'0\',' |
|
379 |
. ' `admin_groups` TEXT NOT NULL ,' |
|
380 |
. ' `admin_users` TEXT NOT NULL ,' |
|
381 |
. ' `viewing_groups` TEXT NOT NULL ,' |
|
382 |
. ' `viewing_users` TEXT NOT NULL ,' |
|
383 |
. ' `modified_when` INT NOT NULL DEFAULT \'0\',' |
|
384 |
. ' `modified_by` INT NOT NULL DEFAULT \'0\',' |
|
385 |
. ' PRIMARY KEY ( `page_id` ) ' |
|
386 |
. ' )'; |
|
387 |
$database->query($pages); |
|
388 |
|
|
389 |
// Sections table |
|
390 |
$pages = 'CREATE TABLE `'.TABLE_PREFIX.'sections` ( `section_id` INT NOT NULL auto_increment,' |
|
391 |
. ' `page_id` INT NOT NULL DEFAULT \'0\',' |
|
392 |
. ' `position` INT NOT NULL DEFAULT \'0\',' |
|
393 |
. ' `module` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
394 |
. ' `block` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
395 |
. ' PRIMARY KEY ( `section_id` ) ' |
|
396 |
. ' )'; |
|
397 |
$database->query($pages); |
|
398 |
|
|
399 |
require(WB_PATH.'/admin/interface/version.php'); |
|
400 |
|
|
401 |
// Settings table |
|
402 |
$settings='CREATE TABLE `'.TABLE_PREFIX.'settings` ( `setting_id` INT NOT NULL auto_increment,' |
|
403 |
. ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
404 |
. ' `value` TEXT NOT NULL ,' |
|
405 |
. ' PRIMARY KEY ( `setting_id` ) ' |
|
406 |
. ' )'; |
|
407 |
$database->query($settings); |
|
408 |
|
|
409 |
$settings_rows= "INSERT INTO `".TABLE_PREFIX."settings` " |
|
410 |
." (name, value) VALUES " |
|
411 |
." ('wb_version', '".VERSION."')," |
|
412 |
." ('website_title', '$website_title')," |
|
413 |
." ('website_description', '')," |
|
414 |
." ('website_keywords', '')," |
|
415 |
." ('website_header', '')," |
|
416 |
." ('website_footer', '')," |
|
417 |
." ('wysiwyg_style', 'font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;')," |
|
418 |
." ('rename_files_on_upload', 'php,asp,phpx,aspx')," |
|
419 |
." ('er_level', '')," |
|
420 |
." ('default_language', 'EN')," |
|
421 |
." ('app_name', 'wb')," |
|
422 |
." ('default_timezone', '$default_timezone')," |
|
423 |
." ('default_date_format', 'M d Y')," |
|
424 |
." ('default_time_format', 'g:i A')," |
|
425 |
." ('home_folders', 'true')," |
|
426 |
." ('default_template', 'round')," |
|
427 |
." ('default_charset', 'utf-8')," |
|
428 |
." ('multiple_menus', 'false')," |
|
429 |
." ('page_level_limit', '4')," |
|
430 |
." ('intro_page', 'false')," |
|
431 |
." ('page_trash', 'disabled')," |
|
432 |
." ('homepage_redirection', 'false')," |
|
433 |
." ('page_languages', 'false')," |
|
434 |
." ('wysiwyg_editor', 'htmlarea')," |
|
435 |
." ('manage_sections', 'true')," |
|
436 |
." ('section_blocks', 'false')," |
|
437 |
." ('smart_login', 'false')," |
|
438 |
." ('captcha_verification', 'true')," |
|
439 |
." ('frontend_login', 'false')," |
|
440 |
." ('frontend_signup', 'false')," |
|
441 |
." ('server_email', '$admin_email')," |
|
442 |
." ('search', 'public')," |
|
443 |
." ('page_extension', '.php')," |
|
444 |
." ('page_spacer', '-')," |
|
445 |
." ('pages_directory', '/pages')," |
|
446 |
." ('media_directory', '/media')," |
|
447 |
." ('operating_system', '$operating_system')," |
|
448 |
." ('string_file_mode', '$file_mode')," |
|
449 |
." ('string_dir_mode', '$dir_mode')," |
|
450 |
." ('wbmailer_routine', 'phpmail')," |
|
451 |
." ('wbmailer_smtp_host', '')," |
|
452 |
." ('wbmailer_smtp_auth', '')," |
|
453 |
." ('wbmailer_smtp_username', '')," |
|
454 |
." ('wbmailer_smtp_password', '')"; |
|
455 |
$database->query($settings_rows); |
|
456 |
|
|
457 |
// Users table |
|
458 |
$users = 'CREATE TABLE `'.TABLE_PREFIX.'users` ( `user_id` INT NOT NULL auto_increment,' |
|
459 |
. ' `group_id` INT NOT NULL DEFAULT \'0\',' |
|
460 |
. ' `active` INT NOT NULL DEFAULT \'0\',' |
|
461 |
. ' `username` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
462 |
. ' `password` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
463 |
. ' `remember_key` VARCHAR( 255 ) NOT NULL DEFAULT \'\',' |
|
464 |
. ' `last_reset` INT NOT NULL DEFAULT \'0\',' |
|
465 |
. ' `display_name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
466 |
. ' `email` TEXT NOT NULL ,' |
|
467 |
. ' `timezone` INT NOT NULL DEFAULT \'0\',' |
|
468 |
. ' `date_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
469 |
. ' `time_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
470 |
. ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'\' ,' |
|
471 |
. ' `home_folder` TEXT NOT NULL ,' |
|
472 |
. ' `login_when` INT NOT NULL DEFAULT \'0\',' |
|
473 |
. ' `login_ip` VARCHAR( 15 ) NOT NULL DEFAULT \'\' ,' |
|
474 |
. ' PRIMARY KEY ( `user_id` ) ' |
|
475 |
. ' )'; |
|
476 |
$database->query($users); |
|
477 |
|
|
478 |
// Groups table |
|
479 |
$groups = 'CREATE TABLE `'.TABLE_PREFIX.'groups` ( `group_id` INT NOT NULL auto_increment,' |
|
480 |
. ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
481 |
. ' `system_permissions` TEXT NOT NULL ,' |
|
482 |
. ' `module_permissions` TEXT NOT NULL ,' |
|
483 |
. ' `template_permissions` TEXT NOT NULL ,' |
|
484 |
. ' PRIMARY KEY ( `group_id` ) ' |
|
485 |
. ' )'; |
|
486 |
$database->query($groups); |
|
487 |
|
|
488 |
// Search settings table |
|
489 |
$search = 'CREATE TABLE `'.TABLE_PREFIX.'search` ( `search_id` INT NOT NULL auto_increment,' |
|
490 |
. ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
491 |
. ' `value` TEXT NOT NULL ,' |
|
492 |
. ' `extra` TEXT NOT NULL ,' |
|
493 |
. ' PRIMARY KEY ( `search_id` ) ' |
|
494 |
. ' )'; |
|
495 |
$database->query($search); |
|
496 |
|
|
497 |
// Addons table |
|
498 |
$addons = 'CREATE TABLE `'.TABLE_PREFIX.'addons` ( ' |
|
499 |
.'`addon_id` INT NOT NULL auto_increment ,' |
|
500 |
.'`type` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
501 |
.'`directory` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
502 |
.'`name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
503 |
.'`description` TEXT NOT NULL ,' |
|
504 |
.'`function` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
505 |
.'`version` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
506 |
.'`platform` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
507 |
.'`author` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
508 |
.'`license` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' |
|
509 |
.' PRIMARY KEY ( `addon_id` ) ' |
|
510 |
.' )'; |
|
511 |
$database->query($addons); |
|
512 |
|
|
513 |
// Insert default data |
|
514 |
|
|
515 |
// Admin group |
|
516 |
$full_system_permissions = 'pages,pages_view,pages_add,pages_add_l0,pages_settings,pages_modify,pages_intro,pages_delete,media,media_view,media_upload,media_rename,media_delete,media_create,addons,modules,modules_view,modules_install,modules_uninstall,templates,templates_view,templates_install,templates_uninstall,languages,languages_view,languages_install,languages_uninstall,settings,settings_basic,settings_advanced,access,users,users_view,users_add,users_modify,users_delete,groups,groups_view,groups_add,groups_modify,groups_delete'; |
|
517 |
$insert_admin_group = "INSERT INTO `".TABLE_PREFIX."groups` VALUES ('1', 'Administrators', '$full_system_permissions', '', '')"; |
|
518 |
$database->query($insert_admin_group); |
|
519 |
// Admin user |
|
520 |
$insert_admin_user = "INSERT INTO `".TABLE_PREFIX."users` (user_id,group_id,active,username,password,email,display_name) VALUES ('1','1','1','$admin_username','".md5($admin_password)."','$admin_email','Administrator')"; |
|
521 |
$database->query($insert_admin_user); |
|
522 |
|
|
523 |
// Search header |
|
524 |
$search_header = addslashes(' |
|
525 |
<h1>Search</h1> |
|
526 |
|
|
527 |
<form name="search" action="[WB_URL]/search/index[PAGE_EXTENSION]" method="get"> |
|
528 |
<table cellpadding="3" cellspacing="0" border="0" width="500"> |
|
529 |
<tr> |
|
530 |
<td> |
|
531 |
<input type="text" name="string" value="[SEARCH_STRING]" style="width: 100%;" /> |
|
532 |
</td> |
|
533 |
<td width="150"> |
|
534 |
<input type="submit" value="[TEXT_SEARCH]" style="width: 100%;" /> |
|
535 |
</td> |
|
536 |
</tr> |
|
537 |
<tr> |
|
538 |
<td colspan="2"> |
|
539 |
<input type="radio" name="match" id="match_all" value="all"[ALL_CHECKED] /> |
|
540 |
<label for="match_all">[TEXT_ALL_WORDS]</label> |
|
541 |
<input type="radio" name="match" id="match_any" value="any"[ANY_CHECKED] /> |
|
542 |
<label for="match_any">[TEXT_ANY_WORDS]</label> |
|
543 |
<input type="radio" name="match" id="match_exact" value="exact"[EXACT_CHECKED] /> |
|
544 |
<label for="match_exact">[TEXT_EXACT_MATCH]</label> |
|
545 |
</td> |
|
546 |
</tr> |
|
547 |
</table> |
|
548 |
|
|
549 |
</form> |
|
550 |
|
|
551 |
<hr /> |
|
552 |
'); |
|
553 |
$insert_search_header = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'header', '$search_header', '')"; |
|
554 |
$database->query($insert_search_header); |
|
555 |
// Search footer |
|
556 |
$search_footer = addslashes(''); |
|
557 |
$insert_search_footer = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'footer', '$search_footer', '')"; |
|
558 |
$database->query($insert_search_footer); |
|
559 |
// Search results header |
|
560 |
$search_results_header = addslashes(''. |
|
561 |
'[TEXT_RESULTS_FOR] \'<b>[SEARCH_STRING]</b>\': |
|
562 |
<table cellpadding="2" cellspacing="0" border="0" width="100%" style="padding-top: 10px;">'); |
|
563 |
$insert_search_results_header = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'results_header', '$search_results_header', '')"; |
|
564 |
$database->query($insert_search_results_header); |
|
565 |
// Search results loop |
|
566 |
$search_results_loop = addslashes(''. |
|
567 |
'<tr style="background-color: #F0F0F0;"> |
|
568 |
<td><a href="[LINK]">[TITLE]</a></td> |
|
569 |
<td align="right">[TEXT_LAST_UPDATED_BY] [DISPLAY_NAME] ([USERNAME]) [TEXT_ON] [DATE]</td> |
|
570 |
</tr> |
|
571 |
<tr><td colspan="2" style="text-align: justify; padding-bottom: 10px;">[DESCRIPTION]</td></tr>'); |
|
572 |
|
|
573 |
$insert_search_results_loop = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'results_loop', '$search_results_loop', '')"; |
|
574 |
$database->query($insert_search_results_loop); |
|
575 |
// Search results footer |
|
576 |
$search_results_footer = addslashes("</table>"); |
|
577 |
$insert_search_results_footer = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'results_footer', '$search_results_footer', '')"; |
|
578 |
$database->query($insert_search_results_footer); |
|
579 |
// Search no results |
|
580 |
$search_no_results = addslashes('<br />No results found'); |
|
581 |
$insert_search_no_results = "INSERT INTO `".TABLE_PREFIX."search` VALUES ('', 'no_results', '$search_no_results', '')"; |
|
582 |
$database->query($insert_search_no_results); |
|
583 |
// Search template |
|
584 |
$database->query("INSERT INTO `".TABLE_PREFIX."search` (name) VALUES ('template')"); |
|
585 |
|
|
586 |
require_once(WB_PATH.'/framework/initialize.php'); |
|
587 |
|
|
588 |
// Include the PclZip class file (thanks to |
|
589 |
require_once(WB_PATH.'/include/pclzip/pclzip.lib.php'); |
|
590 |
|
|
591 |
// Install add-ons |
|
592 |
if(file_exists(WB_PATH.'/install/modules')) { |
|
593 |
// Unpack pre-packaged modules |
|
594 |
|
|
595 |
} |
|
596 |
if(file_exists(WB_PATH.'/install/templates')) { |
|
597 |
// Unpack pre-packaged templates |
|
598 |
|
|
599 |
} |
|
600 |
if(file_exists(WB_PATH.'/install/languages')) { |
|
601 |
// Unpack pre-packaged languages |
|
602 |
|
|
603 |
} |
|
604 |
|
|
605 |
$admin=new admin_dummy(); |
|
606 |
// Load addons into DB |
|
607 |
$dirs['modules'] = WB_PATH.'/modules/'; |
|
608 |
$dirs['templates'] = WB_PATH.'/templates/'; |
|
609 |
$dirs['languages'] = WB_PATH.'/languages/'; |
|
610 |
foreach($dirs AS $type => $dir) { |
|
611 |
if($handle = opendir($dir)) { |
|
612 |
while(false !== ($file = readdir($handle))) { |
|
613 |
if($file != '' AND substr($file, 0, 1) != '.' AND $file != 'admin.php' AND $file != 'index.php') { |
|
614 |
// Get addon type |
|
615 |
if($type == 'modules') { |
|
616 |
load_module($dir.'/'.$file, true); |
|
617 |
// Pretty ugly hack to let modules run $admin->set_error |
|
618 |
// See dummy class definition admin_dummy above |
|
619 |
if ($admin->error!='') { |
|
620 |
set_error($admin->error); |
|
621 |
} |
|
622 |
} elseif($type == 'templates') { |
|
623 |
load_template($dir.'/'.$file); |
|
624 |
} elseif($type == 'languages') { |
|
625 |
load_language($dir.'/'.$file); |
|
626 |
} |
|
627 |
} |
|
628 |
} |
|
629 |
closedir($handle); |
|
630 |
} |
|
631 |
} |
|
632 |
|
|
633 |
// Check if there was a database error |
|
634 |
if($database->is_error()) { |
|
635 |
set_error($database->get_error()); |
|
636 |
} |
|
637 |
|
|
638 |
} |
|
639 |
|
|
640 |
// Log the user in and go to Website Baker Administration |
|
641 |
$thisApp = new Login( |
|
642 |
array( |
|
643 |
"MAX_ATTEMPS" => "50", |
|
644 |
"WARNING_URL" => ADMIN_URL."/login/warning.html", |
|
645 |
"USERNAME_FIELDNAME" => 'admin_username', |
|
646 |
"PASSWORD_FIELDNAME" => 'admin_password', |
|
647 |
"REMEMBER_ME_OPTION" => SMART_LOGIN, |
|
648 |
"MIN_USERNAME_LEN" => "2", |
|
649 |
"MIN_PASSWORD_LEN" => "2", |
|
650 |
"MAX_USERNAME_LEN" => "30", |
|
651 |
"MAX_PASSWORD_LEN" => "30", |
|
652 |
'LOGIN_URL' => ADMIN_URL."/login/index.php", |
|
653 |
'DEFAULT_URL' => ADMIN_URL."/start/index.php", |
|
654 |
'TEMPLATE_DIR' => ADMIN_PATH."/login", |
|
655 |
'TEMPLATE_FILE' => "template.html", |
|
656 |
'FRONTEND' => false, |
|
657 |
'FORGOTTEN_DETAILS_APP' => ADMIN_URL."/login/forgot/index.php", |
|
658 |
'USERS_TABLE' => TABLE_PREFIX."users", |
|
659 |
'GROUPS_TABLE' => TABLE_PREFIX."groups", |
|
660 |
) |
|
661 |
); |
|
688 | 662 |
?> |
Also available in: Unified diff
Updated some core files to allow the configuration of PHPMailer via the admin settings panel instead of config.php. PHPMailer related settings are now stored in the Website Baker database. The following settings can be configured:
SMTP-host, SMTP-authentification , SMTP-password and SMTP-username.