forked from osTicket/osTicket-1.7
-
Notifications
You must be signed in to change notification settings - Fork 2
/
install.php
122 lines (106 loc) · 4.52 KB
/
install.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
/*********************************************************************
install.php
osTicket Installer.
Peter Rotich <peter@osticket.com>
Copyright (c) 2006-2013 osTicket
http://www.osticket.com
Released under the GNU General Public License WITHOUT ANY WARRANTY.
See LICENSE.TXT for details.
vim: expandtab sw=4 ts=4 sts=4:
**********************************************************************/
require('setup.inc.php');
require_once INC_DIR.'class.installer.php';
//define('OSTICKET_CONFIGFILE','../include/ost-config.php'); //osTicket config file full path.
define('OSTICKET_CONFIGFILE','../include/ost-config.php'); //XXX: Make sure the path is corrent b4 releasing.
$installer = new Installer(OSTICKET_CONFIGFILE); //Installer instance.
$wizard=array();
$wizard['title']='osTicket Installer';
$wizard['tagline']='Installing osTicket v'.$installer->getVersionVerbose();
$wizard['logo']='logo.png';
$wizard['menu']=array('Installation Guide'=>'http://osticket.com/wiki/Installation',
'Get Professional Help'=>'http://osticket.com/support');
if($_POST && $_POST['s']) {
$errors = array();
$_SESSION['ost_installer']['s']=$_POST['s'];
switch(strtolower($_POST['s'])) {
case 'prereq':
if($installer->check_prereq())
$_SESSION['ost_installer']['s']='config';
else
$errors['prereq']='Minimum requirements not met!';
break;
case 'config':
if(!$installer->config_exists())
$errors['err']='Configuration file does NOT exist. Follow steps below to add one.';
elseif(!$installer->config_writable())
$errors['err']='Write access required to continue';
else
$_SESSION['ost_installer']['s']='install';
break;
case 'install':
if($installer->install($_POST)) {
$_SESSION['info']=array('name' =>ucfirst($_POST['fname'].' '.$_POST['lname']),
'email' =>$_POST['admin_email'],
'URL'=>URL);
//TODO: Go to subscribe step.
$_SESSION['ost_installer']['s']='done';
} elseif(!($errors=$installer->getErrors()) || !$errors['err']) {
$errors['err']='Error installing osTicket - correct the errors below and try again.';
}
break;
case 'subscribe':
if(!trim($_POST['name']))
$errors['name'] = 'Required';
if(!$_POST['email'])
$errors['email'] = 'Required';
elseif(!Validator::is_email($_POST['email']))
$errors['email'] = 'Invalid';
if(!$_POST['alerts'] && !$_POST['news'])
$errors['notify'] = 'Check one or more';
if(!$errors)
$_SESSION['ost_installer']['s'] = 'done';
break;
}
}elseif($_GET['s'] && $_GET['s']=='ns' && $_SESSION['ost_installer']['s']=='subscribe') {
$_SESSION['ost_installer']['s']='done';
}
switch(strtolower($_SESSION['ost_installer']['s'])) {
case 'config':
case 'install':
if(!$installer->config_exists()) {
$inc='file-missing.inc.php';
} elseif(!($cFile=file_get_contents($installer->getConfigFile()))
|| preg_match("/define\('OSTINSTALLED',TRUE\)\;/i",$cFile)) { //osTicket already installed or empty config file?
$inc='file-unclean.inc.php';
} elseif(!$installer->config_writable()) { //writable config file??
clearstatcache();
$inc='file-perm.inc.php';
} else { //Everything checked out show install form.
$inc='install.inc.php';
}
break;
case 'subscribe': //TODO: Prep for v1.7 RC1
$inc='subscribe.inc.php';
break;
case 'done':
$inc='install-done.inc.php';
if(!$installer->config_exists())
$inc='install-prereq.inc.php';
break;
default:
//Fail IF any of the old config files exists.
if(file_exists(INCLUDE_DIR.'settings.php')
|| file_exists(ROOT_DIR.'ostconfig.php')
|| (file_exists(OSTICKET_CONFIGFILE)
&& preg_match("/define\('OSTINSTALLED',TRUE\)\;/i",
file_get_contents(OSTICKET_CONFIGFILE)))
)
$inc='file-unclean.inc.php';
else
$inc='install-prereq.inc.php';
}
require(INC_DIR.'header.inc.php');
require(INC_DIR.$inc);
require(INC_DIR.'footer.inc.php');
?>