auto-format all files; add table-definitions to test-bootstrap file
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
* @package Install
|
||||
*
|
||||
*/
|
||||
|
||||
require 'lib/class.FroxlorInstall.php';
|
||||
|
||||
$frxinstall = new FroxlorInstall();
|
||||
|
||||
@@ -161,7 +161,7 @@ class FroxlorInstall
|
||||
$this->_guessServerName();
|
||||
$this->_guessServerIP();
|
||||
$this->_guessWebserver();
|
||||
|
||||
|
||||
$this->_getPostField('mysql_host', '127.0.0.1');
|
||||
$this->_getPostField('mysql_database', 'froxlor');
|
||||
$this->_getPostField('mysql_unpriv_user', 'froxlor');
|
||||
@@ -176,22 +176,22 @@ class FroxlorInstall
|
||||
$this->_getPostField('httpuser', $posixusername['name']);
|
||||
$posixgroup = posix_getgrgid(posix_getgid());
|
||||
$this->_getPostField('httpgroup', $posixgroup['name']);
|
||||
|
||||
|
||||
if ($this->_data['mysql_host'] == 'localhost' || $this->_data['mysql_host'] == '127.0.0.1') {
|
||||
$this->_data['mysql_access_host'] = $this->_data['mysql_host'];
|
||||
} else {
|
||||
$this->_data['mysql_access_host'] = $this->_data['serverip'];
|
||||
}
|
||||
|
||||
|
||||
// check system-hostname to be a FQDN
|
||||
if ($this->_validate_ip($this->_data['servername']) !== false) {
|
||||
$this->_data['servername'] = '';
|
||||
}
|
||||
|
||||
|
||||
if (empty($this->_data['serverip']) || $this->_validate_ip($this->_data['serverip']) == false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (isset($_POST['installstep']) && $_POST['installstep'] == '1' && $this->_data['admin_pass1'] == $this->_data['admin_pass2'] && $this->_data['admin_pass1'] != '' && $this->_data['admin_pass2'] != '' && $this->_data['mysql_unpriv_pass'] != '' && $this->_data['mysql_root_pass'] != '' && $this->_data['servername'] != '' && $this->_data['serverip'] != '' && $this->_data['httpuser'] != '' && $this->_data['httpgroup'] != '' && $this->_data['mysql_unpriv_user'] != $this->_data['mysql_root_user']) {
|
||||
return true;
|
||||
}
|
||||
@@ -206,7 +206,7 @@ class FroxlorInstall
|
||||
private function _doInstall()
|
||||
{
|
||||
$content = "<table class=\"noborder\">";
|
||||
|
||||
|
||||
// check for mysql-root-connection
|
||||
$content .= $this->_status_message('begin', $this->_lng['install']['testing_mysql']);
|
||||
|
||||
@@ -234,15 +234,15 @@ class FroxlorInstall
|
||||
$fatal_fail = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (! $fatal_fail) {
|
||||
$version_server = $db_root->getAttribute(PDO::ATTR_SERVER_VERSION);
|
||||
$sql_mode = 'NO_ENGINE_SUBSTITUTION';
|
||||
if (version_compare($version_server, '8.0.11', '<')) {
|
||||
$sql_mode .= ',NO_AUTO_CREATE_USER';
|
||||
}
|
||||
$db_root->exec('SET sql_mode = "'.$sql_mode.'"');
|
||||
|
||||
$db_root->exec('SET sql_mode = "' . $sql_mode . '"');
|
||||
|
||||
// ok, if we are here, the database connection is up and running
|
||||
$content .= $this->_status_message('green', "OK");
|
||||
// check for existing db and create backup if so
|
||||
@@ -265,7 +265,7 @@ class FroxlorInstall
|
||||
if (version_compare($version_server, '8.0.11', '<')) {
|
||||
$sql_mode .= ',NO_AUTO_CREATE_USER';
|
||||
}
|
||||
$db->exec('SET sql_mode = "'.$sql_mode.'"');
|
||||
$db->exec('SET sql_mode = "' . $sql_mode . '"');
|
||||
} catch (PDOException $e) {
|
||||
// dafuq? this should have happened in _importDatabaseData()
|
||||
$content .= $this->_status_message('red', $e->getMessage());
|
||||
@@ -283,9 +283,9 @@ class FroxlorInstall
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$content .= "</table>";
|
||||
|
||||
|
||||
// check if we have unrecoverable errors
|
||||
if ($fatal_fail || $another_fail || $this->_abort) {
|
||||
// D'oh
|
||||
@@ -302,9 +302,9 @@ class FroxlorInstall
|
||||
$link = '../index.php';
|
||||
$linktext = $this->_lng['click_here_to_login'];
|
||||
}
|
||||
|
||||
|
||||
eval("\$navigation .= \"" . $this->_getTemplate("pagebottom") . "\";");
|
||||
|
||||
|
||||
return array(
|
||||
'pagecontent' => $content,
|
||||
'pagenavigation' => $navigation
|
||||
@@ -317,7 +317,7 @@ class FroxlorInstall
|
||||
private function _createUserdataConf()
|
||||
{
|
||||
$content = "";
|
||||
|
||||
|
||||
$content .= $this->_status_message('begin', $this->_lng['install']['creating_configfile']);
|
||||
$userdata = "<?php\n";
|
||||
$userdata .= "// automatically generated userdata.inc.php for Froxlor\n";
|
||||
@@ -332,7 +332,7 @@ class FroxlorInstall
|
||||
$userdata .= "// enable debugging to browser in case of SQL errors\n";
|
||||
$userdata .= "\$sql['debug'] = false;\n";
|
||||
$userdata .= "?>";
|
||||
|
||||
|
||||
// test if we can store the userdata.inc.php in ../lib
|
||||
$userdata_file = dirname(dirname(dirname(__FILE__))) . '/lib/userdata.inc.php';
|
||||
if ($fp = @fopen($userdata_file, 'w')) {
|
||||
@@ -350,7 +350,7 @@ class FroxlorInstall
|
||||
$escpduserdata = nl2br(htmlspecialchars($userdata));
|
||||
eval("\$content .= \"" . $this->_getTemplate("textarea") . "\";");
|
||||
}
|
||||
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
@@ -364,9 +364,9 @@ class FroxlorInstall
|
||||
private function _doDataEntries(&$db)
|
||||
{
|
||||
$content = "";
|
||||
|
||||
|
||||
$content .= $this->_status_message('begin', $this->_lng['install']['creating_entries']);
|
||||
|
||||
|
||||
// and lets insert the default ip and port
|
||||
$stmt = $db->prepare("
|
||||
INSERT INTO `" . TABLE_PANEL_IPSANDPORTS . "` SET
|
||||
@@ -380,7 +380,7 @@ class FroxlorInstall
|
||||
'serverip' => $this->_data['serverip']
|
||||
));
|
||||
$defaultip = $db->lastInsertId();
|
||||
|
||||
|
||||
// insert the defaultip
|
||||
$upd_stmt = $db->prepare("
|
||||
UPDATE `" . TABLE_PANEL_SETTINGS . "` SET
|
||||
@@ -390,9 +390,9 @@ class FroxlorInstall
|
||||
$upd_stmt->execute(array(
|
||||
'defaultip' => $defaultip
|
||||
));
|
||||
|
||||
|
||||
$content .= $this->_status_message('green', 'OK');
|
||||
|
||||
|
||||
// last but not least create the main admin
|
||||
$content .= $this->_status_message('begin', $this->_lng['install']['adding_admin_user']);
|
||||
$ins_data = array(
|
||||
@@ -425,11 +425,11 @@ class FroxlorInstall
|
||||
`subdomains` = -1,
|
||||
`traffic` = -1048576
|
||||
");
|
||||
|
||||
|
||||
$ins_stmt->execute($ins_data);
|
||||
|
||||
|
||||
$content .= $this->_status_message('green', 'OK');
|
||||
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
@@ -460,14 +460,14 @@ class FroxlorInstall
|
||||
private function _doSettings(&$db)
|
||||
{
|
||||
$content = "";
|
||||
|
||||
|
||||
$content .= $this->_status_message('begin', $this->_lng['install']['changing_data']);
|
||||
$upd_stmt = $db->prepare("
|
||||
UPDATE `" . TABLE_PANEL_SETTINGS . "` SET
|
||||
`value` = :value
|
||||
WHERE `settinggroup` = :group AND `varname` = :varname
|
||||
");
|
||||
|
||||
|
||||
$this->_updateSetting($upd_stmt, 'admin@' . $this->_data['servername'], 'panel', 'adminmail');
|
||||
$this->_updateSetting($upd_stmt, $this->_data['serverip'], 'system', 'ipaddress');
|
||||
$this->_updateSetting($upd_stmt, $this->_data['servername'], 'system', 'hostname');
|
||||
@@ -476,7 +476,7 @@ class FroxlorInstall
|
||||
$this->_updateSetting($upd_stmt, $this->_data['webserver'], 'system', 'webserver');
|
||||
$this->_updateSetting($upd_stmt, $this->_data['httpuser'], 'system', 'httpuser');
|
||||
$this->_updateSetting($upd_stmt, $this->_data['httpgroup'], 'system', 'httpgroup');
|
||||
|
||||
|
||||
// necessary changes for webservers != apache2
|
||||
if ($this->_data['webserver'] == "apache24") {
|
||||
$this->_updateSetting($upd_stmt, 'apache2', 'system', 'webserver');
|
||||
@@ -496,22 +496,22 @@ class FroxlorInstall
|
||||
$this->_updateSetting($upd_stmt, '/etc/nginx/nginx.pem', 'system', 'ssl_cert_file');
|
||||
$this->_updateSetting($upd_stmt, '/var/run/', 'phpfpm', 'fastcgi_ipcdir');
|
||||
}
|
||||
|
||||
|
||||
$this->_updateSetting($upd_stmt, $this->_data['activate_newsfeed'], 'admin', 'show_news_feed');
|
||||
$this->_updateSetting($upd_stmt, dirname(dirname(dirname(__FILE__))), 'system', 'letsencryptchallengepath');
|
||||
|
||||
|
||||
// insert the lastcronrun to be the installation date
|
||||
$this->_updateSetting($upd_stmt, time(), 'system', 'lastcronrun');
|
||||
|
||||
|
||||
// set specific times for some crons (traffic only at night, etc.)
|
||||
$ts = mktime(0, 0, 0, date('m', time()), date('d', time()), date('Y', time()));
|
||||
$db->query("UPDATE `" . TABLE_PANEL_CRONRUNS . "` SET `lastrun` = '" . $ts . "' WHERE `cronfile` ='cron_traffic';");
|
||||
|
||||
|
||||
// insert task 99 to generate a correct cron.d-file automatically
|
||||
$db->query("INSERT INTO `" . TABLE_PANEL_TASKS . "` SET `type` = '99';");
|
||||
|
||||
|
||||
$content .= $this->_status_message('green', 'OK');
|
||||
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
@@ -545,16 +545,16 @@ class FroxlorInstall
|
||||
if (version_compare($version_server, '8.0.11', '<')) {
|
||||
$sql_mode .= ',NO_AUTO_CREATE_USER';
|
||||
}
|
||||
$db->exec('SET sql_mode = "'.$sql_mode.'"');
|
||||
$db->exec('SET sql_mode = "' . $sql_mode . '"');
|
||||
} catch (PDOException $e) {
|
||||
$content .= $this->_status_message('red', $e->getMessage());
|
||||
$fatal_fail = true;
|
||||
}
|
||||
|
||||
|
||||
if (! $fatal_fail) {
|
||||
|
||||
|
||||
$content .= $this->_status_message('green', 'OK');
|
||||
|
||||
|
||||
$content .= $this->_status_message('begin', $this->_lng['install']['importing_data']);
|
||||
$db_schema = dirname(dirname(__FILE__)) . '/froxlor.sql';
|
||||
$sql_query = @file_get_contents($db_schema);
|
||||
@@ -572,13 +572,13 @@ class FroxlorInstall
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (! $fatal_fail) {
|
||||
$content .= $this->_status_message('green', 'OK');
|
||||
}
|
||||
$db = null;
|
||||
}
|
||||
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
@@ -592,56 +592,56 @@ class FroxlorInstall
|
||||
private function _createDatabaseAndUser(&$db_root)
|
||||
{
|
||||
$content = "";
|
||||
|
||||
|
||||
// so first we have to delete the database and
|
||||
// the user given for the unpriv-user if they exit
|
||||
$content .= $this->_status_message('begin', $this->_lng['install']['prepare_db']);
|
||||
|
||||
|
||||
$del_stmt = $db_root->prepare("DELETE FROM `mysql`.`user` WHERE `User` = :user AND `Host` = :accesshost");
|
||||
$del_stmt->execute(array(
|
||||
'user' => $this->_data['mysql_unpriv_user'],
|
||||
'accesshost' => $this->_data['mysql_access_host']
|
||||
));
|
||||
|
||||
|
||||
$del_stmt = $db_root->prepare("DELETE FROM `mysql`.`db` WHERE `User` = :user AND `Host` = :accesshost");
|
||||
$del_stmt->execute(array(
|
||||
'user' => $this->_data['mysql_unpriv_user'],
|
||||
'accesshost' => $this->_data['mysql_access_host']
|
||||
));
|
||||
|
||||
|
||||
$del_stmt = $db_root->prepare("DELETE FROM `mysql`.`tables_priv` WHERE `User` = :user AND `Host` =:accesshost");
|
||||
$del_stmt->execute(array(
|
||||
'user' => $this->_data['mysql_unpriv_user'],
|
||||
'accesshost' => $this->_data['mysql_access_host']
|
||||
));
|
||||
|
||||
|
||||
$del_stmt = $db_root->prepare("DELETE FROM `mysql`.`columns_priv` WHERE `User` = :user AND `Host` = :accesshost");
|
||||
$del_stmt->execute(array(
|
||||
'user' => $this->_data['mysql_unpriv_user'],
|
||||
'accesshost' => $this->_data['mysql_access_host']
|
||||
));
|
||||
|
||||
|
||||
$del_stmt = $db_root->prepare("DROP DATABASE IF EXISTS `" . str_replace('`', '', $this->_data['mysql_database']) . "`;");
|
||||
$del_stmt->execute();
|
||||
|
||||
|
||||
$db_root->query("FLUSH PRIVILEGES;");
|
||||
$content .= $this->_status_message('green', 'OK');
|
||||
|
||||
|
||||
// we have to create a new user and database for the froxlor unprivileged mysql access
|
||||
$content .= $this->_status_message('begin', $this->_lng['install']['create_mysqluser_and_db']);
|
||||
$ins_stmt = $db_root->prepare("CREATE DATABASE `" . str_replace('`', '', $this->_data['mysql_database']) . "` CHARACTER SET=utf8 COLLATE=utf8_general_ci");
|
||||
$ins_stmt->execute();
|
||||
|
||||
|
||||
$mysql_access_host_array = array_map('trim', explode(',', $this->_data['mysql_access_host']));
|
||||
|
||||
|
||||
if (in_array('127.0.0.1', $mysql_access_host_array) && ! in_array('localhost', $mysql_access_host_array)) {
|
||||
$mysql_access_host_array[] = 'localhost';
|
||||
}
|
||||
|
||||
|
||||
if (! in_array('127.0.0.1', $mysql_access_host_array) && in_array('localhost', $mysql_access_host_array)) {
|
||||
$mysql_access_host_array[] = '127.0.0.1';
|
||||
}
|
||||
|
||||
|
||||
$mysql_access_host_array[] = $this->_data['serverip'];
|
||||
foreach ($mysql_access_host_array as $mysql_access_host) {
|
||||
$_db = str_replace('`', '', $this->_data['mysql_database']);
|
||||
@@ -660,11 +660,11 @@ class FroxlorInstall
|
||||
"password" => $this->_data['mysql_unpriv_pass']
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
$db_root->query("FLUSH PRIVILEGES;");
|
||||
$this->_data['mysql_access_host'] = implode(',', $mysql_access_host_array);
|
||||
$content .= $this->_status_message('green', 'OK');
|
||||
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
@@ -678,7 +678,7 @@ class FroxlorInstall
|
||||
private function _backupExistingDatabase(&$db_root)
|
||||
{
|
||||
$content = "";
|
||||
|
||||
|
||||
// check for existing of former database
|
||||
$tables_exist = false;
|
||||
$sql = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = :database";
|
||||
@@ -687,19 +687,19 @@ class FroxlorInstall
|
||||
'database' => $this->_data['mysql_database']
|
||||
));
|
||||
$rows = $db_root->query("SELECT FOUND_ROWS()")->fetchColumn();
|
||||
|
||||
|
||||
// check result
|
||||
if ($result_stmt !== false && $rows > 0) {
|
||||
$tables_exist = true;
|
||||
}
|
||||
|
||||
|
||||
if ($tables_exist) {
|
||||
// tell whats going on
|
||||
$content .= $this->_status_message('begin', $this->_lng['install']['backup_old_db']);
|
||||
|
||||
|
||||
// create temporary backup-filename
|
||||
$filename = "/tmp/froxlor_backup_" . date('YmdHi') . ".sql";
|
||||
|
||||
|
||||
// look for mysqldump
|
||||
$do_backup = false;
|
||||
if (file_exists("/usr/bin/mysqldump")) {
|
||||
@@ -709,7 +709,7 @@ class FroxlorInstall
|
||||
$do_backup = true;
|
||||
$mysql_dump = '/usr/local/bin/mysqldump';
|
||||
}
|
||||
|
||||
|
||||
if ($do_backup) {
|
||||
$command = $mysql_dump . " " . $this->_data['mysql_database'] . " -u " . $this->_data['mysql_root_user'] . " --password='" . $this->_data['mysql_root_pass'] . "' --result-file=" . $filename;
|
||||
$output = exec($command);
|
||||
@@ -722,7 +722,7 @@ class FroxlorInstall
|
||||
$content .= $this->_status_message('red', $this->_lng['install']['backup_binary_missing']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
@@ -744,7 +744,7 @@ class FroxlorInstall
|
||||
}
|
||||
// get language-form-template
|
||||
eval("\$content .= \"" . $this->_getTemplate("lngform") . "\";");
|
||||
|
||||
|
||||
// form-data
|
||||
$formdata = "";
|
||||
/**
|
||||
@@ -784,7 +784,7 @@ class FroxlorInstall
|
||||
$style = '';
|
||||
}
|
||||
$formdata .= $this->_getSectionItemString('mysql_root_pass', true, $style, 'password');
|
||||
|
||||
|
||||
/**
|
||||
* admin data
|
||||
*/
|
||||
@@ -808,7 +808,7 @@ class FroxlorInstall
|
||||
$formdata .= $this->_getSectionItemString('admin_pass2', true, $style, 'password');
|
||||
// activate newsfeed?
|
||||
$formdata .= $this->_getSectionItemYesNo('activate_newsfeed', true);
|
||||
|
||||
|
||||
/**
|
||||
* Server data
|
||||
*/
|
||||
@@ -855,11 +855,11 @@ class FroxlorInstall
|
||||
$style = '';
|
||||
}
|
||||
$formdata .= $this->_getSectionItemString('httpgroup', true, $style);
|
||||
|
||||
|
||||
// get data-form-template
|
||||
$language = htmlspecialchars($this->_activelng);
|
||||
eval("\$content .= \"" . $this->_getTemplate("dataform2") . "\";");
|
||||
|
||||
|
||||
$navigation = '';
|
||||
return array(
|
||||
'pagecontent' => $content,
|
||||
@@ -936,15 +936,15 @@ class FroxlorInstall
|
||||
*/
|
||||
private function _requirementCheck()
|
||||
{
|
||||
|
||||
|
||||
// indicator whether we need to abort or not
|
||||
$_die = false;
|
||||
|
||||
|
||||
$content = "<table class=\"noborder\">";
|
||||
|
||||
|
||||
// check for correct php version
|
||||
$content .= $this->_status_message('begin', $this->_lng['requirements']['phpversion']);
|
||||
|
||||
|
||||
if (version_compare("5.6.0", PHP_VERSION, ">=")) {
|
||||
$content .= $this->_status_message('red', $this->_lng['requirements']['notfound'] . ' (' . PHP_VERSION . ')');
|
||||
$_die = true;
|
||||
@@ -955,10 +955,10 @@ class FroxlorInstall
|
||||
$content .= $this->_status_message('green', PHP_VERSION);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// check for php_pdo and pdo_mysql
|
||||
$content .= $this->_status_message('begin', $this->_lng['requirements']['phppdo']);
|
||||
|
||||
|
||||
if (! extension_loaded('pdo') || in_array("mysql", PDO::getAvailableDrivers()) == false) {
|
||||
$content .= $this->_status_message('red', $this->_lng['requirements']['notinstalled']);
|
||||
$_die = true;
|
||||
@@ -977,16 +977,16 @@ class FroxlorInstall
|
||||
|
||||
// check for xml-extension
|
||||
$this->_requirementCheckFor($content, $_die, 'xml', false, 'phpxml');
|
||||
|
||||
|
||||
// check for filter-extension
|
||||
$this->_requirementCheckFor($content, $_die, 'filter', false, 'phpfilter');
|
||||
|
||||
|
||||
// check for posix-extension
|
||||
$this->_requirementCheckFor($content, $_die, 'posix', false, 'phpposix');
|
||||
|
||||
// check for mbstring-extension
|
||||
$this->_requirementCheckFor($content, $_die, 'mbstring', false, 'phpmbstring');
|
||||
|
||||
|
||||
// check for curl extension
|
||||
$this->_requirementCheckFor($content, $_die, 'curl', false, 'phpcurl');
|
||||
|
||||
@@ -995,7 +995,7 @@ class FroxlorInstall
|
||||
|
||||
// check for bcmath extension
|
||||
$this->_requirementCheckFor($content, $_die, 'bcmath', true, 'phpbcmath', 'bcmathdescription');
|
||||
|
||||
|
||||
// check for zip extension
|
||||
$this->_requirementCheckFor($content, $_die, 'zip', true, 'phpzip', 'zipdescription');
|
||||
|
||||
@@ -1007,7 +1007,7 @@ class FroxlorInstall
|
||||
} else {
|
||||
$content .= $this->_status_message('green', 'off');
|
||||
}
|
||||
|
||||
|
||||
// check for mysqldump binary in order to backup existing database
|
||||
$content .= $this->_status_message('begin', $this->_lng['requirements']['mysqldump']);
|
||||
|
||||
@@ -1016,9 +1016,9 @@ class FroxlorInstall
|
||||
} else {
|
||||
$content .= $this->_status_message('orange', $this->_lng['requirements']['notinstalled'] . "<br />" . $this->_lng['requirements']['mysqldumpmissing']);
|
||||
}
|
||||
|
||||
|
||||
$content .= "</table>";
|
||||
|
||||
|
||||
// check if we have unrecoverable errors
|
||||
$navigation = '';
|
||||
if ($_die) {
|
||||
@@ -1033,19 +1033,19 @@ class FroxlorInstall
|
||||
$linktext = $this->_lng['click_here_to_continue'];
|
||||
}
|
||||
eval("\$navigation .= \"" . $this->_getTemplate("pagebottom") . "\";");
|
||||
|
||||
|
||||
return array(
|
||||
'pagecontent' => $content,
|
||||
'pagenavigation' => $navigation
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
private function _requirementCheckFor(&$content, &$_die, $ext = '', $optional = false, $lng_txt = "", $lng_desc = "")
|
||||
{
|
||||
$content .= $this->_status_message('begin', $this->_lng['requirements'][$lng_txt]);
|
||||
|
||||
|
||||
if (! extension_loaded($ext)) {
|
||||
if (!$optional) {
|
||||
if (! $optional) {
|
||||
$content .= $this->_status_message('red', $this->_lng['requirements']['notinstalled']);
|
||||
$_die = true;
|
||||
} else {
|
||||
@@ -1066,7 +1066,7 @@ class FroxlorInstall
|
||||
header("Pragma: no-cache");
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s \G\M\T', time()));
|
||||
header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time()));
|
||||
|
||||
|
||||
// ensure that default timezone is set
|
||||
if (function_exists("date_default_timezone_set") && function_exists("date_default_timezone_get")) {
|
||||
@date_default_timezone_set(@date_default_timezone_get());
|
||||
@@ -1084,7 +1084,7 @@ class FroxlorInstall
|
||||
// includes the usersettings (MySQL-Username/Passwort)
|
||||
// to test if Froxlor is already installed
|
||||
require $this->_basepath . '/lib/userdata.inc.php';
|
||||
|
||||
|
||||
if (isset($sql) && is_array($sql)) {
|
||||
// use sparkle theme for the notice
|
||||
$installed_hint = file_get_contents($this->_basepath . '/templates/Sparkle/misc/alreadyinstalledhint.tpl');
|
||||
@@ -1101,7 +1101,7 @@ class FroxlorInstall
|
||||
{
|
||||
// set default
|
||||
$standardlanguage = 'english';
|
||||
|
||||
|
||||
// check either _GET or _POST
|
||||
if (isset($_GET['language']) && isset($this->_languages[$_GET['language']])) {
|
||||
$this->_activelng = $_GET['language'];
|
||||
@@ -1122,7 +1122,7 @@ class FroxlorInstall
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// require english base language as fallback
|
||||
$lngfile = $this->_basepath . '/install/lng/' . $standardlanguage . '.lng.php';
|
||||
if (file_exists($lngfile)) {
|
||||
@@ -1130,10 +1130,9 @@ class FroxlorInstall
|
||||
require $lngfile;
|
||||
$this->_lng = $lng;
|
||||
}
|
||||
|
||||
|
||||
// require chosen language if not english
|
||||
if ($this->_activelng != $standardlanguage)
|
||||
{
|
||||
if ($this->_activelng != $standardlanguage) {
|
||||
$lngfile = $this->_basepath . '/install/lng/' . $this->_activelng . '.lng.php';
|
||||
if (file_exists($lngfile)) {
|
||||
// includes file /lng/$language.lng.php if it exists
|
||||
@@ -1165,7 +1164,7 @@ class FroxlorInstall
|
||||
} else {
|
||||
$templatefile = 'TEMPLATE NOT FOUND: ' . $filename;
|
||||
}
|
||||
|
||||
|
||||
return $templatefile;
|
||||
}
|
||||
|
||||
@@ -1321,17 +1320,17 @@ class FroxlorInstall
|
||||
*/
|
||||
private function _split_sql_file($sql, $delimiter)
|
||||
{
|
||||
|
||||
|
||||
// Split up our string into "possible" SQL statements.
|
||||
$tokens = explode($delimiter, $sql);
|
||||
|
||||
|
||||
// try to save mem.
|
||||
$sql = "";
|
||||
$output = array();
|
||||
|
||||
|
||||
// we don't actually care about the matches preg gives us.
|
||||
$matches = array();
|
||||
|
||||
|
||||
// this is faster than calling count($tokens) every time through the loop.
|
||||
$token_count = count($tokens);
|
||||
for ($i = 0; $i < $token_count; $i ++) {
|
||||
@@ -1339,12 +1338,12 @@ class FroxlorInstall
|
||||
if (($i != ($token_count - 1)) || (strlen($tokens[$i] > 0))) {
|
||||
// This is the total number of single quotes in the token.
|
||||
$total_quotes = preg_match_all("/'/", $tokens[$i], $matches);
|
||||
|
||||
|
||||
// Counts single quotes that are preceded by an odd number of backslashes,
|
||||
// which means they're escaped quotes.
|
||||
$escaped_quotes = preg_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $tokens[$i], $matches);
|
||||
$unescaped_quotes = $total_quotes - $escaped_quotes;
|
||||
|
||||
|
||||
// If the number of unescaped quotes is even, then the delimiter
|
||||
// did NOT occur inside a string literal.
|
||||
if (($unescaped_quotes % 2) == 0) {
|
||||
@@ -1367,7 +1366,7 @@ class FroxlorInstall
|
||||
// which means they're escaped quotes.
|
||||
$escaped_quotes = preg_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $tokens[$j], $matches);
|
||||
$unescaped_quotes = $total_quotes - $escaped_quotes;
|
||||
|
||||
|
||||
if (($unescaped_quotes % 2) == 1) {
|
||||
// odd number of unescaped quotes. In combination with the previous incomplete
|
||||
// statement(s), we now have a complete statement. (2 odds always make an even)
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
* @package Language
|
||||
*
|
||||
*/
|
||||
|
||||
$lng['requirements']['title'] = 'Checking system requirements...';
|
||||
$lng['requirements']['installed'] = 'installed';
|
||||
$lng['requirements']['not_true'] = 'no';
|
||||
@@ -87,8 +86,8 @@ $lng['install']['changing_data'] = 'Adjusting settings...';
|
||||
$lng['install']['creating_entries'] = 'Inserting new values...';
|
||||
$lng['install']['adding_admin_user'] = 'Creating admin-account...';
|
||||
$lng['install']['creating_configfile'] = 'Creating configfile...';
|
||||
$lng['install']['creating_configfile_temp'] = 'File was saved in /tmp/userdata.inc.php, please move to '.dirname(dirname(__DIR__)).'/lib/.';
|
||||
$lng['install']['creating_configfile_failed'] = 'Could not create '.dirname(dirname(__DIR__)).'/lib/userdata.inc.php, please create it manually with the following content:';
|
||||
$lng['install']['creating_configfile_temp'] = 'File was saved in /tmp/userdata.inc.php, please move to ' . dirname(dirname(__DIR__)) . '/lib/.';
|
||||
$lng['install']['creating_configfile_failed'] = 'Could not create ' . dirname(dirname(__DIR__)) . '/lib/userdata.inc.php, please create it manually with the following content:';
|
||||
$lng['install']['froxlor_succ_installed'] = 'Froxlor was installed successfully.';
|
||||
|
||||
$lng['click_here_to_refresh'] = 'Click here to check again';
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
* @package Language
|
||||
*
|
||||
*/
|
||||
|
||||
$lng['requirements']['title'] = 'Vérification des prérequis système...';
|
||||
$lng['requirements']['installed'] = 'installé';
|
||||
$lng['requirements']['not_true'] = 'non';
|
||||
@@ -77,8 +76,8 @@ $lng['install']['changing_data'] = 'Ajustement des paramètres...';
|
||||
$lng['install']['creating_entries'] = 'Insertion des nouvelles valeurs...';
|
||||
$lng['install']['adding_admin_user'] = 'Création du compte administrateur...';
|
||||
$lng['install']['creating_configfile'] = 'Création du fichier de configuration...';
|
||||
$lng['install']['creating_configfile_temp'] = 'Le fichier a été enregistré dans /tmp/userdata.inc.php, merci de le déplacer dans '.dirname(dirname(__DIR__)).'/lib/.';
|
||||
$lng['install']['creating_configfile_failed'] = 'Impossible de créer '.dirname(dirname(__DIR__)).'/lib/userdata.inc.php, merci de le créer manuellement avec le contenu suivant:';
|
||||
$lng['install']['creating_configfile_temp'] = 'Le fichier a été enregistré dans /tmp/userdata.inc.php, merci de le déplacer dans ' . dirname(dirname(__DIR__)) . '/lib/.';
|
||||
$lng['install']['creating_configfile_failed'] = 'Impossible de créer ' . dirname(dirname(__DIR__)) . '/lib/userdata.inc.php, merci de le créer manuellement avec le contenu suivant:';
|
||||
$lng['install']['froxlor_succ_installed'] = 'Froxlor a été installé avec succès.';
|
||||
|
||||
$lng['click_here_to_refresh'] = 'Cliquez ici pour vérifier à nouveau';
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
* @package Language
|
||||
*
|
||||
*/
|
||||
|
||||
$lng['requirements']['title'] = 'Prüfe Systemvoraussetzungen...';
|
||||
$lng['requirements']['installed'] = 'installiert';
|
||||
$lng['requirements']['not_true'] = 'nein';
|
||||
@@ -87,8 +86,8 @@ $lng['install']['changing_data'] = 'Einstellungen anpassen...';
|
||||
$lng['install']['creating_entries'] = 'Trage neue Werte ein...';
|
||||
$lng['install']['adding_admin_user'] = 'Erstelle Admin-Benutzer...';
|
||||
$lng['install']['creating_configfile'] = 'Erstelle Konfigurationsdatei...';
|
||||
$lng['install']['creating_configfile_temp'] = 'Datei wurde in /tmp/userdata.inc.php gespeichert, bitte nach '.dirname(dirname(__DIR__)).'/lib/ verschieben.';
|
||||
$lng['install']['creating_configfile_failed'] = 'Konnte '.dirname(dirname(__DIR__)).'/lib/userdata.inc.php nicht erstellen, bitte manuell mit folgendem Inhalt anlegen:';
|
||||
$lng['install']['creating_configfile_temp'] = 'Datei wurde in /tmp/userdata.inc.php gespeichert, bitte nach ' . dirname(dirname(__DIR__)) . '/lib/ verschieben.';
|
||||
$lng['install']['creating_configfile_failed'] = 'Konnte ' . dirname(dirname(__DIR__)) . '/lib/userdata.inc.php nicht erstellen, bitte manuell mit folgendem Inhalt anlegen:';
|
||||
$lng['install']['froxlor_succ_installed'] = 'Froxlor wurde erfolgreich installiert.';
|
||||
|
||||
$lng['click_here_to_refresh'] = 'Hier klicken, um erneut zu prüfen';
|
||||
|
||||
@@ -1,37 +1,65 @@
|
||||
@charset "UTF-8";
|
||||
/* RESET */
|
||||
html,body,div,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,fieldset,input { margin:0; padding:0; }
|
||||
h1,h2,h3,h4,h5,h6,pre,code,address,caption,cite,code,em,strong,th { font-size:1em; font-weight:400; font-style:normal; }
|
||||
ul,ol { list-style:none; }
|
||||
fieldset,img { border:none; }
|
||||
caption,th { text-align:left; }
|
||||
table { border-collapse:collapse; border-spacing:0; }
|
||||
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { display:block; }
|
||||
html, body, div, ul, ol, li, dl, dt, dd, h1, h2, h3, h4, h5, h6, pre,
|
||||
form, p, blockquote, fieldset, input {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6, pre, code, address, caption, cite, code, em,
|
||||
strong, th {
|
||||
font-size: 1em;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
fieldset, img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
caption, th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup,
|
||||
menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* TYPE */
|
||||
html,body {
|
||||
font:12px/18px 'Lucida Grande','Lucida Sans Unicode',Helvetica,Arial,Verdana,sans-serif;
|
||||
html, body {
|
||||
font: 12px/18px 'Lucida Grande', 'Lucida Sans Unicode', Helvetica, Arial,
|
||||
Verdana, sans-serif;
|
||||
background-color: #f5f5f5;
|
||||
color:#444;
|
||||
color: #444;
|
||||
-webkit-font-smoothing: subpixel-antialiased;
|
||||
}
|
||||
|
||||
body {
|
||||
margin:0;
|
||||
padding:0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.dark {
|
||||
background-color: #e9edf0;
|
||||
border-bottom:1px solid #d1d5d8;
|
||||
border-bottom: 1px solid #d1d5d8;
|
||||
}
|
||||
|
||||
header img {
|
||||
padding:10px 0 10px 10px;
|
||||
padding: 10px 0 10px 10px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
display:none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
h2, h3 {
|
||||
@@ -41,21 +69,20 @@ h2, h3 {
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size:17px;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
|
||||
img {
|
||||
border:0;
|
||||
vertical-align:middle;
|
||||
border: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
td a {
|
||||
text-decoration:none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.bradius {
|
||||
@@ -65,19 +92,19 @@ td a {
|
||||
|
||||
/* FOOTER */
|
||||
footer {
|
||||
clear:both;
|
||||
text-align:center;
|
||||
clear: both;
|
||||
text-align: center;
|
||||
color: #888;
|
||||
font-size:10px !important;
|
||||
font-size: 10px !important;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
footer a,footer a:active,footer a:visited {
|
||||
footer a, footer a:active, footer a:visited {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.install {
|
||||
background-color:#fff;
|
||||
background-color: #fff;
|
||||
margin: 20px auto 12px;
|
||||
width: 800px;
|
||||
}
|
||||
@@ -87,14 +114,14 @@ p {
|
||||
}
|
||||
|
||||
.installsec {
|
||||
margin-top:10px;
|
||||
padding:0;
|
||||
text-align:left;
|
||||
margin-top: 10px;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.installsec table {
|
||||
width:100%;
|
||||
padding:0 10px;
|
||||
width: 100%;
|
||||
padding: 0 10px;
|
||||
margin: 15px 0 15px 0;
|
||||
}
|
||||
|
||||
@@ -106,46 +133,46 @@ p {
|
||||
}
|
||||
|
||||
.installsec form {
|
||||
width:800px;
|
||||
margin:0 auto;
|
||||
padding:10px 0 0;
|
||||
text-align:left;
|
||||
width: 800px;
|
||||
margin: 0 auto;
|
||||
padding: 10px 0 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.installsec fieldset {
|
||||
border:0;
|
||||
float:left;
|
||||
clear:left;
|
||||
width:600px;
|
||||
margin:0 100px 10px;
|
||||
padding:0;
|
||||
border: 0;
|
||||
float: left;
|
||||
clear: left;
|
||||
width: 600px;
|
||||
margin: 0 100px 10px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.installsec fieldset p, .installsec fieldset h3{
|
||||
.installsec fieldset p, .installsec fieldset h3 {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.installsec legend {
|
||||
display:none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.installsec label {
|
||||
float:left;
|
||||
margin-right:0;
|
||||
margin-top:8px;
|
||||
text-align:left;
|
||||
float: left;
|
||||
margin-right: 0;
|
||||
margin-top: 8px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
p.submit {
|
||||
text-align:right;
|
||||
padding-right:46px;
|
||||
text-align: right;
|
||||
padding-right: 46px;
|
||||
}
|
||||
|
||||
.installsec aside {
|
||||
border-top:1px solid #d1d5d8;
|
||||
clear:both;
|
||||
float:none;
|
||||
width:auto;
|
||||
border-top: 1px solid #d1d5d8;
|
||||
clear: both;
|
||||
float: none;
|
||||
width: auto;
|
||||
text-align: right;
|
||||
padding: 10px;
|
||||
}
|
||||
@@ -153,140 +180,143 @@ p.submit {
|
||||
.line {
|
||||
border: 0;
|
||||
width: 800px;
|
||||
border-bottom:1px solid #d1d5d8;
|
||||
border-bottom: 1px solid #d1d5d8;
|
||||
}
|
||||
|
||||
.messagewrapper {
|
||||
width:650px;
|
||||
margin:0 auto;
|
||||
padding:120px 0 0;
|
||||
overflow:hidden;
|
||||
width: 650px;
|
||||
margin: 0 auto;
|
||||
padding: 120px 0 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.messagewrapperfull {
|
||||
width:100%;
|
||||
margin:0 auto;
|
||||
padding:0;
|
||||
overflow:hidden;
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.overviewsearch {
|
||||
position:absolute;
|
||||
top:155px;
|
||||
right:36px;
|
||||
font-size:80%;
|
||||
position: absolute;
|
||||
top: 155px;
|
||||
right: 36px;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
.overviewadd {
|
||||
padding:10px;
|
||||
font-weight:700;
|
||||
padding: 10px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/*
|
||||
* error message display
|
||||
*/
|
||||
.errorcontainer {
|
||||
background:url(../img/icons/error_big.png) 10px center no-repeat #ffedef;
|
||||
border:1px solid #ffc2ca;
|
||||
padding:10px 10px 10px 68px!important;
|
||||
background: url(../img/icons/error_big.png) 10px center no-repeat
|
||||
#ffedef;
|
||||
border: 1px solid #ffc2ca;
|
||||
padding: 10px 10px 10px 68px !important;
|
||||
margin: 10px 0 10px 0 !important;
|
||||
text-align:left!important;
|
||||
overflow:hidden;
|
||||
text-align: left !important;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 0 black;
|
||||
}
|
||||
|
||||
.errortitle {
|
||||
font-weight:700;
|
||||
color:#c00!important;
|
||||
font-weight: 700;
|
||||
color: #c00 !important;
|
||||
}
|
||||
|
||||
.error {
|
||||
font-weight:400!important;
|
||||
color:#c00!important;
|
||||
font-weight: 400 !important;
|
||||
color: #c00 !important;
|
||||
}
|
||||
|
||||
/*
|
||||
* warning message display
|
||||
*/
|
||||
.warningcontainer,.ui-dialog {
|
||||
background:url(../img/icons/warning_big.png) 10px center no-repeat #fffecc;
|
||||
border:1px solid #f3c37e;
|
||||
padding:10px 10px 10px 68px !important;
|
||||
.warningcontainer, .ui-dialog {
|
||||
background: url(../img/icons/warning_big.png) 10px center no-repeat
|
||||
#fffecc;
|
||||
border: 1px solid #f3c37e;
|
||||
padding: 10px 10px 10px 68px !important;
|
||||
margin: 10px 0 10px 0 !important;
|
||||
text-align:left!important;
|
||||
overflow:hidden;
|
||||
text-align: left !important;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 0 black;
|
||||
}
|
||||
|
||||
.ui-dialog {
|
||||
padding: 10px !important;
|
||||
}
|
||||
|
||||
.warningtitle,.ui-dialog-titlebar {
|
||||
font-weight:700;
|
||||
color:#D57D00;
|
||||
.warningtitle, .ui-dialog-titlebar {
|
||||
font-weight: 700;
|
||||
color: #D57D00;
|
||||
}
|
||||
|
||||
.warning,.ui-dialog-content {
|
||||
color:#D57D00!important;
|
||||
.warning, .ui-dialog-content {
|
||||
color: #D57D00 !important;
|
||||
}
|
||||
|
||||
/*
|
||||
* success message display
|
||||
*/
|
||||
.successcontainer {
|
||||
background:url(../img/icons/ok_big.png) 10px center no-repeat #E2F9E3;
|
||||
border:1px solid #9C9;
|
||||
padding:10px 10px 10px 68px!important;
|
||||
background: url(../img/icons/ok_big.png) 10px center no-repeat #E2F9E3;
|
||||
border: 1px solid #9C9;
|
||||
padding: 10px 10px 10px 68px !important;
|
||||
margin: 10px 0 10px 0 !important;
|
||||
text-align:left!important;
|
||||
overflow:hidden;
|
||||
text-align: left !important;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 0 black;
|
||||
}
|
||||
|
||||
.successtitle {
|
||||
font-weight:700;
|
||||
color:#060!important;
|
||||
font-weight: 700;
|
||||
color: #060 !important;
|
||||
}
|
||||
|
||||
.success {
|
||||
font-weight:400!important;
|
||||
font-weight: 400 !important;
|
||||
}
|
||||
|
||||
/*
|
||||
* neutral/info message display
|
||||
*/
|
||||
.neutralcontainer {
|
||||
background:url(../img/icons/info_big.png) 10px center no-repeat #d2eaf6;
|
||||
border:1px solid #b7d8ed;
|
||||
padding:10px 10px 10px 68px!important;
|
||||
background: url(../img/icons/info_big.png) 10px center no-repeat #d2eaf6;
|
||||
border: 1px solid #b7d8ed;
|
||||
padding: 10px 10px 10px 68px !important;
|
||||
margin: 10px 0 10px 0 !important;
|
||||
text-align:left!important;
|
||||
overflow:hidden;
|
||||
text-align: left !important;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 0 black;
|
||||
}
|
||||
|
||||
.neutraltitle {
|
||||
font-weight:700;
|
||||
color:#3188c1!important;
|
||||
font-weight: 700;
|
||||
color: #3188c1 !important;
|
||||
}
|
||||
|
||||
.neutral {
|
||||
font-weight:400!important;
|
||||
color:#3188c1!important;
|
||||
font-weight: 400 !important;
|
||||
color: #3188c1 !important;
|
||||
}
|
||||
|
||||
/* std hyperlink */
|
||||
a,a:active,a:visited {
|
||||
color:#176fa1;
|
||||
text-decoration:none;
|
||||
a, a:active, a:visited {
|
||||
color: #176fa1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration:underline;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.infotext {
|
||||
font-size:11px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -294,28 +324,28 @@ a:hover {
|
||||
*/
|
||||
.main {
|
||||
margin: 105px 10px 0 240px;
|
||||
background-color:#fff;
|
||||
background-color: #fff;
|
||||
padding: 30px 30px 30px 30px;
|
||||
min-height:400px;
|
||||
min-height: 400px;
|
||||
}
|
||||
|
||||
.noborder {
|
||||
width:100%;
|
||||
border-spacing:0;
|
||||
border-collapse:separate;
|
||||
width: 100%;
|
||||
border-spacing: 0;
|
||||
border-collapse: separate;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.noborder td {
|
||||
border:0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
table {
|
||||
width:100%;
|
||||
border-spacing:0;
|
||||
border:1px solid #d1d5d8;
|
||||
border-collapse:separate;
|
||||
box-shadow:0 0 0 black !important;
|
||||
width: 100%;
|
||||
border-spacing: 0;
|
||||
border: 1px solid #d1d5d8;
|
||||
border-collapse: separate;
|
||||
box-shadow: 0 0 0 black !important;
|
||||
}
|
||||
|
||||
table thead th, table th {
|
||||
@@ -326,6 +356,7 @@ table thead th, table th {
|
||||
background-color: #e9edf0;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
table thead:first-child th, table:first-child th {
|
||||
border-top: none !important;
|
||||
}
|
||||
@@ -333,16 +364,21 @@ table thead:first-child th, table:first-child th {
|
||||
table th {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
th a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
th a img {
|
||||
|
||||
}
|
||||
|
||||
th a:nth-child(odd) img {
|
||||
position: relative;
|
||||
top: -5px;
|
||||
left: 4px;
|
||||
}
|
||||
|
||||
th a:nth-child(even) img {
|
||||
position: relative;
|
||||
top: 3px;
|
||||
@@ -358,33 +394,34 @@ table thead:first-child th {
|
||||
}
|
||||
|
||||
table tbody td {
|
||||
border-bottom:1px dotted #ccc;
|
||||
border-bottom: 1px dotted #ccc;
|
||||
}
|
||||
|
||||
table tbody tr:last-child td {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.formtable {
|
||||
width: 100%;
|
||||
border-spacing:0;
|
||||
border:0;
|
||||
border-collapse:separate;
|
||||
margin:0 0 0;
|
||||
border-spacing: 0;
|
||||
border: 0;
|
||||
border-collapse: separate;
|
||||
margin: 0 0 0;
|
||||
}
|
||||
|
||||
.formtable tbody td {
|
||||
border:0;
|
||||
border-bottom:1px dotted #ccc;
|
||||
border: 0;
|
||||
border-bottom: 1px dotted #ccc;
|
||||
min-height: 20px;
|
||||
}
|
||||
|
||||
.formtable label {
|
||||
float:none;
|
||||
display:block;
|
||||
padding:0;
|
||||
margin:0;
|
||||
width:100%;
|
||||
text-align:left;
|
||||
float: none;
|
||||
display: block;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
td {
|
||||
@@ -393,47 +430,47 @@ td {
|
||||
}
|
||||
|
||||
table tfoot td {
|
||||
height:25px;
|
||||
height: 25px;
|
||||
border-top: 1px solid #d1d5d8;
|
||||
background-color: #f2f8fa;
|
||||
}
|
||||
|
||||
.tfootleft {
|
||||
text-align:left;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.maintitle {
|
||||
padding-top:20px;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
/* input elements */
|
||||
input {
|
||||
background: #fff url(../img/text_align_left.png) no-repeat 5px 4px;
|
||||
color: #333;
|
||||
padding:2px 4px 2px 24px;
|
||||
height:22px;
|
||||
padding: 2px 4px 2px 24px;
|
||||
height: 22px;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin-bottom: 5px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
textarea {
|
||||
background:#fff url(../img/text_align_left.png) no-repeat 5px 4px;
|
||||
background: #fff url(../img/text_align_left.png) no-repeat 5px 4px;
|
||||
color: #333;
|
||||
padding:4px 4px 2px 24px;
|
||||
border:1px solid #d9d9d9;
|
||||
padding: 4px 4px 2px 24px;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin-bottom: 5px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
input[type="password"] {
|
||||
background:#fff url(../img/password.png) no-repeat 5px 4px;
|
||||
background: #fff url(../img/password.png) no-repeat 5px 4px;
|
||||
}
|
||||
|
||||
/*
|
||||
* BUTTONS
|
||||
*/
|
||||
input[type="button"],input[type="submit"],input[type="reset"] {
|
||||
input[type="button"], input[type="submit"], input[type="reset"] {
|
||||
margin: 0 5px;
|
||||
padding: 5px 14px;
|
||||
outline: 0;
|
||||
@@ -443,45 +480,56 @@ input[type="button"],input[type="submit"],input[type="reset"] {
|
||||
height: 26px;
|
||||
background-image: none;
|
||||
}
|
||||
.loginsec input[type="button"], .loginsec input[type="submit"], .loginsec input[type="reset"] {
|
||||
|
||||
.loginsec input[type="button"], .loginsec input[type="submit"],
|
||||
.loginsec input[type="reset"] {
|
||||
margin: 0 1px;
|
||||
}
|
||||
input[type="button"]:hover,input[type="submit"]:hover,input[type="reset"]:hover {
|
||||
color: #333;
|
||||
background-color: #dcdcdc;
|
||||
|
||||
input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover
|
||||
{
|
||||
color: #333;
|
||||
background-color: #dcdcdc;
|
||||
}
|
||||
input[type="button"]:active,input[type="submit"]:active,input[type="reset"]:active {
|
||||
-webkit-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
|
||||
-moz-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
|
||||
box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
|
||||
color: white !important;
|
||||
|
||||
input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active
|
||||
{
|
||||
-webkit-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
|
||||
-moz-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
|
||||
box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.25);
|
||||
color: white !important;
|
||||
}
|
||||
input[type="submit"],input[class="yesbutton"] {
|
||||
color: white;
|
||||
background-color: #35aa47;
|
||||
}
|
||||
input[type="submit"]:hover,input[class="yesbutton"]:hover {
|
||||
|
||||
input[type="submit"], input[class="yesbutton"] {
|
||||
color: white;
|
||||
background-color: #1d943b;
|
||||
}
|
||||
input[class="submit"]:active,input[class="yesbutton"]:active {
|
||||
background-color: #35aa47;
|
||||
}
|
||||
input[class="nobutton"],input[type="reset"] {
|
||||
color: white;
|
||||
background-color: #d84a38;
|
||||
}
|
||||
input[class="nobutton"]:hover,input[type="reset"]:hover {
|
||||
|
||||
input[type="submit"]:hover, input[class="yesbutton"]:hover {
|
||||
color: white;
|
||||
background-color: #c53727;
|
||||
}
|
||||
input[class="nobutton"]:active,input[type="reset"]:active {
|
||||
background-color: #dd4b39;
|
||||
background-color: #1d943b;
|
||||
}
|
||||
|
||||
input[class="submit"]:active, input[class="yesbutton"]:active {
|
||||
background-color: #35aa47;
|
||||
}
|
||||
|
||||
input[class="nobutton"], input[type="reset"] {
|
||||
color: white;
|
||||
background-color: #d84a38;
|
||||
}
|
||||
|
||||
input[class="nobutton"]:hover, input[type="reset"]:hover {
|
||||
color: white;
|
||||
background-color: #c53727;
|
||||
}
|
||||
|
||||
input[class="nobutton"]:active, input[type="reset"]:active {
|
||||
background-color: #dd4b39;
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
background:#dae7ee;
|
||||
background: #dae7ee;
|
||||
padding: 0;
|
||||
margin: 0 5px 0 0;
|
||||
vertical-align: middle;
|
||||
@@ -491,72 +539,99 @@ input[type="checkbox"] {
|
||||
input[type="radio"] {
|
||||
vertical-align: middle;
|
||||
margin: 0 10px 0 10px;
|
||||
height:22px;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
select {
|
||||
background:#fff;
|
||||
padding:4px;
|
||||
background: #fff;
|
||||
padding: 4px;
|
||||
color: #333;
|
||||
border:1px solid #d9d9d9;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin-bottom: 5px;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
select.dropdown {
|
||||
padding: 2px 4px 2px 24px;
|
||||
height: 26px;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin-bottom: 5px;
|
||||
border-radius: 3px;
|
||||
background: url(../../../../templates/Sparkle/assets/img/icons/down.png) no-repeat 9px;
|
||||
background: url(../../../../templates/Sparkle/assets/img/icons/down.png)
|
||||
no-repeat 9px;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.maintable {
|
||||
width:90%;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.update_progess {
|
||||
padding:2em;
|
||||
text-align:left;
|
||||
padding: 2em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.preconfig {
|
||||
text-align:left;
|
||||
margin-top:20px;
|
||||
margin-bottom:5px;
|
||||
margin-right:15px;
|
||||
margin-left:15px;
|
||||
text-align: left;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 5px;
|
||||
margin-right: 15px;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.preconfigitem {
|
||||
padding:.15em;
|
||||
border-bottom:1px solid #ccc;
|
||||
padding: .15em;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.preconfdesc {
|
||||
display:block;
|
||||
margin-bottom:.5em;
|
||||
font-size:120%;
|
||||
}
|
||||
.installprogress {
|
||||
width: 100%;
|
||||
background-color:#e4e4e4;
|
||||
height:5px;
|
||||
border-bottom:1px solid #d1d5d8;
|
||||
}
|
||||
.installprogress .bar {
|
||||
background-color: #35aa47;
|
||||
height:5px;
|
||||
display: block;
|
||||
margin-bottom: .5em;
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
.red { color: #ff0000; }
|
||||
.green { color: green; }
|
||||
.orange { color: orange; }
|
||||
.blue { color: blue; }
|
||||
.install-block { width: 65%; }
|
||||
.install-step { width: 250px; }
|
||||
.install-h3 { text-align: center; }
|
||||
.install-text { margin: 20px 20px 0 !important; }
|
||||
.installprogress {
|
||||
width: 100%;
|
||||
background-color: #e4e4e4;
|
||||
height: 5px;
|
||||
border-bottom: 1px solid #d1d5d8;
|
||||
}
|
||||
|
||||
.installprogress .bar {
|
||||
background-color: #35aa47;
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: #ff0000;
|
||||
}
|
||||
|
||||
.green {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.orange {
|
||||
color: orange;
|
||||
}
|
||||
|
||||
.blue {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.install-block {
|
||||
width: 65%;
|
||||
}
|
||||
|
||||
.install-step {
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.install-h3 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.install-text {
|
||||
margin: 20px 20px 0 !important;
|
||||
}
|
||||
Reference in New Issue
Block a user