744
hesk/install/install.php
Normal file
744
hesk/install/install.php
Normal file
@@ -0,0 +1,744 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of HESK - PHP Help Desk Software.
|
||||
*
|
||||
* (c) Copyright Klemen Stirn. All rights reserved.
|
||||
* https://www.hesk.com
|
||||
*
|
||||
* For the full copyright and license agreement information visit
|
||||
* https://www.hesk.com/eula.php
|
||||
*
|
||||
*/
|
||||
|
||||
define('IN_SCRIPT',1);
|
||||
define('HESK_PATH','../');
|
||||
|
||||
define('INSTALL_PAGE', 'install.php');
|
||||
require(HESK_PATH . 'install/install_functions.inc.php');
|
||||
|
||||
// If no step is defined, start with step 1
|
||||
if ( ! isset($_SESSION['step']) )
|
||||
{
|
||||
$_SESSION['step']=1;
|
||||
}
|
||||
// Check if the license has been agreed to and verify sessions are working
|
||||
elseif ($_SESSION['step']==1)
|
||||
{
|
||||
$agree = hesk_POST('agree', '');
|
||||
if ($agree == 'YES')
|
||||
{
|
||||
// Are sessions working?
|
||||
if ( empty($_SESSION['works']) )
|
||||
{
|
||||
hesk_iSessionError();
|
||||
}
|
||||
|
||||
// All OK, continue
|
||||
$_SESSION['license_agree']=1;
|
||||
$_SESSION['step']=2;
|
||||
}
|
||||
else
|
||||
{
|
||||
$_SESSION['step']=1;
|
||||
}
|
||||
}
|
||||
|
||||
// Test database connection?
|
||||
if ($_SESSION['step'] == 3 && isset($_POST['dbtest']) )
|
||||
{
|
||||
// Username
|
||||
$_SESSION['admin_user'] = hesk_input( hesk_POST('admin_user') );
|
||||
if ( strlen($_SESSION['admin_user']) == 0 )
|
||||
{
|
||||
$_SESSION['admin_user'] = 'Administrator';
|
||||
}
|
||||
|
||||
// Password
|
||||
$_SESSION['admin_pass'] = hesk_input( hesk_POST('admin_pass') );
|
||||
if ( strlen($_SESSION['admin_pass']) == 0 )
|
||||
{
|
||||
$_SESSION['admin_pass'] = substr(str_shuffle("23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"), 0, mt_rand(8,12) );
|
||||
}
|
||||
|
||||
// Password hash for the database
|
||||
$_SESSION['admin_hash'] = hesk_Pass2Hash($_SESSION['admin_pass']);
|
||||
|
||||
// Test DB connection
|
||||
$hesk_db_link = hesk_iTestDatabaseConnection();
|
||||
|
||||
// Generate HESK table names
|
||||
$hesk_tables = array(
|
||||
$hesk_settings['db_pfix'].'attachments',
|
||||
$hesk_settings['db_pfix'].'banned_emails',
|
||||
$hesk_settings['db_pfix'].'banned_ips',
|
||||
$hesk_settings['db_pfix'].'categories',
|
||||
$hesk_settings['db_pfix'].'custom_fields',
|
||||
$hesk_settings['db_pfix'].'custom_statuses',
|
||||
$hesk_settings['db_pfix'].'kb_articles',
|
||||
$hesk_settings['db_pfix'].'kb_attachments',
|
||||
$hesk_settings['db_pfix'].'kb_categories',
|
||||
$hesk_settings['db_pfix'].'logins',
|
||||
$hesk_settings['db_pfix'].'mail',
|
||||
$hesk_settings['db_pfix'].'notes',
|
||||
$hesk_settings['db_pfix'].'online',
|
||||
$hesk_settings['db_pfix'].'pipe_loops',
|
||||
$hesk_settings['db_pfix'].'replies',
|
||||
$hesk_settings['db_pfix'].'reply_drafts',
|
||||
$hesk_settings['db_pfix'].'reset_password',
|
||||
$hesk_settings['db_pfix'].'service_messages',
|
||||
$hesk_settings['db_pfix'].'std_replies',
|
||||
$hesk_settings['db_pfix'].'tickets',
|
||||
$hesk_settings['db_pfix'].'ticket_templates',
|
||||
$hesk_settings['db_pfix'].'users',
|
||||
);
|
||||
|
||||
// Check if any of the HESK tables exists
|
||||
$res = hesk_dbQuery('SHOW TABLES FROM `'.hesk_dbEscape($hesk_settings['db_name']).'`');
|
||||
|
||||
while ($row = hesk_dbFetchRow($res))
|
||||
{
|
||||
if (in_array($row[0],$hesk_tables))
|
||||
{
|
||||
hesk_iDatabase(2);
|
||||
}
|
||||
}
|
||||
|
||||
// Timezone
|
||||
$hesk_settings['timezone'] = hesk_input( hesk_POST('timezone') );
|
||||
if ( ! in_array($hesk_settings['timezone'], timezone_identifiers_list()) )
|
||||
{
|
||||
$hesk_settings['timezone'] = 'UTC';
|
||||
}
|
||||
|
||||
// All ok, let's save settings
|
||||
hesk_iSaveSettings();
|
||||
|
||||
// Now install HESK database tables
|
||||
hesk_iTables();
|
||||
|
||||
// And move to the next step
|
||||
$_SESSION['step']=4;
|
||||
}
|
||||
|
||||
// Which step are we at?
|
||||
switch ($_SESSION['step'])
|
||||
{
|
||||
case 2:
|
||||
hesk_iCheckSetup();
|
||||
break;
|
||||
case 3:
|
||||
hesk_iDatabase();
|
||||
break;
|
||||
case 4:
|
||||
hesk_iFinish();
|
||||
break;
|
||||
default:
|
||||
hesk_iStart();
|
||||
}
|
||||
|
||||
|
||||
// ******* FUNCTIONS ******* //
|
||||
|
||||
|
||||
function hesk_iFinish()
|
||||
{
|
||||
global $hesk_settings;
|
||||
hesk_iHeader();
|
||||
?>
|
||||
|
||||
<br />
|
||||
<?php hesk_show_success('Congratulations, you have successfully completed HESK database setup!'); ?>
|
||||
|
||||
<h3>Next steps:</h3>
|
||||
|
||||
<ol>
|
||||
|
||||
<li><span style="color:#ff0000">Delete the <b>/install</b> folder from your server!</span><br /> </li>
|
||||
|
||||
<li>Remember your login details:<br />
|
||||
|
||||
<pre style="font-size: 1.17em">
|
||||
Username: <span style="color:red; font-weight:bold"><?php echo stripslashes($_SESSION['admin_user']); ?></span>
|
||||
Password: <span style="color:red; font-weight:bold"><?php echo stripslashes($_SESSION['admin_pass']); ?></span>
|
||||
</pre>
|
||||
|
||||
<br />
|
||||
|
||||
</li>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<form action="<?php echo HESK_PATH . $hesk_settings['admin_dir']; ?>/index.php" method="post">
|
||||
<input type="hidden" name="a" value="do_login" />
|
||||
<input type="hidden" name="remember_user" value="JUSTUSER" />
|
||||
<input type="hidden" name="user" value="<?php echo stripslashes($_SESSION['admin_user']); ?>" />
|
||||
<input type="hidden" name="pass" value="<?php echo stripslashes($_SESSION['admin_pass']); ?>" />
|
||||
<input type="hidden" name="goto" value="mail.php?a=read&id=1" />
|
||||
<input type="submit" value="Read HESK quick start guide" class="orangebutton" onmouseover="hesk_btn(this,'orangebuttonover');" onmouseout="hesk_btn(this,'orangebutton');" />
|
||||
</form>
|
||||
</td>
|
||||
<td> - or -</td>
|
||||
<td>
|
||||
<form action="<?php echo HESK_PATH . $hesk_settings['admin_dir']; ?>/index.php" method="post">
|
||||
<input type="hidden" name="a" value="do_login" />
|
||||
<input type="hidden" name="remember_user" value="JUSTUSER" />
|
||||
<input type="hidden" name="user" value="<?php echo stripslashes($_SESSION['admin_user']); ?>" />
|
||||
<input type="hidden" name="pass" value="<?php echo stripslashes($_SESSION['admin_pass']); ?>" />
|
||||
<input type="hidden" name="goto" value="admin_settings_general.php" />
|
||||
<input type="submit" value="Skip directly to settings" class="orangebuttonsec" onmouseover="hesk_btn(this,'orangebuttonsecover');" onmouseout="hesk_btn(this,'orangebuttonsec');" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</ol>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<?php
|
||||
hesk_iFooter();
|
||||
} // End hesk_iFinish()
|
||||
|
||||
|
||||
function hesk_iTables()
|
||||
{
|
||||
global $hesk_db_link, $hesk_settings;
|
||||
|
||||
// -> Attachments
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."attachments` (
|
||||
`att_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`ticket_id` varchar(13) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`saved_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`real_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`size` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`type` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`att_id`),
|
||||
KEY `ticket_id` (`ticket_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Banned emails
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."banned_emails` (
|
||||
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`email` varchar(255) NOT NULL,
|
||||
`banned_by` smallint(5) unsigned NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `email` (`email`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
");
|
||||
|
||||
// -> Banned IPs
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."banned_ips` (
|
||||
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`ip_from` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`ip_to` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`ip_display` varchar(100) NOT NULL,
|
||||
`banned_by` smallint(5) unsigned NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
");
|
||||
|
||||
// -> Categories
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` (
|
||||
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(60) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`cat_order` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`autoassign` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`type` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`priority` enum('0','1','2','3') COLLATE utf8_unicode_ci NOT NULL DEFAULT '3',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `type` (`type`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// ---> Insert default category
|
||||
hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` (`id`, `name`, `cat_order`) VALUES (1, 'General', 10)");
|
||||
|
||||
// -> Custom fields
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."custom_fields` (
|
||||
`id` tinyint(3) UNSIGNED NOT NULL,
|
||||
`use` enum('0','1','2') NOT NULL DEFAULT '0',
|
||||
`place` enum('0','1') NOT NULL DEFAULT '0',
|
||||
`type` varchar(20) NOT NULL DEFAULT 'text',
|
||||
`req` enum('0','1','2') NOT NULL DEFAULT '0',
|
||||
`category` text,
|
||||
`name` text,
|
||||
`value` text,
|
||||
`order` smallint(5) UNSIGNED NOT NULL DEFAULT '10',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `useType` (`use`,`type`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// ---> Insert empty custom fields
|
||||
hesk_dbQuery("
|
||||
INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."custom_fields` (`id`, `use`, `place`, `type`, `req`, `category`, `name`, `value`, `order`) VALUES
|
||||
(1, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(2, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(3, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(4, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(5, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(6, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(7, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(8, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(9, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(10, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(11, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(12, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(13, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(14, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(15, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(16, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(17, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(18, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(19, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(20, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(21, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(22, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(23, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(24, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(25, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(26, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(27, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(28, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(29, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(30, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(31, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(32, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(33, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(34, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(35, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(36, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(37, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(38, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(39, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(40, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(41, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(42, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(43, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(44, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(45, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(46, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(47, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(48, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(49, '0', '0', 'text', '0', NULL, '', NULL, 1000),
|
||||
(50, '0', '0', 'text', '0', NULL, '', NULL, 1000)
|
||||
");
|
||||
|
||||
// -> Custom statuses
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."custom_statuses` (
|
||||
`id` tinyint(3) UNSIGNED NOT NULL,
|
||||
`name` text NOT NULL,
|
||||
`color` varchar(6) NOT NULL,
|
||||
`can_customers_change` enum('0','1') NOT NULL DEFAULT '1',
|
||||
`order` smallint(5) UNSIGNED NOT NULL DEFAULT '10',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> KB Articles
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_articles` (
|
||||
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`catid` smallint(5) unsigned NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`author` smallint(5) unsigned NOT NULL,
|
||||
`subject` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`content` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`keywords` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`rating` float NOT NULL DEFAULT '0',
|
||||
`votes` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`views` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`type` enum('0','1','2') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`html` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`sticky` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`art_order` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`history` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`attachments` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `catid` (`catid`),
|
||||
KEY `sticky` (`sticky`),
|
||||
KEY `type` (`type`),
|
||||
FULLTEXT KEY `subject` (`subject`,`content`,`keywords`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> KB Attachments
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_attachments` (
|
||||
`att_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`saved_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`real_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`size` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`att_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> KB Categories
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_categories` (
|
||||
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`parent` smallint(5) unsigned NOT NULL,
|
||||
`articles` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`articles_private` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`articles_draft` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`cat_order` smallint(5) unsigned NOT NULL,
|
||||
`type` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `type` (`type`),
|
||||
KEY `parent` (`parent`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// ---> Insert default KB category
|
||||
hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."kb_categories` (`id`, `name`, `parent`, `cat_order`, `type`) VALUES (1, 'Knowledgebase', 0, 10, '0')");
|
||||
|
||||
// -> Login attempts
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."logins` (
|
||||
`ip` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`number` tinyint(3) unsigned NOT NULL DEFAULT '1',
|
||||
`last_attempt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY `ip` (`ip`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Private messages
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."mail` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`from` smallint(5) unsigned NOT NULL,
|
||||
`to` smallint(5) unsigned NOT NULL,
|
||||
`subject` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`message` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`read` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`deletedby` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `from` (`from`),
|
||||
KEY `to` (`to`,`read`,`deletedby`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// ---> Insert welcome email
|
||||
hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."mail` (`id`, `from`, `to`, `subject`, `message`, `dt`, `read`, `deletedby`) VALUES (NULL, 9999, 1, 'HESK quick start guide', '".hesk_dbEscape("</p><div style=\"text-align:justify; padding-left: 10px; padding-right: 10px;\">\r\n\r\n<p> <br /><b>Welcome to HESK! You'll find it is a great tool for improving your customer support.</b></p>\r\n\r\n<p><b>Here is a short guide to get you started.</b><br /> </p>\r\n\r\n<hr />\r\nSTEP #1: setup your profile\r\n<hr />\r\n<ol>\r\n<li>go to <a href=\"profile.php\">Profile</a>,</li>\r\n<li>set your name and email address.</li>\r\n</ol>\r\n\r\n \r\n\r\n<hr />\r\nSTEP #2: configure HESK\r\n<hr />\r\n<ol>\r\n<li>go to <a href=\"admin_settings_general.php\">Settings</a>,</li>\r\n<li>for a quick start, just modify these on the \"General\" tab:<br /><br />\r\nWebsite title<br />\r\nWebsite URL<br />\r\nWebmaster email<br /> \r\n</li>\r\n<li>you can come back to the settings page later and explore all the options. To view details about a setting, click the [?]</li>\r\n</ol>\r\n\r\n \r\n\r\n<hr />\r\nSTEP #3: add ticket categories\r\n<hr />\r\n<p>Go to <a href=\"manage_categories.php\">Categories</a> to add ticket categories.</p>\r\n<p>You cannot delete the default category, but you can rename it.</p>\r\n\r\n<p> </p>\r\n\r\n<hr />\r\nSTEP #4: add staff accounts\r\n<hr />\r\n<p>Go to <a href=\"manage_users.php\">Users</a> to create new staff accounts.</p>\r\n<p>You can use two user types in HESK:</p>\r\n<ul>\r\n<li><b>Administrators</b>, who have full access to all HESK features</li>\r\n<li><b>Staff</b>, who have access to limited privileges and categories</li>\r\n</ul>\r\n\r\n \r\n\r\n<hr />\r\nSTEP #5: useful tools\r\n<hr />\r\n<p>You can do a lot on the <a href=\"banned_emails.php\">Tools</a> page, for example:</p>\r\n<ul>\r\n<li>create custom ticket statuses,</li>\r\n<li>add custom input fields to the \"Submit a ticket\" form,</li>\r\n<li>modify email templates,</li>\r\n<li>and more.</li>\r\n</ul>\r\n\r\n \r\n\r\n<hr />\r\nSTEP #6: create a knowledgebase\r\n<hr />\r\n<p>A clear and comprehensive knowledgebase can drastically reduce the number of support tickets you receive, thereby saving you significant time and effort in the long run.</p>\r\n<p>Go to <a href=\"manage_knowledgebase.php\">Knowledgebase</a> to create categories and write articles for your knowledgebase.</p>\r\n\r\n \r\n\r\n<hr />\r\nSTEP #7: don't repeat yourself\r\n<hr />\r\n<p>Sometimes several support tickets are addressing the same issues - allowing you to use pre-written ("canned") responses.</p>\r\n<p>To compose canned responses go to <a href=\"manage_canned.php\">Canned</a> page.</p>\r\n\r\n \r\n\r\n<hr />\r\nSTEP #8: secure your help desk\r\n<hr />\r\n<p>Make sure your help desk is as secure as possible by going through <a href=\"https://www.hesk.com/knowledgebase/?article=82\">HESK security check list</a></p>\r\n\r\n \r\n\r\n<hr />\r\nSTEP #9: stay updated\r\n<hr />\r\n<p>HESK regularly receives improvements and bug fixes, make sure you know about them!</p>\r\n<ul>\r\n<li>for fast notifications, <a href=\"https://twitter.com/HESKdotCOM\">follow us on <b>Twitter</b></a></li>\r\n<li>for email notifications, subscribe to our low-volume zero-spam <a href=\"https://www.hesk.com/newsletter.php\">newsletter</a></li>\r\n</ul>\r\n\r\n \r\n\r\n<hr />\r\nSTEP #10: look professional\r\n<hr />\r\n<p>To look more professional and not advertise the tools you use, <a href=\"https://www.hesk.com/buy.php\">remove "Powered by" links</a> from your help desk.</p>\r\n\r\n<p> </p>\r\n\r\n<p>Again, welcome to HESK and enjoy using it!</p>\r\n\r\n<p>Klemen Stirn<br />\r\nAuthor and owner</p>\r\n\r\n</div><p>")."', NOW(), '0', 9999)");
|
||||
|
||||
// -> Notes
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."notes` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`ticket` mediumint(8) unsigned NOT NULL,
|
||||
`who` smallint(5) unsigned NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`message` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`attachments` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `ticketid` (`ticket`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Online
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."online` (
|
||||
`user_id` smallint(5) unsigned NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`tmp` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
UNIQUE KEY `user_id` (`user_id`),
|
||||
KEY `dt` (`dt`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Pipe loops
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."pipe_loops` (
|
||||
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`hits` smallint(1) unsigned NOT NULL DEFAULT '0',
|
||||
`message_hash` char(32) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY `email` (`email`,`hits`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Replies
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."replies` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`replyto` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`message` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`attachments` mediumtext COLLATE utf8_unicode_ci,
|
||||
`staffid` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`rating` enum('1','5') COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`read` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `replyto` (`replyto`),
|
||||
KEY `dt` (`dt`),
|
||||
KEY `staffid` (`staffid`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Reply drafts
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."reply_drafts` (
|
||||
`owner` smallint(5) unsigned NOT NULL,
|
||||
`ticket` mediumint(8) unsigned NOT NULL,
|
||||
`message` mediumtext CHARACTER SET utf8 NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
KEY `owner` (`owner`),
|
||||
KEY `ticket` (`ticket`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Reset password
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."reset_password` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`user` smallint(5) unsigned NOT NULL,
|
||||
`hash` char(40) NOT NULL,
|
||||
`ip` varchar(45) NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `user` (`user`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
");
|
||||
|
||||
// -> Service messages
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."service_messages` (
|
||||
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`author` smallint(5) unsigned NOT NULL,
|
||||
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`message` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`language` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`style` enum('0','1','2','3','4') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`type` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`order` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `type` (`type`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
");
|
||||
|
||||
// -> Canned Responses
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."std_replies` (
|
||||
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`title` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`message` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`reply_order` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Tickets
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` (
|
||||
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`trackid` varchar(13) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`email` varchar(1000) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`category` smallint(5) unsigned NOT NULL DEFAULT '1',
|
||||
`priority` enum('0','1','2','3') COLLATE utf8_unicode_ci NOT NULL DEFAULT '3',
|
||||
`subject` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`message` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`dt` timestamp NOT NULL DEFAULT '2000-01-01 00:00:00',
|
||||
`lastchange` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`firstreply` timestamp NULL DEFAULT NULL,
|
||||
`closedat` timestamp NULL DEFAULT NULL,
|
||||
`articles` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`ip` varchar(45) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`language` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`status` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`openedby` mediumint(8) DEFAULT '0',
|
||||
`firstreplyby` smallint(5) unsigned DEFAULT NULL,
|
||||
`closedby` mediumint(8) NULL DEFAULT NULL,
|
||||
`replies` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`staffreplies` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`owner` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`assignedby` mediumint(8) NULL DEFAULT NULL,
|
||||
`time_worked` time NOT NULL DEFAULT '00:00:00',
|
||||
`lastreplier` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`replierid` smallint(5) unsigned DEFAULT NULL,
|
||||
`archive` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`locked` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`attachments` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`merged` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`history` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom1` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom2` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom3` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom4` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom5` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom6` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom7` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom8` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom9` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom10` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom11` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom12` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom13` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom14` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom15` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom16` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom17` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom18` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom19` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom20` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom21` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom22` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom23` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom24` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom25` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom26` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom27` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom28` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom29` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom30` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom31` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom32` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom33` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom34` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom35` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom36` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom37` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom38` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom39` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom40` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom41` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom42` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom43` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom44` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom45` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom46` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom47` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom48` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom49` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`custom50` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `trackid` (`trackid`),
|
||||
KEY `archive` (`archive`),
|
||||
KEY `categories` (`category`),
|
||||
KEY `statuses` (`status`),
|
||||
KEY `owner` (`owner`),
|
||||
KEY `openedby` (`openedby`,`firstreplyby`,`closedby`),
|
||||
KEY `dt` (`dt`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Ticket templates
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."ticket_templates` (
|
||||
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`title` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`message` mediumtext COLLATE utf8_unicode_ci NOT NULL,
|
||||
`tpl_order` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
// -> Users
|
||||
hesk_dbQuery("
|
||||
CREATE TABLE `".hesk_dbEscape($hesk_settings['db_pfix'])."users` (
|
||||
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`user` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`pass` char(40) COLLATE utf8_unicode_ci NOT NULL,
|
||||
`isadmin` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`name` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`signature` varchar(1000) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`language` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`categories` varchar(500) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`afterreply` enum('0','1','2') COLLATE utf8_unicode_ci NOT NULL DEFAULT '0',
|
||||
`autostart` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`autoreload` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`notify_customer_new` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`notify_customer_reply` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`show_suggested` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`notify_new_unassigned` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`notify_new_my` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`notify_reply_unassigned` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`notify_reply_my` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`notify_assigned` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`notify_pm` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`notify_note` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`default_list` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
|
||||
`autoassign` enum('0','1') COLLATE utf8_unicode_ci NOT NULL DEFAULT '1',
|
||||
`heskprivileges` varchar(1000) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`ratingneg` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`ratingpos` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
`rating` float NOT NULL DEFAULT '0',
|
||||
`replies` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `autoassign` (`autoassign`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
");
|
||||
|
||||
hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."users` (`id`, `user`, `pass`, `isadmin`, `name`, `email`, `heskprivileges`) VALUES (1, '".hesk_dbEscape($_SESSION['admin_user'])."', '".hesk_dbEscape($_SESSION['admin_hash'])."', '1', 'Your name', 'you@example.com', '')");
|
||||
|
||||
return true;
|
||||
|
||||
} // End hesk_iTables()
|
||||
|
||||
|
||||
function hesk_iSaveSettings()
|
||||
{
|
||||
global $hesk_settings, $hesklang;
|
||||
|
||||
$spam_question = hesk_generate_SPAM_question();
|
||||
|
||||
$hesk_settings['secimg_use'] = empty($_SESSION['set_captcha']) ? 0 : 1;
|
||||
$hesk_settings['use_spamq'] = empty($_SESSION['use_spamq']) ? 0 : 1;
|
||||
$hesk_settings['question_ask'] = $spam_question[0];
|
||||
$hesk_settings['question_ans'] = $spam_question[1];
|
||||
$hesk_settings['set_attachments'] = empty($_SESSION['set_attachments']) ? 0 : 1;
|
||||
$hesk_settings['hesk_version'] = HESK_NEW_VERSION;
|
||||
|
||||
if (isset($_SERVER['HTTP_HOST']))
|
||||
{
|
||||
$protocol = HESK_SSL? 'https://' : 'http://';
|
||||
$hesk_settings['site_url']=$protocol . $_SERVER['HTTP_HOST'];
|
||||
|
||||
if (isset($_SERVER['REQUEST_URI']))
|
||||
{
|
||||
$hesk_settings['hesk_url']=$protocol . $_SERVER['HTTP_HOST'] . str_replace('/install/install.php','',$_SERVER['REQUEST_URI']);
|
||||
}
|
||||
}
|
||||
|
||||
/* Encode and escape characters */
|
||||
$set = $hesk_settings;
|
||||
foreach ($hesk_settings as $k=> $v)
|
||||
{
|
||||
if (is_array($v) || is_object($v))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
$set[$k] = addslashes($v);
|
||||
}
|
||||
$set['debug_mode'] = 0;
|
||||
|
||||
$set['email_providers'] = count($set['email_providers']) ? "'" . implode("','", $set['email_providers']) . "'" : '';
|
||||
$set['notify_spam_tags'] = count($set['notify_spam_tags']) ? "'" . implode("','", $set['notify_spam_tags']) . "'" : '';
|
||||
|
||||
// Check if PHP version is 5.2.3+
|
||||
$set['db_vrsn'] = (version_compare(PHP_VERSION, '5.2.3') >= 0) ? 1 : 0;
|
||||
|
||||
// If SSL is enabled, let's force it by default
|
||||
$set['force_ssl'] = HESK_SSL ? 1 : 0;
|
||||
|
||||
hesk_iSaveSettingsFile($set);
|
||||
|
||||
return true;
|
||||
} // End hesk_iSaveSettings()
|
||||
?>
|
||||
Reference in New Issue
Block a user