|
@@ -1,2248 +0,0 @@
|
|
|
-<?php
|
|
|
-
|
|
|
-namespace ForkBB\Core;
|
|
|
-
|
|
|
-use ForkBB\Core\Container;
|
|
|
-use RuntimeException;
|
|
|
-
|
|
|
-class Install
|
|
|
-{
|
|
|
- /**
|
|
|
- * @var Request
|
|
|
- */
|
|
|
- protected $request;
|
|
|
-
|
|
|
- /**
|
|
|
- * Контейнер
|
|
|
- * @var Container
|
|
|
- */
|
|
|
- protected $c;
|
|
|
-
|
|
|
- /**
|
|
|
- * Конструктор
|
|
|
- * @param Request $request
|
|
|
- */
|
|
|
- public function __construct($request, Container $container)
|
|
|
- {
|
|
|
- $this->request = $request;
|
|
|
- $this->c = $container;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * @throws \RuntimeException
|
|
|
- * @return string
|
|
|
- */
|
|
|
- protected function generate_config_file($base_url, $db_type, $db_host, $db_name, $db_username, $db_password, $db_prefix, $cookie_prefix)
|
|
|
- {
|
|
|
- $config = file_get_contents($this->c->DIR_CONFIG . '/main.dist.php');
|
|
|
- if (false === $config) {
|
|
|
- throw new RuntimeException('No access to main.dist.php.');
|
|
|
- }
|
|
|
- $config = str_replace('_BASE_URL_', addslashes($base_url), $config);
|
|
|
- $config = str_replace('_DB_TYPE_', addslashes($db_type), $config);
|
|
|
- $config = str_replace('_DB_HOST_', addslashes($db_host), $config);
|
|
|
- $config = str_replace('_DB_USERNAME_', addslashes($db_username), $config);
|
|
|
- $config = str_replace('_DB_PASSWORD_', addslashes($db_password), $config);
|
|
|
- $config = str_replace('_DB_NAME_', addslashes($db_name), $config);
|
|
|
- $config = str_replace('_DB_PREFIX_', addslashes($db_prefix), $config);
|
|
|
- $config = str_replace('_COOKIE_PREFIX_', addslashes($cookie_prefix), $config);
|
|
|
- $config = str_replace('_SALT_FOR_HMAC_', addslashes($this->c->Secury->randomPass(21)), $config);
|
|
|
-
|
|
|
- return $config;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * @throws \RuntimeException
|
|
|
- */
|
|
|
- public function install()
|
|
|
- {
|
|
|
-
|
|
|
- /**
|
|
|
- * Copyright (C) 2008-2012 FluxBB
|
|
|
- * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB
|
|
|
- * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
|
|
|
- */
|
|
|
-
|
|
|
- // Send the Content-type header in case the web server is setup to send something else
|
|
|
- header('Content-type: text/html; charset=utf-8');
|
|
|
-
|
|
|
- // Turn off PHP time limit
|
|
|
- @set_time_limit(0);
|
|
|
-
|
|
|
- // If we've been passed a default language, use it
|
|
|
- $install_lang = $this->request->requestStr('install_lang', 'English');
|
|
|
-
|
|
|
- // Make sure we got a valid language string
|
|
|
- $install_lang = preg_replace('%[\.\\/]%', '', $install_lang);
|
|
|
-
|
|
|
- // If such a language pack doesn't exist, or isn't up-to-date enough to translate this page, default to English
|
|
|
- if (! file_exists(PUN_ROOT . 'lang/' . $install_lang . '/install.php'))
|
|
|
- $install_lang = 'English';
|
|
|
-
|
|
|
- require PUN_ROOT . 'lang/' . $install_lang . '/install.php';
|
|
|
-
|
|
|
- // Make sure we are running at least MIN_PHP_VERSION
|
|
|
- if (! function_exists('version_compare') || version_compare(PHP_VERSION, MIN_PHP_VERSION, '<')) {
|
|
|
- throw new RuntimeException(sprintf($lang_install['You are running error'], 'PHP', PHP_VERSION, FORK_VERSION, MIN_PHP_VERSION));
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if ($this->request->isPost('generate_config'))
|
|
|
- {
|
|
|
- header('Content-Type: text/x-delimtext; name="main.php"');
|
|
|
- header('Content-disposition: attachment; filename=main.php');
|
|
|
-
|
|
|
- $base_url = $this->request->postStr('base_url', '');
|
|
|
- $db_type = $this->request->postStr('db_type', '');
|
|
|
- $db_host = $this->request->postStr('db_host', '');
|
|
|
- $db_name = $this->request->postStr('db_name', '');
|
|
|
- $db_username = $this->request->postStr('db_username', '');
|
|
|
- $db_password = $this->request->postStr('db_password', '');
|
|
|
- $db_prefix = $this->request->postStr('db_prefix', '');
|
|
|
- $cookie_prefix = $this->request->postStr('cookie_prefix', '');
|
|
|
-
|
|
|
- echo $this->generate_config_file($base_url, $db_type, $db_host, $db_name, $db_username, $db_password, $db_prefix, $cookie_prefix);
|
|
|
- exit; //????
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if (! $this->request->isPost('form_sent'))
|
|
|
- {
|
|
|
- // Make an educated guess regarding base_url
|
|
|
- $base_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://'; // protocol
|
|
|
- $base_url .= preg_replace('%:(80|443)$%', '', $_SERVER['HTTP_HOST']); // host[:port]
|
|
|
- $base_url .= str_replace('\\', '/', dirname($_SERVER['SCRIPT_NAME'])); // path
|
|
|
-
|
|
|
- if (substr($base_url, -1) == '/')
|
|
|
- $base_url = substr($base_url, 0, -1);
|
|
|
-
|
|
|
- $db_type = $db_name = $db_username = $db_prefix = $username = $email = '';
|
|
|
- $db_host = 'localhost';
|
|
|
- $title = $lang_install['My ForkBB Forum'];
|
|
|
- $description = '<p><span>'.$lang_install['Description'].'</span></p>';
|
|
|
- $default_lang = $install_lang;
|
|
|
- $default_style = 'Air';
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- $db_type = trim($this->request->postStr('req_db_type'));
|
|
|
- $db_host = trim($this->request->postStr('req_db_host'));
|
|
|
- $db_name = trim($this->request->postStr('req_db_name'));
|
|
|
- $db_username = trim($this->request->postStr('db_username'));
|
|
|
- $db_password = trim($this->request->postStr('db_password'));
|
|
|
- $db_prefix = trim($this->request->postStr('db_prefix'));
|
|
|
- $username = trim($this->request->postStr('req_username'));
|
|
|
- $email = strtolower(trim($this->request->postStr('req_email')));
|
|
|
- $password1 = trim($this->request->postStr('req_password1'));
|
|
|
- $password2 = trim($this->request->postStr('req_password2'));
|
|
|
- $title = trim($this->request->postStr('req_title'));
|
|
|
- $description = trim($this->request->postStr('desc'));
|
|
|
- $base_url = trim($this->request->postStr('req_base_url'));
|
|
|
- $default_lang = trim($this->request->postStr('req_default_lang'));
|
|
|
- $default_style = trim($this->request->postStr('req_default_style'));
|
|
|
- $alerts = array();
|
|
|
-
|
|
|
- // Make sure base_url doesn't end with a slash
|
|
|
- if (substr($base_url, -1) == '/')
|
|
|
- $base_url = substr($base_url, 0, -1);
|
|
|
-
|
|
|
- // Validate username and passwords
|
|
|
- if (mb_strlen($username) < 2)
|
|
|
- $alerts[] = $lang_install['Username 1'];
|
|
|
- else if (mb_strlen($username) > 25) // This usually doesn't happen since the form element only accepts 25 characters
|
|
|
- $alerts[] = $lang_install['Username 2'];
|
|
|
- else if (! strcasecmp($username, 'Guest'))
|
|
|
- $alerts[] = $lang_install['Username 3'];
|
|
|
- else if (preg_match('%[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}%', $username) || preg_match('%((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))%', $username))
|
|
|
- $alerts[] = $lang_install['Username 4'];
|
|
|
- else if ((strpos($username, '[') !== false || strpos($username, ']') !== false) && strpos($username, '\'') !== false && strpos($username, '"') !== false)
|
|
|
- $alerts[] = $lang_install['Username 5'];
|
|
|
- else if (preg_match('%(?:\[/?(?:b|u|i|h|colou?r|quote|code|img|url|email|list)\]|\[(?:code|quote|list)=)%i', $username))
|
|
|
- $alerts[] = $lang_install['Username 6'];
|
|
|
-
|
|
|
- if (mb_strlen($password1) < 6)
|
|
|
- $alerts[] = $lang_install['Short password'];
|
|
|
- else if ($password1 != $password2)
|
|
|
- $alerts[] = $lang_install['Passwords not match'];
|
|
|
-
|
|
|
- // Validate email
|
|
|
- require PUN_ROOT.'include/email.php';
|
|
|
-
|
|
|
- if (! is_valid_email($email))
|
|
|
- $alerts[] = $lang_install['Wrong email'];
|
|
|
-
|
|
|
- if ($title == '')
|
|
|
- $alerts[] = $lang_install['No board title'];
|
|
|
-
|
|
|
- $languages = forum_list_langs();
|
|
|
- if (! in_array($default_lang, $languages))
|
|
|
- $alerts[] = $lang_install['Error default language'];
|
|
|
-
|
|
|
- $styles = forum_list_styles();
|
|
|
- if (! in_array($default_style, $styles))
|
|
|
- $alerts[] = $lang_install['Error default style'];
|
|
|
- }
|
|
|
-
|
|
|
- // Check if the cache directory is writable
|
|
|
- if (! forum_is_writable($this->c->DIR_CACHE))
|
|
|
- $alerts[] = sprintf($lang_install['Alert cache'], $this->c->DIR_CACHE);
|
|
|
-
|
|
|
- // Check if default avatar directory is writable
|
|
|
- if (! forum_is_writable(PUN_ROOT . 'img/avatars/'))
|
|
|
- $alerts[] = sprintf($lang_install['Alert avatar'], PUN_ROOT . 'img/avatars/');
|
|
|
-
|
|
|
- if (! $this->request->isPost('form_sent') || ! empty($alerts))
|
|
|
- {
|
|
|
- // Determine available database extensions
|
|
|
- $db_extensions = array();
|
|
|
- $mysql_innodb = false;
|
|
|
- if (function_exists('mysqli_connect'))
|
|
|
- {
|
|
|
- $db_extensions[] = array('mysqli', 'MySQL Improved');
|
|
|
- $db_extensions[] = array('mysqli_innodb', 'MySQL Improved (InnoDB)');
|
|
|
- $mysql_innodb = true;
|
|
|
- }
|
|
|
- if (function_exists('mysql_connect'))
|
|
|
- {
|
|
|
- $db_extensions[] = array('mysql', 'MySQL Standard');
|
|
|
- $db_extensions[] = array('mysql_innodb', 'MySQL Standard (InnoDB)');
|
|
|
- $mysql_innodb = true;
|
|
|
- }
|
|
|
- if (function_exists('sqlite_open'))
|
|
|
- $db_extensions[] = array('sqlite', 'SQLite');
|
|
|
- if (function_exists('pg_connect'))
|
|
|
- $db_extensions[] = array('pgsql', 'PostgreSQL');
|
|
|
-
|
|
|
- if (empty($db_extensions))
|
|
|
- error($lang_install['No DB extensions']);
|
|
|
-
|
|
|
- // Fetch a list of installed languages
|
|
|
- $languages = forum_list_langs();
|
|
|
-
|
|
|
-?>
|
|
|
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
|
|
|
-<head>
|
|
|
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
-<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
-<title><?php echo $lang_install['ForkBB Installation'] ?></title>
|
|
|
-<link rel="stylesheet" type="text/css" href="style/<?php echo $default_style ?>.css" />
|
|
|
-<script type="text/javascript">
|
|
|
-/* <![CDATA[ */
|
|
|
-function process_form(the_form)
|
|
|
-{
|
|
|
- var required_fields = {
|
|
|
- "req_db_type": "<?php echo $lang_install['Database type'] ?>",
|
|
|
- "req_db_host": "<?php echo $lang_install['Database server hostname'] ?>",
|
|
|
- "req_db_name": "<?php echo $lang_install['Database name'] ?>",
|
|
|
- "req_username": "<?php echo $lang_install['Administrator username'] ?>",
|
|
|
- "req_password1": "<?php echo $lang_install['Password'] ?>",
|
|
|
- "req_password2": "<?php echo $lang_install['Confirm password'] ?>",
|
|
|
- "req_email": "<?php echo $lang_install['Administrator email'] ?>",
|
|
|
- "req_title": "<?php echo $lang_install['Board title'] ?>",
|
|
|
- "req_base_url": "<?php echo $lang_install['Base URL'] ?>"
|
|
|
- };
|
|
|
- if (document.all || document.getElementById)
|
|
|
- {
|
|
|
- for (var i = 0; i < the_form.length; ++i)
|
|
|
- {
|
|
|
- var elem = the_form.elements[i];
|
|
|
- if (elem.name && required_fields[elem.name] && !elem.value && elem.type && (/^(?:text(?:area)?|password|file)$/i.test(elem.type)))
|
|
|
- {
|
|
|
- alert('"' + required_fields[elem.name] + '" <?php echo $lang_install['Required field'] ?>');
|
|
|
- elem.focus();
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return true;
|
|
|
-}
|
|
|
-/* ]]> */
|
|
|
-</script>
|
|
|
-</head>
|
|
|
-<body onload="document.getElementById('install').req_db_type.focus();document.getElementById('install').start.disabled=false;" onunload="">
|
|
|
-
|
|
|
-<div id="puninstall" class="pun">
|
|
|
-<div class="top-box"><div><!-- Top Corners --></div></div>
|
|
|
-<div class="punwrap">
|
|
|
-
|
|
|
-<div id="brdheader" class="block">
|
|
|
- <div class="box">
|
|
|
- <div id="brdtitle" class="inbox">
|
|
|
- <h1><span><?php echo $lang_install['ForkBB Installation'] ?></span></h1>
|
|
|
- <div id="brddesc"><p><?php echo $lang_install['Welcome'] ?></p></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</div>
|
|
|
-
|
|
|
-<div id="brdmain">
|
|
|
-<?php if (count($languages) > 1): ?><div class="blockform">
|
|
|
- <h2><span><?php echo $lang_install['Choose install language'] ?></span></h2>
|
|
|
- <div class="box">
|
|
|
- <form id="install" method="post" action="">
|
|
|
- <div class="inform">
|
|
|
- <fieldset>
|
|
|
- <legend><?php echo $lang_install['Install language'] ?></legend>
|
|
|
- <div class="infldset">
|
|
|
- <p><?php echo $lang_install['Choose install language info'] ?></p>
|
|
|
- <label><strong><?php echo $lang_install['Install language'] ?></strong>
|
|
|
- <br /><select name="install_lang">
|
|
|
-<?php
|
|
|
-
|
|
|
-foreach ($languages as $temp)
|
|
|
-{
|
|
|
- if ($temp == $install_lang)
|
|
|
- echo "\t\t\t\t\t".'<option value="'.$temp.'" selected="selected">'.$temp.'</option>'."\n";
|
|
|
- else
|
|
|
- echo "\t\t\t\t\t".'<option value="'.$temp.'">'.$temp.'</option>'."\n";
|
|
|
-}
|
|
|
-
|
|
|
-?>
|
|
|
- </select>
|
|
|
- <br /></label>
|
|
|
- </div>
|
|
|
- </fieldset>
|
|
|
- </div>
|
|
|
- <p class="buttons"><input type="submit" name="start" value="<?php echo $lang_install['Change language'] ?>" /></p>
|
|
|
- </form>
|
|
|
- </div>
|
|
|
-</div>
|
|
|
-<?php endif; ?>
|
|
|
-
|
|
|
-<div class="blockform">
|
|
|
- <h2><span><?php echo sprintf($lang_install['Install'], FORK_VERSION . '.' . FORK_REVISION) ?></span></h2>
|
|
|
- <div class="box">
|
|
|
- <form id="install" method="post" action="" onsubmit="this.start.disabled=true;if(process_form(this)){return true;}else{this.start.disabled=false;return false;}">
|
|
|
- <div><input type="hidden" name="form_sent" value="1" /><input type="hidden" name="install_lang" value="<?php echo pun_htmlspecialchars($install_lang) ?>" /></div>
|
|
|
- <div class="inform">
|
|
|
-<?php if (! empty($alerts)): ?> <div class="forminfo error-info">
|
|
|
- <h3><?php echo $lang_install['Errors'] ?></h3>
|
|
|
- <ul class="error-list">
|
|
|
-<?php
|
|
|
-
|
|
|
-foreach ($alerts as $cur_alert)
|
|
|
- echo "\t\t\t\t\t\t".'<li><strong>'.$cur_alert.'</strong></li>'."\n";
|
|
|
-?>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
-<?php endif; ?> </div>
|
|
|
- <div class="inform">
|
|
|
- <div class="forminfo">
|
|
|
- <h3><?php echo $lang_install['Database setup'] ?></h3>
|
|
|
- <p><?php echo $lang_install['Info 1'] ?></p>
|
|
|
- </div>
|
|
|
- <fieldset>
|
|
|
- <legend><?php echo $lang_install['Select database'] ?></legend>
|
|
|
- <div class="infldset">
|
|
|
- <p><?php echo $lang_install['Info 2'] ?></p>
|
|
|
- <label class="required"><strong><?php echo $lang_install['Database type'] ?> <span><?php echo $lang_install['Required'] ?></span></strong>
|
|
|
- <br /><select name="req_db_type">
|
|
|
-<?php
|
|
|
-
|
|
|
-foreach ($db_extensions as $temp)
|
|
|
-{
|
|
|
- if ($temp[0] == $db_type)
|
|
|
- echo "\t\t\t\t\t\t\t".'<option value="'.$temp[0].'" selected="selected">'.$temp[1].'</option>'."\n";
|
|
|
- else
|
|
|
- echo "\t\t\t\t\t\t\t".'<option value="'.$temp[0].'">'.$temp[1].'</option>'."\n";
|
|
|
-}
|
|
|
-
|
|
|
-?>
|
|
|
- </select>
|
|
|
- <br /></label>
|
|
|
- </div>
|
|
|
- </fieldset>
|
|
|
- </div>
|
|
|
- <div class="inform">
|
|
|
- <fieldset>
|
|
|
- <legend><?php echo $lang_install['Database hostname'] ?></legend>
|
|
|
- <div class="infldset">
|
|
|
- <p><?php echo $lang_install['Info 3'] ?></p>
|
|
|
- <label class="required"><strong><?php echo $lang_install['Database server hostname'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><input type="text" name="req_db_host" value="<?php echo pun_htmlspecialchars($db_host) ?>" size="50" /><br /></label>
|
|
|
- </div>
|
|
|
- </fieldset>
|
|
|
- </div>
|
|
|
- <div class="inform">
|
|
|
- <fieldset>
|
|
|
- <legend><?php echo $lang_install['Database enter name'] ?></legend>
|
|
|
- <div class="infldset">
|
|
|
- <p><?php echo $lang_install['Info 4'] ?></p>
|
|
|
- <label class="required"><strong><?php echo $lang_install['Database name'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><input id="req_db_name" type="text" name="req_db_name" value="<?php echo pun_htmlspecialchars($db_name) ?>" size="30" /><br /></label>
|
|
|
- </div>
|
|
|
- </fieldset>
|
|
|
- </div>
|
|
|
- <div class="inform">
|
|
|
- <fieldset>
|
|
|
- <legend><?php echo $lang_install['Database enter informations'] ?></legend>
|
|
|
- <div class="infldset">
|
|
|
- <p><?php echo $lang_install['Info 5'] ?></p>
|
|
|
- <label class="conl"><?php echo $lang_install['Database username'] ?><br /><input type="text" name="db_username" value="<?php echo pun_htmlspecialchars($db_username) ?>" size="30" /><br /></label>
|
|
|
- <label class="conl"><?php echo $lang_install['Database password'] ?><br /><input type="password" name="db_password" size="30" /><br /></label>
|
|
|
- <div class="clearer"></div>
|
|
|
- </div>
|
|
|
- </fieldset>
|
|
|
- </div>
|
|
|
- <div class="inform">
|
|
|
- <fieldset>
|
|
|
- <legend><?php echo $lang_install['Database enter prefix'] ?></legend>
|
|
|
- <div class="infldset">
|
|
|
- <p><?php echo $lang_install['Info 6'] ?></p>
|
|
|
- <label><?php echo $lang_install['Table prefix'] ?><br /><input id="db_prefix" type="text" name="db_prefix" value="<?php echo pun_htmlspecialchars($db_prefix) ?>" size="20" maxlength="30" /><br /></label>
|
|
|
- </div>
|
|
|
- </fieldset>
|
|
|
- </div>
|
|
|
- <div class="inform">
|
|
|
- <div class="forminfo">
|
|
|
- <h3><?php echo $lang_install['Administration setup'] ?></h3>
|
|
|
- <p><?php echo $lang_install['Info 7'] ?></p>
|
|
|
- </div>
|
|
|
- <fieldset>
|
|
|
- <legend><?php echo $lang_install['Administration setup'] ?></legend>
|
|
|
- <div class="infldset">
|
|
|
- <p><?php echo $lang_install['Info 8'] ?></p>
|
|
|
- <label class="required"><strong><?php echo $lang_install['Administrator username'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><input type="text" name="req_username" value="<?php echo pun_htmlspecialchars($username) ?>" size="25" maxlength="25" /><br /></label>
|
|
|
- <label class="conl required"><strong><?php echo $lang_install['Password'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><input id="req_password1" type="password" name="req_password1" size="16" /><br /></label>
|
|
|
- <label class="conl required"><strong><?php echo $lang_install['Confirm password'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><input type="password" name="req_password2" size="16" /><br /></label>
|
|
|
- <div class="clearer"></div>
|
|
|
- <label class="required"><strong><?php echo $lang_install['Administrator email'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><input id="req_email" type="text" name="req_email" value="<?php echo pun_htmlspecialchars($email) ?>" size="50" maxlength="80" /><br /></label>
|
|
|
- </div>
|
|
|
- </fieldset>
|
|
|
- </div>
|
|
|
- <div class="inform">
|
|
|
- <div class="forminfo">
|
|
|
- <h3><?php echo $lang_install['Board setup'] ?></h3>
|
|
|
- <p><?php echo $lang_install['Info 11'] ?></p>
|
|
|
- </div>
|
|
|
- <fieldset>
|
|
|
- <legend><?php echo $lang_install['General information'] ?></legend>
|
|
|
- <div class="infldset">
|
|
|
- <label class="required"><strong><?php echo $lang_install['Board title'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><input id="req_title" type="text" name="req_title" value="<?php echo pun_htmlspecialchars($title) ?>" size="50" maxlength="255" /><br /></label>
|
|
|
- <label><?php echo $lang_install['Board description'] ?><br /><input id="desc" type="text" name="desc" value="<?php echo pun_htmlspecialchars($description) ?>" size="50" maxlength="255" /><br /></label>
|
|
|
- <label class="required"><strong><?php echo $lang_install['Base URL'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><input id="req_base_url" type="text" name="req_base_url" value="<?php echo pun_htmlspecialchars($base_url) ?>" size="50" maxlength="100" /><br /></label>
|
|
|
- </div>
|
|
|
- </fieldset>
|
|
|
- </div>
|
|
|
- <div class="inform">
|
|
|
- <fieldset>
|
|
|
- <legend><?php echo $lang_install['Appearance'] ?></legend>
|
|
|
- <div class="infldset">
|
|
|
- <p><?php echo $lang_install['Info 15'] ?></p>
|
|
|
- <label class="required"><strong><?php echo $lang_install['Default language'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><select id="req_default_lang" name="req_default_lang">
|
|
|
-<?php
|
|
|
-
|
|
|
-$languages = forum_list_langs();
|
|
|
-foreach ($languages as $temp)
|
|
|
-{
|
|
|
- if ($temp == $default_lang)
|
|
|
- echo "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$temp.'" selected="selected">'.$temp.'</option>'."\n";
|
|
|
- else
|
|
|
- echo "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$temp.'">'.$temp.'</option>'."\n";
|
|
|
-}
|
|
|
-
|
|
|
-?>
|
|
|
- </select><br /></label>
|
|
|
- <label class="required"><strong><?php echo $lang_install['Default style'] ?> <span><?php echo $lang_install['Required'] ?></span></strong><br /><select id="req_default_style" name="req_default_style">
|
|
|
-<?php
|
|
|
-
|
|
|
-$styles = forum_list_styles();
|
|
|
-foreach ($styles as $temp)
|
|
|
-{
|
|
|
- if ($temp == $default_style)
|
|
|
- echo "\t\t\t\t\t\t\t\t\t".'<option value="'.$temp.'" selected="selected">'.str_replace('_', ' ', $temp).'</option>'."\n";
|
|
|
- else
|
|
|
- echo "\t\t\t\t\t\t\t\t\t".'<option value="'.$temp.'">'.str_replace('_', ' ', $temp).'</option>'."\n";
|
|
|
-}
|
|
|
-
|
|
|
-?>
|
|
|
- </select><br /></label>
|
|
|
- </div>
|
|
|
- </fieldset>
|
|
|
- </div>
|
|
|
- <p class="buttons"><input type="submit" name="start" value="<?php echo $lang_install['Start install'] ?>" /></p>
|
|
|
- </form>
|
|
|
- </div>
|
|
|
-</div>
|
|
|
-</div>
|
|
|
-
|
|
|
-</div>
|
|
|
-<div class="end-box"><div><!-- Bottom Corners --></div></div>
|
|
|
-</div>
|
|
|
-
|
|
|
-</body>
|
|
|
-</html>
|
|
|
-<?php
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- // Validate prefix
|
|
|
- if (strlen($db_prefix) > 0 && (! preg_match('%^[a-z][a-z0-9_]*$%i', $db_prefix) || strlen($db_prefix) > 40))
|
|
|
- error(sprintf($lang_install['Table prefix error'], $db->prefix));
|
|
|
-
|
|
|
- $this->c->DB_TYPE = $db_type;
|
|
|
- $this->c->DB_HOST = $db_host;
|
|
|
- $this->c->DB_USERNAME = $db_username;
|
|
|
- $this->c->DB_PASSWORD = $db_password;
|
|
|
- $this->c->DB_NAME = $db_name;
|
|
|
- $this->c->DB_PREFIX = $db_prefix;
|
|
|
-
|
|
|
- $db = $this->c->DB;
|
|
|
-
|
|
|
- // Do some DB type specific checks
|
|
|
- switch ($db_type)
|
|
|
- {
|
|
|
- case 'mysql':
|
|
|
- case 'mysqli':
|
|
|
- case 'mysql_innodb':
|
|
|
- case 'mysqli_innodb':
|
|
|
- $mysql_info = $db->get_version();
|
|
|
- if (version_compare($mysql_info['version'], MIN_MYSQL_VERSION, '<'))
|
|
|
- error(sprintf($lang_install['You are running error'], 'MySQL', $mysql_info['version'], FORK_VERSION, MIN_MYSQL_VERSION));
|
|
|
- break;
|
|
|
-
|
|
|
- case 'pgsql':
|
|
|
- $pgsql_info = $db->get_version();
|
|
|
- if (version_compare($pgsql_info['version'], MIN_PGSQL_VERSION, '<'))
|
|
|
- error(sprintf($lang_install['You are running error'], 'PostgreSQL', $pgsql_info['version'], FORK_VERSION, MIN_PGSQL_VERSION));
|
|
|
- break;
|
|
|
-
|
|
|
- case 'sqlite':
|
|
|
- if (strtolower($db_prefix) == 'sqlite_')
|
|
|
- error($lang_install['Prefix reserved']);
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- // Make sure ForkBB isn't already installed
|
|
|
- $result = $db->query('SELECT 1 FROM '.$db_prefix.'users WHERE id=1');
|
|
|
- if ($db->num_rows($result))
|
|
|
- error(sprintf($lang_install['Existing table error'], $db_prefix, $db_name));
|
|
|
-
|
|
|
- // Check if InnoDB is available
|
|
|
- if ($db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb')
|
|
|
- {
|
|
|
- $result = $db->query('SELECT SUPPORT FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE=\'InnoDB\'');
|
|
|
- $result = $db->result($result);
|
|
|
- if (! in_array($result, array('YES', 'DEFAULT')))
|
|
|
- error($lang_install['InnoDB off']);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- // Start a transaction
|
|
|
- $db->start_transaction();
|
|
|
-
|
|
|
-
|
|
|
- // Create all tables
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'username' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'ip' => array(
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'email' => array(
|
|
|
- 'datatype' => 'VARCHAR(80)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'message' => array(
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'expire' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'ban_creator' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id'),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'username_idx' => array('username')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- if ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb')
|
|
|
- $schema['INDEXES']['username_idx'] = array('username(25)');
|
|
|
-
|
|
|
- $db->create_table('bans', $schema) or error('Unable to create bans table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'cat_name' => array(
|
|
|
- 'datatype' => 'VARCHAR(80)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'New Category\''
|
|
|
- ),
|
|
|
- 'disp_position' => array(
|
|
|
- 'datatype' => 'INT(10)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('categories', $schema) or error('Unable to create categories table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'search_for' => array(
|
|
|
- 'datatype' => 'VARCHAR(60)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'replace_with' => array(
|
|
|
- 'datatype' => 'VARCHAR(60)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('censoring', $schema) or error('Unable to create censoring table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'conf_name' => array(
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'conf_value' => array(
|
|
|
- 'datatype' => 'TEXT',
|
|
|
- 'allow_null' => true
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('conf_name')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('config', $schema) or error('Unable to create config table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'group_id' => array(
|
|
|
- 'datatype' => 'INT(10)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'forum_id' => array(
|
|
|
- 'datatype' => 'INT(10)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'read_forum' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'post_replies' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'post_topics' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('group_id', 'forum_id')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('forum_perms', $schema) or error('Unable to create forum_perms table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'forum_name' => array(
|
|
|
- 'datatype' => 'VARCHAR(80)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'New forum\''
|
|
|
- ),
|
|
|
- 'forum_desc' => array(
|
|
|
- 'datatype' => 'TEXT',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'redirect_url' => array(
|
|
|
- 'datatype' => 'VARCHAR(100)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'moderators' => array(
|
|
|
- 'datatype' => 'TEXT',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'num_topics' => array(
|
|
|
- 'datatype' => 'MEDIUMINT(8) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'num_posts' => array(
|
|
|
- 'datatype' => 'MEDIUMINT(8) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'last_post' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'last_post_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'last_poster' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'last_topic' => array( // last topic on index - Visman
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'sort_by' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'disp_position' => array(
|
|
|
- 'datatype' => 'INT(10)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'cat_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'no_sum_mess' => array( // no sum - Visman
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'parent_forum_id' => array( // subforums - Visman
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('forums', $schema) or error('Unable to create forums table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'g_id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'g_title' => array(
|
|
|
- 'datatype' => 'VARCHAR(50)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'g_user_title' => array(
|
|
|
- 'datatype' => 'VARCHAR(50)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'g_promote_min_posts' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'g_promote_next_group' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'g_moderator' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'g_mod_edit_users' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'g_mod_rename_users' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'g_mod_change_passwords' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'g_mod_ban_users' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'g_mod_promote_users' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'g_read_board' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_view_users' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_post_replies' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_post_topics' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_edit_posts' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_delete_posts' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_delete_topics' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_post_links' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_set_title' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_search' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_search_users' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_send_email' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_post_flood' => array(
|
|
|
- 'datatype' => 'SMALLINT(6)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '30'
|
|
|
- ),
|
|
|
- 'g_search_flood' => array(
|
|
|
- 'datatype' => 'SMALLINT(6)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '30'
|
|
|
- ),
|
|
|
- 'g_email_flood' => array(
|
|
|
- 'datatype' => 'SMALLINT(6)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '60'
|
|
|
- ),
|
|
|
- 'g_report_flood' => array(
|
|
|
- 'datatype' => 'SMALLINT(6)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '60'
|
|
|
- ),
|
|
|
- 'g_deledit_interval' => array( // мод ограничения времени - Visman
|
|
|
- 'datatype' => 'INT(10)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'g_pm' => array( // New PMS - Visman
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'g_pm_limit' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '100'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('g_id')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('groups', $schema) or error('Unable to create groups table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'user_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'ident' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'logged' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'idle' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'last_post' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'last_search' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'witt_data' => array( //????
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'o_position' => [
|
|
|
- 'datatype' => 'VARCHAR(100)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ],
|
|
|
- 'o_name' => [
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ],
|
|
|
- ),
|
|
|
- 'UNIQUE KEYS' => array(
|
|
|
- 'user_id_ident_idx' => array('user_id', 'ident')
|
|
|
- ),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'ident_idx' => array('ident'),
|
|
|
- 'logged_idx' => array('logged'),
|
|
|
- 'o_position_idx' => array('o_position'),
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- if ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb')
|
|
|
- {
|
|
|
- $schema['UNIQUE KEYS']['user_id_ident_idx'] = array('user_id', 'ident(25)');
|
|
|
- $schema['INDEXES']['ident_idx'] = array('ident(25)');
|
|
|
- }
|
|
|
-
|
|
|
- if ($db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb')
|
|
|
- $schema['ENGINE'] = 'InnoDB';
|
|
|
-
|
|
|
- $db->create_table('online', $schema) or error('Unable to create online table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'poster' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'poster_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'poster_ip' => array(
|
|
|
- 'datatype' => 'VARCHAR(39)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'poster_email' => array(
|
|
|
- 'datatype' => 'VARCHAR(80)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'message' => array(
|
|
|
- 'datatype' => 'MEDIUMTEXT',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'hide_smilies' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'edit_post' => array( // мод ограничения времени - Visman
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'posted' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'edited' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'edited_by' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'user_agent' => array( // MOD user agent - Visman
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'topic_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id'),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'topic_id_idx' => array('topic_id'),
|
|
|
- 'multi_idx' => array('poster_id', 'topic_id')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('posts', $schema) or error('Unable to create posts table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'post_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'topic_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'forum_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'reported_by' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'created' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'message' => array(
|
|
|
- 'datatype' => 'TEXT',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'zapped' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'zapped_by' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id'),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'zapped_idx' => array('zapped')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('reports', $schema) or error('Unable to create reports table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'ident' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'search_data' => array(
|
|
|
- 'datatype' => 'MEDIUMTEXT',
|
|
|
- 'allow_null' => true
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id'),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'ident_idx' => array('ident')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- if ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb')
|
|
|
- $schema['INDEXES']['ident_idx'] = array('ident(8)');
|
|
|
-
|
|
|
- $db->create_table('search_cache', $schema) or error('Unable to create search_cache table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'post_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'word_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'subject_match' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'word_id_idx' => array('word_id'),
|
|
|
- 'post_id_idx' => array('post_id')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('search_matches', $schema) or error('Unable to create search_matches table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'word' => array(
|
|
|
- 'datatype' => 'VARCHAR(20)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\'',
|
|
|
- 'collation' => 'bin'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('word'),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'id_idx' => array('id')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- if ($db_type == 'sqlite')
|
|
|
- {
|
|
|
- $schema['PRIMARY KEY'] = array('id');
|
|
|
- $schema['UNIQUE KEYS'] = array('word_idx' => array('word'));
|
|
|
- }
|
|
|
-
|
|
|
- $db->create_table('search_words', $schema) or error('Unable to create search_words table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'user_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'topic_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('user_id', 'topic_id')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('topic_subscriptions', $schema) or error('Unable to create topic subscriptions table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'user_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'forum_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('user_id', 'forum_id')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('forum_subscriptions', $schema) or error('Unable to create forum subscriptions table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'poster' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'subject' => array(
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'posted' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'first_post_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'last_post' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'last_post_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'last_poster' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'num_views' => array(
|
|
|
- 'datatype' => 'MEDIUMINT(8) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'num_replies' => array(
|
|
|
- 'datatype' => 'MEDIUMINT(8) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'closed' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'sticky' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'stick_fp' => array( // StickFP - Visman
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'moved_to' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'forum_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'poll_type' => array( // POLL - Visman
|
|
|
- 'datatype' => 'TINYINT(4)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'poll_time' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'poll_term' => array(
|
|
|
- 'datatype' => 'TINYINT(4)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'poll_kol' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id'),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'forum_id_idx' => array('forum_id'),
|
|
|
- 'moved_to_idx' => array('moved_to'),
|
|
|
- 'last_post_idx' => array('last_post'),
|
|
|
- 'first_post_id_idx' => array('first_post_id')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('topics', $schema) or error('Unable to create topics table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- // New PMS - Visman
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'bl_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'bl_user_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'bl_id_idx' => array('bl_id'),
|
|
|
- 'bl_user_id_idx' => array('bl_user_id')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('pms_new_block', $schema) or error('Unable to create pms_new_block table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'poster' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'poster_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'poster_ip' => array(
|
|
|
- 'datatype' => 'VARCHAR(39)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'message' => array(
|
|
|
- 'datatype' => 'TEXT',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'hide_smilies' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'posted' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'edited' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'edited_by' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'post_new' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'topic_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id'),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'topic_id_idx' => array('topic_id'),
|
|
|
- 'multi_idx' => array('poster_id', 'topic_id')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('pms_new_posts', $schema) or error('Unable to create pms_new_posts table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'topic' => array(
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'starter' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'starter_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'to_user' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'to_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'replies' => array(
|
|
|
- 'datatype' => 'MEDIUMINT(8) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'last_posted' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'last_poster' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'see_st' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'see_to' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'topic_st' => array(
|
|
|
- 'datatype' => 'TINYINT(4)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'topic_to' => array(
|
|
|
- 'datatype' => 'TINYINT(4)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id'),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'multi_idx_st' => array('starter_id', 'topic_st'),
|
|
|
- 'multi_idx_to' => array('to_id', 'topic_to')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('pms_new_topics', $schema) or error('Unable to create pms_new_topics table', __FILE__, __LINE__, $db->error());
|
|
|
- // New PMS - Visman
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'group_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '3'
|
|
|
- ),
|
|
|
- 'username' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'password' => array(
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'email' => array(
|
|
|
- 'datatype' => 'VARCHAR(80)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'email_confirmed' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'title' => array(
|
|
|
- 'datatype' => 'VARCHAR(50)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'realname' => array(
|
|
|
- 'datatype' => 'VARCHAR(40)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'url' => array(
|
|
|
- 'datatype' => 'VARCHAR(100)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'jabber' => array(
|
|
|
- 'datatype' => 'VARCHAR(80)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'icq' => array(
|
|
|
- 'datatype' => 'VARCHAR(12)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'msn' => array(
|
|
|
- 'datatype' => 'VARCHAR(80)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'aim' => array(
|
|
|
- 'datatype' => 'VARCHAR(30)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'yahoo' => array(
|
|
|
- 'datatype' => 'VARCHAR(30)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'location' => array(
|
|
|
- 'datatype' => 'VARCHAR(30)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'signature' => array(
|
|
|
- 'datatype' => 'TEXT',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'disp_topics' => array(
|
|
|
- 'datatype' => 'TINYINT(3) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'disp_posts' => array(
|
|
|
- 'datatype' => 'TINYINT(3) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'email_setting' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'notify_with_post' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'auto_notify' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'show_smilies' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'show_img' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'show_img_sig' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'show_avatars' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'show_sig' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'timezone' => array(
|
|
|
- 'datatype' => 'FLOAT',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'dst' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'time_format' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'date_format' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'language' => array(
|
|
|
- 'datatype' => 'VARCHAR(25)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\''.$db->escape($default_lang).'\''
|
|
|
- ),
|
|
|
- 'style' => array(
|
|
|
- 'datatype' => 'VARCHAR(25)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\''.$db->escape($default_style).'\''
|
|
|
- ),
|
|
|
- 'num_posts' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'last_post' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'last_search' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'last_email_sent' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'last_report_sent' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'registered' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'registration_ip' => array(
|
|
|
- 'datatype' => 'VARCHAR(39)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'0.0.0.0\''
|
|
|
- ),
|
|
|
- 'last_visit' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'admin_note' => array(
|
|
|
- 'datatype' => 'VARCHAR(30)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'activate_string' => array(
|
|
|
- 'datatype' => 'VARCHAR(80)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'activate_key' => array(
|
|
|
- 'datatype' => 'VARCHAR(8)',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'messages_enable' => array( // New PMS - Visman
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '1'
|
|
|
- ),
|
|
|
- 'messages_email' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'messages_flag' => array(
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'messages_new' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'messages_all' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'pmsn_last_post' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- 'warning_flag' => array( // MOD warnings - Visman
|
|
|
- 'datatype' => 'TINYINT(1)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'warning_all' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'gender' => array( // поле для пола - Visman
|
|
|
- 'datatype' => 'TINYINT(4) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'u_mark_all_read' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true
|
|
|
- ),
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id'),
|
|
|
- 'UNIQUE KEYS' => array(
|
|
|
- 'username_idx' => array('username')
|
|
|
- ),
|
|
|
- 'INDEXES' => array(
|
|
|
- 'registered_idx' => array('registered')
|
|
|
- )
|
|
|
- );
|
|
|
-
|
|
|
- if ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb')
|
|
|
- $schema['UNIQUE KEYS']['username_idx'] = array('username(25)');
|
|
|
-
|
|
|
- $db->create_table('users', $schema) or error('Unable to create users table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- // Create "smilies" table - Visman
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'image' => array(
|
|
|
- 'datatype' => 'VARCHAR(40)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'text' => array(
|
|
|
- 'datatype' => 'VARCHAR(20)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'disp_position' => array(
|
|
|
- 'datatype' => 'TINYINT(4) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('smilies', $schema) or error('Unable to create smilies table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $smilies = array(
|
|
|
- ':)' => 'smile.png',
|
|
|
- '=)' => 'smile.png',
|
|
|
- ':|' => 'neutral.png',
|
|
|
- '=|' => 'neutral.png',
|
|
|
- ':(' => 'sad.png',
|
|
|
- '=(' => 'sad.png',
|
|
|
- ':D' => 'big_smile.png',
|
|
|
- '=D' => 'big_smile.png',
|
|
|
- ':o' => 'yikes.png',
|
|
|
- ':O' => 'yikes.png',
|
|
|
- ';)' => 'wink.png',
|
|
|
- ':/' => 'hmm.png',
|
|
|
- ':P' => 'tongue.png',
|
|
|
- ':p' => 'tongue.png',
|
|
|
- ':lol:' => 'lol.png',
|
|
|
- ':mad:' => 'mad.png',
|
|
|
- ':rolleyes:' => 'roll.png',
|
|
|
- ':cool:' => 'cool.png');
|
|
|
-
|
|
|
- $i = 0;
|
|
|
- foreach ($smilies as $text => $img)
|
|
|
- {
|
|
|
- $db->query('INSERT INTO '.$db->prefix.'smilies (image, text, disp_position) VALUES(\''.$img.'\', \''.$db->escape($text).'\', '.$i.')') or error('Unable to add smiley', __FILE__, __LINE__, $db->error());
|
|
|
- $i++;
|
|
|
- }
|
|
|
- // Create "smilies" table - Visman
|
|
|
-
|
|
|
- // Create warnings table - Visman
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'id' => array(
|
|
|
- 'datatype' => 'SERIAL',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'poster' => array(
|
|
|
- 'datatype' => 'VARCHAR(200)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'poster_id' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'posted' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'message' => array(
|
|
|
- 'datatype' => 'TEXT',
|
|
|
- 'allow_null' => true
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('id')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('warnings', $schema) or error('Unable to create warnings table', __FILE__, __LINE__, $db->error());
|
|
|
- // Create warnings table - Visman
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'tid' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'question' => array(
|
|
|
- 'datatype' => 'TINYINT(4)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'field' => array(
|
|
|
- 'datatype' => 'TINYINT(4)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- ),
|
|
|
- 'choice' => array(
|
|
|
- 'datatype' => 'VARCHAR(255)',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '\'\''
|
|
|
- ),
|
|
|
- 'votes' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false,
|
|
|
- 'default' => '0'
|
|
|
- )
|
|
|
-
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('tid', 'question', 'field')
|
|
|
- );
|
|
|
- $db->create_table('poll', $schema) or error('Unable to create table poll', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $schema = array(
|
|
|
- 'FIELDS' => array(
|
|
|
- 'tid' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'uid' => array(
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => false
|
|
|
- ),
|
|
|
- 'rez' => array(
|
|
|
- 'datatype' => 'TEXT',
|
|
|
- 'allow_null' => true
|
|
|
- )
|
|
|
- ),
|
|
|
- 'PRIMARY KEY' => array('tid', 'uid')
|
|
|
- );
|
|
|
-
|
|
|
- $db->create_table('poll_voted', $schema) or error('Unable to create table poll_voted', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $schema = [
|
|
|
- 'FIELDS' => [
|
|
|
- 'uid' => [
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true,
|
|
|
- ],
|
|
|
- 'fid' => [
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true,
|
|
|
- ],
|
|
|
- 'mf_upper' => [
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true,
|
|
|
- ],
|
|
|
- 'mf_lower' => [
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true,
|
|
|
- ],
|
|
|
- ],
|
|
|
- 'UNIQUE KEYS' => [
|
|
|
- 'uid_fid_idx' => ['uid', 'fid'],
|
|
|
- ],
|
|
|
- 'INDEXES' => [
|
|
|
- 'mf_upper_idx' => ['mf_upper'],
|
|
|
- 'mf_lower_idx' => ['mf_lower'],
|
|
|
- ]
|
|
|
- ];
|
|
|
-
|
|
|
- $db->create_table('mark_of_forum', $schema) or error('Unable to create mark_of_forum table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $schema = [
|
|
|
- 'FIELDS' => [
|
|
|
- 'uid' => [
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true,
|
|
|
- ],
|
|
|
- 'fid' => [
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true,
|
|
|
- ],
|
|
|
- 'tid' => [
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true,
|
|
|
- ],
|
|
|
- 'mt_upper' => [
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true,
|
|
|
- ],
|
|
|
- 'mt_lower' => [
|
|
|
- 'datatype' => 'INT(10) UNSIGNED',
|
|
|
- 'allow_null' => true,
|
|
|
- ],
|
|
|
- ],
|
|
|
- 'UNIQUE KEYS' => [
|
|
|
- 'uid_fid_tid_idx' => ['uid', 'fid', 'tid'],
|
|
|
- ],
|
|
|
- 'INDEXES' => [
|
|
|
- 'mt_upper_idx' => ['mt_upper'],
|
|
|
- 'mt_lower_idx' => ['mt_lower'],
|
|
|
- ]
|
|
|
- ];
|
|
|
-
|
|
|
- $db->create_table('mark_of_topic', $schema) or error('Unable to create mark_of_topic table', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- $now = time();
|
|
|
-
|
|
|
- // Insert the four preset groups
|
|
|
- $db->query('INSERT INTO '.$db->prefix.'groups ('.($db_type != 'pgsql' ? 'g_id, ' : '').'g_title, g_user_title, g_moderator, g_mod_edit_users, g_mod_rename_users, g_mod_change_passwords, g_mod_ban_users, g_read_board, g_view_users, g_post_replies, g_post_topics, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_send_email, g_post_flood, g_search_flood, g_email_flood, g_report_flood) VALUES('.($db_type != 'pgsql' ? '1, ' : '').'\''.$db->escape($lang_install['Administrators']).'\', \''.$db->escape($lang_install['Administrator']).'\', 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0)') or error('Unable to add group', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $db->query('INSERT INTO '.$db->prefix.'groups ('.($db_type != 'pgsql' ? 'g_id, ' : '').'g_title, g_user_title, g_moderator, g_mod_edit_users, g_mod_rename_users, g_mod_change_passwords, g_mod_ban_users, g_mod_promote_users, g_read_board, g_view_users, g_post_replies, g_post_topics, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_send_email, g_post_flood, g_search_flood, g_email_flood, g_report_flood) VALUES('.($db_type != 'pgsql' ? '2, ' : '').'\''.$db->escape($lang_install['Moderators']).'\', \''.$db->escape($lang_install['Moderator']).'\', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0)') or error('Unable to add group', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $db->query('INSERT INTO '.$db->prefix.'groups ('.($db_type != 'pgsql' ? 'g_id, ' : '').'g_title, g_user_title, g_moderator, g_mod_edit_users, g_mod_rename_users, g_mod_change_passwords, g_mod_ban_users, g_read_board, g_view_users, g_post_replies, g_post_topics, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_send_email, g_post_flood, g_search_flood, g_email_flood, g_report_flood) VALUES('.($db_type != 'pgsql' ? '3, ' : '').'\''.$db->escape($lang_install['Guests']).'\', NULL, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 60, 30, 0, 0)') or error('Unable to add group', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $db->query('INSERT INTO '.$db->prefix.'groups ('.($db_type != 'pgsql' ? 'g_id, ' : '').'g_title, g_user_title, g_moderator, g_mod_edit_users, g_mod_rename_users, g_mod_change_passwords, g_mod_ban_users, g_read_board, g_view_users, g_post_replies, g_post_topics, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_send_email, g_post_flood, g_search_flood, g_email_flood, g_report_flood) VALUES('.($db_type != 'pgsql' ? '4, ' : '').'\''.$db->escape($lang_install['Members']).'\', NULL, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 60, 30, 60, 60)') or error('Unable to add group', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- // Insert guest and first admin user
|
|
|
- $db->query('INSERT INTO '.$db_prefix.'users (group_id, username, password, email) VALUES(3, \''.$db->escape($lang_install['Guest']).'\', \''.$db->escape($lang_install['Guest']).'\', \''.$db->escape($lang_install['Guest']).'\')')
|
|
|
- or error('Unable to add guest user. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $db->query('INSERT INTO '.$db_prefix.'users (group_id, username, password, email, language, style, num_posts, last_post, registered, registration_ip, last_visit) VALUES(1, \''.$db->escape($username).'\', \''.$db->escape(password_hash($password1, PASSWORD_DEFAULT)).'\', \''.$db->escape($email).'\', \''.$db->escape($default_lang).'\', \''.$db->escape($default_style).'\', 1, '.$now.', '.$now.', \''.$db->escape(get_remote_address()).'\', '.$now.')')
|
|
|
- or error('Unable to add administrator user. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- // New PMS - Visman
|
|
|
- $db->query('UPDATE '.$db->prefix.'groups SET g_pm_limit=0 WHERE g_id=1') or error('Unable to merge groups', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- // Enable/disable avatars depending on file_uploads setting in PHP configuration
|
|
|
- $avatars = in_array(strtolower(@ini_get('file_uploads')), array('on', 'true', '1')) ? 1 : 0;
|
|
|
-
|
|
|
- // Insert config data
|
|
|
- $pun_config = array(
|
|
|
- 's_fork_version' => FORK_VERSION,
|
|
|
- 'i_fork_revision' => FORK_REVISION,
|
|
|
- 'o_searchindex_revision' => FORK_SI_REVISION,
|
|
|
- 'o_parser_revision' => FORK_PARSER_REVISION,
|
|
|
- 'o_board_title' => $title,
|
|
|
- 'o_board_desc' => $description,
|
|
|
- 'o_default_timezone' => 0,
|
|
|
- 'o_time_format' => 'H:i:s',
|
|
|
- 'o_date_format' => 'Y-m-d',
|
|
|
- 'o_timeout_visit' => 1800,
|
|
|
- 'o_timeout_online' => 300,
|
|
|
- 'o_redirect_delay' => 1,
|
|
|
- 'o_show_version' => 0,
|
|
|
- 'o_show_user_info' => 1,
|
|
|
- 'o_show_post_count' => 1,
|
|
|
- 'o_signatures' => 1,
|
|
|
- 'o_smilies' => 1,
|
|
|
- 'o_smilies_sig' => 1,
|
|
|
- 'o_make_links' => 1,
|
|
|
- 'o_default_lang' => $default_lang,
|
|
|
- 'o_default_style' => $default_style,
|
|
|
- 'o_default_user_group' => 4,
|
|
|
- 'o_topic_review' => 15,
|
|
|
- 'o_disp_topics_default' => 30,
|
|
|
- 'o_disp_posts_default' => 25,
|
|
|
- 'o_indent_num_spaces' => 4,
|
|
|
- 'o_quote_depth' => 3,
|
|
|
- 'o_quickpost' => 1,
|
|
|
- 'o_users_online' => 1,
|
|
|
- 'o_censoring' => 0,
|
|
|
- 'o_show_dot' => 0,
|
|
|
- 'o_topic_views' => 1,
|
|
|
- 'o_quickjump' => 1,
|
|
|
- 'o_gzip' => 0,
|
|
|
- 'o_additional_navlinks' => '',
|
|
|
- 'o_report_method' => 0,
|
|
|
- 'o_regs_report' => 0,
|
|
|
- 'o_default_email_setting' => 1,
|
|
|
- 'o_mailing_list' => $email,
|
|
|
- 'o_avatars' => $avatars,
|
|
|
- 'o_avatars_dir' => 'img/avatars',
|
|
|
- 'o_avatars_width' => 60,
|
|
|
- 'o_avatars_height' => 60,
|
|
|
- 'o_avatars_size' => 10240,
|
|
|
- 'o_search_all_forums' => 1,
|
|
|
- 'o_admin_email' => $email,
|
|
|
- 'o_webmaster_email' => $email,
|
|
|
- 'o_forum_subscriptions' => 1,
|
|
|
- 'o_topic_subscriptions' => 1,
|
|
|
- 'o_smtp_host' => NULL,
|
|
|
- 'o_smtp_user' => NULL,
|
|
|
- 'o_smtp_pass' => NULL,
|
|
|
- 'o_smtp_ssl' => 0,
|
|
|
- 'o_regs_allow' => 1,
|
|
|
- 'o_regs_verify' => 0,
|
|
|
- 'o_announcement' => 0,
|
|
|
- 'o_announcement_message' => $lang_install['Announcement'],
|
|
|
- 'o_rules' => 0,
|
|
|
- 'o_rules_message' => $lang_install['Rules'],
|
|
|
- 'o_maintenance' => 0,
|
|
|
- 'o_maintenance_message' => $lang_install['Maintenance message'],
|
|
|
- 'o_default_dst' => 0,
|
|
|
- 'o_feed_type' => 2,
|
|
|
- 'o_feed_ttl' => 0,
|
|
|
- 'p_message_bbcode' => 1,
|
|
|
- 'p_message_img_tag' => 1,
|
|
|
- 'p_message_all_caps' => 1,
|
|
|
- 'p_subject_all_caps' => 1,
|
|
|
- 'p_sig_all_caps' => 1,
|
|
|
- 'p_sig_bbcode' => 1,
|
|
|
- 'p_sig_img_tag' => 0,
|
|
|
- 'p_sig_length' => 400,
|
|
|
- 'p_sig_lines' => 4,
|
|
|
- 'p_allow_banned_email' => 1,
|
|
|
- 'p_allow_dupe_email' => 0,
|
|
|
- 'p_force_guest_email' => 1,
|
|
|
- 'o_pms_enabled' => 1, // New PMS - Visman
|
|
|
- 'o_pms_min_kolvo' => 0,
|
|
|
- 'o_merge_timeout' => 86400, // merge post - Visman
|
|
|
- 'o_board_redirect' => '', // для редиректа - Visman
|
|
|
- 'o_board_redirectg' => 0,
|
|
|
- 'o_poll_enabled' => 0, // опросы - Visman
|
|
|
- 'o_poll_max_ques' => 3,
|
|
|
- 'o_poll_max_field' => 20,
|
|
|
- 'o_poll_time' => 60,
|
|
|
- 'o_poll_term' => 3,
|
|
|
- 'o_poll_guest' => 0,
|
|
|
- 'o_fbox_guest' => 0, // Fancybox - Visman
|
|
|
- 'o_fbox_files' => 'viewtopic.php,search.php,pmsnew.php',
|
|
|
- 'o_coding_forms' => 1, // кодирование форм - Visman
|
|
|
- 'o_check_ip' => 0, // проверка ip администрации - Visman
|
|
|
- 'o_crypto_enable' => 1, // случайные имена полей форм - Visman
|
|
|
- 'o_crypto_pas' => $this->c->Secury->randomPass(25),
|
|
|
- 'o_crypto_salt' => $this->c->Secury->randomPass(13),
|
|
|
- 'o_enable_acaptcha' => 1, // математическая каптча
|
|
|
- 'st_max_users' => 1, // статистика по максимуму юзеров - Visman
|
|
|
- 'st_max_users_time' => time(),
|
|
|
- );
|
|
|
-
|
|
|
- foreach ($pun_config as $conf_name => $conf_value)
|
|
|
- {
|
|
|
- $db->query('INSERT INTO '.$db_prefix.'config (conf_name, conf_value) VALUES(\''.$conf_name.'\', '.(is_null($conf_value) ? 'NULL' : '\''.$db->escape($conf_value).'\'').')')
|
|
|
- or error('Unable to insert into table '.$db_prefix.'config. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
|
|
|
- }
|
|
|
-
|
|
|
- // Insert some other default data
|
|
|
- $subject = $lang_install['Test post'];
|
|
|
- $message = $lang_install['Message'];
|
|
|
-
|
|
|
- $db->query('INSERT INTO '.$db_prefix.'categories (cat_name, disp_position) VALUES(\''.$db->escape($lang_install['Test category']).'\', 1)')
|
|
|
- or error('Unable to insert into table '.$db_prefix.'categories. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $db->query('INSERT INTO '.$db_prefix.'forums (forum_name, forum_desc, num_topics, num_posts, last_post, last_post_id, last_poster, last_topic, disp_position, cat_id) VALUES(\''.$db->escape($lang_install['Test forum']).'\', \''.$db->escape($lang_install['This is just a test forum']).'\', 1, 1, '.$now.', 1, \''.$db->escape($username).'\', \''.$db->escape($subject).'\', 1, 1)') // last topic on index - Visman
|
|
|
- or error('Unable to insert into table '.$db_prefix.'forums. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $db->query('INSERT INTO '.$db_prefix.'topics (poster, subject, posted, first_post_id, last_post, last_post_id, last_poster, forum_id) VALUES(\''.$db->escape($username).'\', \''.$db->escape($subject).'\', '.$now.', 1, '.$now.', 1, \''.$db->escape($username).'\', 1)')
|
|
|
- or error('Unable to insert into table '.$db_prefix.'topics. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- $db->query('INSERT INTO '.$db_prefix.'posts (poster, poster_id, poster_ip, message, posted, topic_id) VALUES(\''.$db->escape($username).'\', 2, \''.$db->escape(get_remote_address()).'\', \''.$db->escape($message).'\', '.$now.', 1)')
|
|
|
- or error('Unable to insert into table '.$db_prefix.'posts. Please check your configuration and try again', __FILE__, __LINE__, $db->error());
|
|
|
-
|
|
|
- // Index the test post so searching for it works
|
|
|
- require PUN_ROOT . 'include/search_idx.php';
|
|
|
- update_search_index('post', 1, $message, $subject);
|
|
|
-
|
|
|
- $db->end_transaction();
|
|
|
-
|
|
|
-
|
|
|
- $alerts = array();
|
|
|
-
|
|
|
- // Check if we disabled uploading avatars because file_uploads was disabled
|
|
|
- if ($avatars == '0')
|
|
|
- $alerts[] = $lang_install['Alert upload'];
|
|
|
-
|
|
|
- // Add some random bytes at the end of the cookie name to prevent collisions
|
|
|
- $cookie_prefix = 'fork' . $container->get('Secury')->randomHash(7) . '_';
|
|
|
-
|
|
|
- // Generate the main.php file data
|
|
|
- $config = $this->generate_config_file($base_url, $db_type, $db_host, $db_name, $db_username, $db_password, $db_prefix, $cookie_prefix);
|
|
|
-
|
|
|
- // Attempt to write main.php and serve it up for download if writing fails
|
|
|
- $written = false;
|
|
|
- if (forum_is_writable($this->c->DIR_CONFIG))
|
|
|
- {
|
|
|
- $fh = @fopen($this->c->DIR_CONFIG . '/main.php', 'wb');
|
|
|
- if ($fh)
|
|
|
- {
|
|
|
- fwrite($fh, $config);
|
|
|
- fclose($fh);
|
|
|
-
|
|
|
- $written = true;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-?>
|
|
|
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
-
|
|
|
-<html>
|
|
|
-<head>
|
|
|
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
-<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
-<title><?php echo $lang_install['ForkBB Installation'] ?></title>
|
|
|
-<link rel="stylesheet" type="text/css" href="style/<?php echo $default_style ?>.css" />
|
|
|
-</head>
|
|
|
-<body>
|
|
|
-
|
|
|
-<div id="puninstall" class="pun">
|
|
|
-<div class="top-box"><div><!-- Top Corners --></div></div>
|
|
|
-<div class="punwrap">
|
|
|
-
|
|
|
-<div id="brdheader" class="block">
|
|
|
- <div class="box">
|
|
|
- <div id="brdtitle" class="inbox">
|
|
|
- <h1><span><?php echo $lang_install['ForkBB Installation'] ?></span></h1>
|
|
|
- <div id="brddesc"><p><?php echo $lang_install['ForkBB has been installed'] ?></p></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</div>
|
|
|
-
|
|
|
-<div id="brdmain">
|
|
|
-
|
|
|
-<div class="blockform">
|
|
|
- <h2><span><?php echo $lang_install['Final instructions'] ?></span></h2>
|
|
|
- <div class="box">
|
|
|
-<?php
|
|
|
-
|
|
|
-if (! $written)
|
|
|
-{
|
|
|
-
|
|
|
-?>
|
|
|
- <form method="post" action="">
|
|
|
- <div class="inform">
|
|
|
- <div class="forminfo">
|
|
|
- <p><?php echo $lang_install['Info 17'] ?></p>
|
|
|
- <p><?php echo $lang_install['Info 18'] ?></p>
|
|
|
- </div>
|
|
|
- <input type="hidden" name="generate_config" value="1" />
|
|
|
- <input type="hidden" name="base_url" value="<?php echo pun_htmlspecialchars($base_url); ?>" />
|
|
|
- <input type="hidden" name="db_type" value="<?php echo pun_htmlspecialchars($db_type); ?>" />
|
|
|
- <input type="hidden" name="db_host" value="<?php echo pun_htmlspecialchars($db_host); ?>" />
|
|
|
- <input type="hidden" name="db_name" value="<?php echo pun_htmlspecialchars($db_name); ?>" />
|
|
|
- <input type="hidden" name="db_username" value="<?php echo pun_htmlspecialchars($db_username); ?>" />
|
|
|
- <input type="hidden" name="db_password" value="<?php echo pun_htmlspecialchars($db_password); ?>" />
|
|
|
- <input type="hidden" name="db_prefix" value="<?php echo pun_htmlspecialchars($db_prefix); ?>" />
|
|
|
- <input type="hidden" name="cookie_prefix" value="<?php echo pun_htmlspecialchars($cookie_prefix); ?>" />
|
|
|
-
|
|
|
-<?php if (! empty($alerts)): ?> <div class="forminfo error-info">
|
|
|
- <ul class="error-list">
|
|
|
-<?php
|
|
|
-
|
|
|
-foreach ($alerts as $cur_alert)
|
|
|
- echo "\t\t\t\t\t".'<li>'.$cur_alert.'</li>'."\n";
|
|
|
-
|
|
|
-?>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
-<?php endif; ?> </div>
|
|
|
- <p class="buttons"><input type="submit" value="<?php echo $lang_install['Download main.php file'] ?>" /></p>
|
|
|
- </form>
|
|
|
-
|
|
|
-<?php
|
|
|
-
|
|
|
-}
|
|
|
-else
|
|
|
-{
|
|
|
-
|
|
|
-?>
|
|
|
- <div class="fakeform">
|
|
|
- <div class="inform">
|
|
|
- <div class="forminfo">
|
|
|
- <p><?php echo $lang_install['ForkBB fully installed'] ?></p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-<?php
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-?>
|
|
|
- </div>
|
|
|
-</div>
|
|
|
-
|
|
|
-</div>
|
|
|
-
|
|
|
-</div>
|
|
|
-<div class="end-box"><div><!-- Bottom Corners --></div></div>
|
|
|
-</div>
|
|
|
-
|
|
|
-</body>
|
|
|
-</html>
|
|
|
-<?php
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-}
|