Compare commits
34 Commits
0.9.30-rc1
...
0.9.30
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ac4b87a84 | ||
|
|
b81d163e1d | ||
|
|
d0315b7ed3 | ||
|
|
3c76594abb | ||
|
|
db5aa1a98c | ||
|
|
4a61df8ae7 | ||
|
|
95da4e9eab | ||
|
|
510c429956 | ||
|
|
55d09ac569 | ||
|
|
d2923228da | ||
|
|
a86d2d2df3 | ||
|
|
67c8953a84 | ||
|
|
d4c4e31804 | ||
|
|
78807a8ea8 | ||
|
|
fa4fbdc7c4 | ||
|
|
036bd61ded | ||
|
|
cb556093c1 | ||
|
|
729b52cf0a | ||
|
|
0e6aec2533 | ||
|
|
993d5114e3 | ||
|
|
4312ed9181 | ||
|
|
0eb8e0c55c | ||
|
|
6a47752665 | ||
|
|
5231ae2383 | ||
|
|
03ba127fab | ||
|
|
6b93b973e2 | ||
|
|
64e646b526 | ||
|
|
9d66507050 | ||
|
|
b10b8df791 | ||
|
|
e40c7289c4 | ||
|
|
e38e4532b3 | ||
|
|
7bd0fdfa6a | ||
|
|
0b6518a751 | ||
|
|
96faf31618 |
@@ -81,7 +81,7 @@ return array(
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'apacheconf_htpasswddir',
|
||||
'type' => 'string',
|
||||
'string_type' => 'dir',
|
||||
'string_type' => 'confdir',
|
||||
'default' => '/etc/apache2/htpasswd/',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
@@ -99,8 +99,8 @@ return array(
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'customer_ssl_path',
|
||||
'type' => 'string',
|
||||
'string_type' => 'dir',
|
||||
'default' => '/etc/apache2/ssl/',
|
||||
'string_type' => 'confdir',
|
||||
'default' => '/etc/ssl/froxlor-custom/',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_phpappendopenbasedir' => array(
|
||||
|
||||
@@ -31,6 +31,15 @@ return array(
|
||||
'save_method' => 'storeSettingField',
|
||||
'overview_option' => true
|
||||
),
|
||||
'system_ssl_cipher_list' => array(
|
||||
'label' => $lng['serversettings']['ssl']['ssl_cipher_list'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'ssl_cipher_list',
|
||||
'type' => 'string',
|
||||
'string_emptyallowed' => false,
|
||||
'default' => 'ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_ssl_cert_file' => array(
|
||||
'label' => $lng['serversettings']['ssl']['ssl_cert_file'],
|
||||
'settinggroup' => 'system',
|
||||
@@ -51,20 +60,20 @@ return array(
|
||||
'default' => '/etc/apache2/apache2.key',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_ssl_ca_file' => array(
|
||||
'label' => $lng['serversettings']['ssl']['ssl_ca_file'],
|
||||
'system_ssl_cert_chainfile' => array(
|
||||
'label' => $lng['admin']['ipsandports']['ssl_cert_chainfile'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'ssl_ca_file',
|
||||
'varname' => 'ssl_cert_chainfile',
|
||||
'type' => 'string',
|
||||
'string_type' => 'file',
|
||||
'string_emptyallowed' => true,
|
||||
'default' => '',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_ssl_cert_chainfile' => array(
|
||||
'label' => $lng['admin']['ipsandports']['ssl_cert_chainfile'],
|
||||
'system_ssl_ca_file' => array(
|
||||
'label' => $lng['serversettings']['ssl']['ssl_ca_file'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'ssl_cert_chainfile',
|
||||
'varname' => 'ssl_ca_file',
|
||||
'type' => 'string',
|
||||
'string_type' => 'file',
|
||||
'string_emptyallowed' => true,
|
||||
|
||||
@@ -36,7 +36,7 @@ return array(
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'mod_fcgid_configdir',
|
||||
'type' => 'string',
|
||||
'string_type' => 'dir',
|
||||
'string_type' => 'confdir',
|
||||
'default' => '/var/www/php-fcgi-scripts/',
|
||||
'plausibility_check_method' => 'checkPathConflicts',
|
||||
'save_method' => 'storeSettingField',
|
||||
|
||||
@@ -79,7 +79,7 @@ return array(
|
||||
'settinggroup' => 'phpfpm',
|
||||
'varname' => 'configdir',
|
||||
'type' => 'string',
|
||||
'string_type' => 'dir',
|
||||
'string_type' => 'confdir',
|
||||
'default' => '/etc/php-fpm.d/',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
@@ -88,7 +88,7 @@ return array(
|
||||
'settinggroup' => 'phpfpm',
|
||||
'varname' => 'aliasconfigdir',
|
||||
'type' => 'string',
|
||||
'string_type' => 'dir',
|
||||
'string_type' => 'confdir',
|
||||
'default' => '/var/www/php-fpm/',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
|
||||
@@ -1065,6 +1065,8 @@ if($page == 'domains'
|
||||
if (isset($_POST['ssl_ipandport']) && is_array($_POST['ssl_ipandport'])) {
|
||||
foreach ($_POST['ssl_ipandport'] as $ssl_ipandport) {
|
||||
if (trim($ssl_ipandport) == "") continue;
|
||||
// fix if ip/port got de-checked and it was the last one
|
||||
if (trim($ssl_ipandport) < 1) continue;
|
||||
$ssl_ipandport = intval($ssl_ipandport);
|
||||
$ssl_ipandport_check = $db->query_first("SELECT `id`, `ip`, `port` FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `id` = '" . $db->escape($ssl_ipandport) . "' ");
|
||||
if (!isset($ssl_ipandport_check['id'])
|
||||
|
||||
@@ -148,18 +148,6 @@ if($page == 'overview')
|
||||
$cron_last_runs = getCronjobsLastRun();
|
||||
$outstanding_tasks = getOutstandingTasks();
|
||||
|
||||
$opentickets = 0;
|
||||
$opentickets = $db->query_first('SELECT COUNT(`id`) as `count` FROM `' . TABLE_PANEL_TICKETS . '`
|
||||
WHERE `answerto` = "0" AND (`status` = "0" OR `status` = "1")
|
||||
AND `lastreplier`="0" AND `adminid` = "' . $userinfo['adminid'] . '"');
|
||||
$awaitingtickets = $opentickets['count'];
|
||||
$awaitingtickets_text = '';
|
||||
|
||||
if($opentickets > 0)
|
||||
{
|
||||
$awaitingtickets_text = strtr($lng['ticket']['awaitingticketreply'], array('%s' => '<a href="admin_tickets.php?page=tickets&s=' . $s . '">' . $opentickets['count'] . '</a>'));
|
||||
}
|
||||
|
||||
if(function_exists('sys_getloadavg'))
|
||||
{
|
||||
$loadArray = sys_getloadavg();
|
||||
|
||||
@@ -60,18 +60,6 @@ if ($page == 'overview') {
|
||||
$userinfo['traffic'] = round($userinfo['traffic'] / (1024 * 1024), $settings['panel']['decimal_places']);
|
||||
$userinfo['traffic_used'] = round($userinfo['traffic_used'] / (1024 * 1024), $settings['panel']['decimal_places']);
|
||||
$userinfo = str_replace_array('-1', $lng['customer']['unlimited'], $userinfo, 'diskspace traffic mysqls emails email_accounts email_forwarders email_quota email_autoresponder ftps tickets subdomains aps_packages');
|
||||
$opentickets = 0;
|
||||
$opentickets = $db->query_first('SELECT COUNT(`id`) as `count` FROM `' . TABLE_PANEL_TICKETS . '`
|
||||
WHERE `customerid` = "' . $userinfo['customerid'] . '"
|
||||
AND `answerto` = "0"
|
||||
AND (`status` = "0" OR `status` = "2")
|
||||
AND `lastreplier`="1"');
|
||||
$awaitingtickets = $opentickets['count'];
|
||||
$awaitingtickets_text = '';
|
||||
|
||||
if ($opentickets > 0) {
|
||||
$awaitingtickets_text = strtr($lng['ticket']['awaitingticketreply'], array('%s' => '<a href="customer_tickets.php?page=tickets&s=' . $s . '">' . $opentickets['count'] . '</a>'));
|
||||
}
|
||||
|
||||
eval("echo \"" . getTemplate('index/index') . "\";");
|
||||
} elseif ($page == 'change_password') {
|
||||
|
||||
@@ -503,6 +503,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
|
||||
('system', 'mod_fcgid_defaultini_ownvhost', '1'),
|
||||
('system', 'awstats_icons', '/usr/share/awstats/icon/'),
|
||||
('system', 'ssl_cert_chainfile', ''),
|
||||
('system', 'ssl_cipher_list', 'ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH'),
|
||||
('system', 'nginx_php_backend', '127.0.0.1:8888'),
|
||||
('system', 'perl_server', 'unix:/var/run/nginx/cgiwrap-dispatch.sock'),
|
||||
('system', 'phpreload_command', ''),
|
||||
@@ -510,7 +511,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
|
||||
('system', 'documentroot_use_default_value', '0'),
|
||||
('system', 'passwordcryptfunc', '1'),
|
||||
('system', 'axfrservers', ''),
|
||||
('system', 'customer_ssl_path', '/etc/apache2/ssl/'),
|
||||
('system', 'customer_ssl_path', '/etc/ssl/froxlor-custom/'),
|
||||
('panel', 'decimal_places', '4'),
|
||||
('panel', 'adminmail', 'admin@SERVERNAME'),
|
||||
('panel', 'phpmyadmin_url', ''),
|
||||
@@ -538,7 +539,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
|
||||
('panel', 'phpconfigs_hidestdsubdomain', '0'),
|
||||
('panel', 'allow_theme_change_admin', '1'),
|
||||
('panel', 'allow_theme_change_customer', '1'),
|
||||
('panel', 'version', '0.9.30-rc1');
|
||||
('panel', 'version', '0.9.30');
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `panel_tasks`;
|
||||
|
||||
@@ -131,9 +131,8 @@ p {
|
||||
|
||||
.installsec label {
|
||||
float:left;
|
||||
width:26em;
|
||||
margin-right:1em;
|
||||
margin-top:6px;
|
||||
margin-right:0;
|
||||
margin-top:8px;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
@@ -420,6 +419,7 @@ input {
|
||||
height:22px;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin-bottom: 5px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
textarea {
|
||||
@@ -427,70 +427,73 @@ textarea {
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* BUTTONS
|
||||
*/
|
||||
input[type="button"],input[type="submit"],input[type="reset"] {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #79bbff), color-stop(1, #378de5) );
|
||||
background:-moz-linear-gradient( center top, #79bbff 5%, #378de5 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#79bbff', endColorstr='#378de5');
|
||||
background-color:#79bbff;
|
||||
-moz-border-radius:5px;
|
||||
-webkit-border-radius:5px;
|
||||
border-radius:5px;
|
||||
display:inline-block;
|
||||
color:#ffffff;
|
||||
padding:2px 24px 2px 24px;
|
||||
text-decoration:none;
|
||||
text-shadow:1px 1px 0px #528ecc;
|
||||
margin: 0 5px;
|
||||
padding: 5px 14px;
|
||||
outline: 0;
|
||||
border: 0;
|
||||
background-color: #eee;
|
||||
min-width: 80px;
|
||||
height: 26px;
|
||||
margin: 0 3px 0 3px;
|
||||
background-image: none;
|
||||
border-width: 0px;
|
||||
}
|
||||
.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 {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #378de5), color-stop(1, #79bbff) );
|
||||
background:-moz-linear-gradient( center top, #378de5 5%, #79bbff 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#378de5', endColorstr='#79bbff');
|
||||
background-color:#378de5;
|
||||
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="submit"],input[class="yesbutton"] {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #9dce2c), color-stop(1, #8cb82b) );
|
||||
background:-moz-linear-gradient( center top, #9dce2c 5%, #8cb82b 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9dce2c', endColorstr='#8cb82b');
|
||||
background-color:#9dce2c;
|
||||
text-shadow:1px 1px 0px #aade7c;
|
||||
color: white;
|
||||
background-color: #35aa47;
|
||||
}
|
||||
input[type="submit"]:hover,input[class="yesbutton"]:hover {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #8cb82b), color-stop(1, #9dce2c) );
|
||||
background:-moz-linear-gradient( center top, #8cb82b 5%, #9dce2c 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#8cb82b', endColorstr='#9dce2c');
|
||||
background-color:#8cb82b;
|
||||
color: white;
|
||||
background-color: #1d943b;
|
||||
}
|
||||
input[class="submit"]:active,input[class="yesbutton"]:active {
|
||||
background-color: #35aa47;
|
||||
}
|
||||
|
||||
input[class="nobutton"],input[type="reset"] {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #fe1a00), color-stop(1, #ce0100) );
|
||||
background:-moz-linear-gradient( center top, #fe1a00 5%, #ce0100 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fe1a00', endColorstr='#ce0100');
|
||||
background-color:#fe1a00;
|
||||
text-shadow:1px 1px 0px #b23e35;
|
||||
color: white;
|
||||
background-color: #d84a38;
|
||||
}
|
||||
input[class="nobutton"]:hover,input[type="reset"]:hover {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ce0100), color-stop(1, #fe1a00) );
|
||||
background:-moz-linear-gradient( center top, #ce0100 5%, #fe1a00 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ce0100', endColorstr='#fe1a00');
|
||||
background-color:#ce0100;
|
||||
color: white;
|
||||
background-color: #c53727;
|
||||
}
|
||||
input[class="nobutton"]:active,input[type="reset"]:active {
|
||||
background-color: #dd4b39;
|
||||
}
|
||||
|
||||
|
||||
input[type="checkbox"] {
|
||||
background:#dae7ee;
|
||||
padding: 0;
|
||||
margin: 0 20px 0 0;
|
||||
margin: 0 5px 0 0;
|
||||
vertical-align: middle;
|
||||
height: 26px;
|
||||
}
|
||||
|
||||
input[type="radio"] { /*the span element that immediately follow the radio button */
|
||||
input[type="radio"] {
|
||||
margin: 0 10px 0 10px;
|
||||
height:22px;
|
||||
}
|
||||
@@ -500,6 +503,18 @@ select {
|
||||
padding:4px;
|
||||
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;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.maintable {
|
||||
@@ -528,4 +543,14 @@ select {
|
||||
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;
|
||||
}
|
||||
@@ -1,14 +1,20 @@
|
||||
<form action="{$formaction}" method="get">
|
||||
<fieldset>
|
||||
<legend>{$this->_lng['install']['lngtitle']}</legend>
|
||||
<p>
|
||||
<label for="language">{$this->_lng['install']['language']}:</label>
|
||||
<select name="language" id="language">
|
||||
{$language_options}
|
||||
</select>
|
||||
<input type="hidden" name="check" value="1" />
|
||||
<input type="submit" name="chooselang" value="{$this->_lng['install']['lngbtn_go']}" />
|
||||
</p>
|
||||
<table class="noborder">
|
||||
<tr>
|
||||
<td>
|
||||
<label for="language">{$this->_lng['install']['language']}:</label>
|
||||
</td>
|
||||
<td align="right">
|
||||
<select name="language" id="language" class="dropdown">
|
||||
{$language_options}
|
||||
</select>
|
||||
<input type="hidden" name="check" value="1" />
|
||||
<input type="submit" name="chooselang" value="{$this->_lng['install']['lngbtn_go']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
<hr class="line">
|
||||
@@ -2126,7 +2126,11 @@ if (isFroxlorVersion('0.9.29-dev3')) {
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;");
|
||||
lastStepStatus(0);
|
||||
|
||||
$system_customersslpath = isset($_POST['system_customersslpath']) ? makeCorrectDir($_POST['system_customersslpath']) : '/etc/apache2/ssl/';
|
||||
$system_customersslpath = isset($_POST['system_customersslpath']) ? makeCorrectDir($_POST['system_customersslpath']) : '/etc/ssl/froxlor-custom/';
|
||||
if (trim($system_customersslpath) == '/') {
|
||||
// prevent users from specifying nonsense here
|
||||
$system_customersslpath = '/etc/ssl/froxlor-custom/';
|
||||
}
|
||||
$db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'customer_ssl_path', '".$db->escape($system_customersslpath)."');");
|
||||
updateToVersion('0.9.29-dev4');
|
||||
}
|
||||
@@ -2238,9 +2242,15 @@ if (isFroxlorVersion('0.9.29.1-dev3')) {
|
||||
showUpdateStep("Updating from 0.9.29.1-dev3 to 0.9.29.1-dev4", true);
|
||||
lastStepStatus(0);
|
||||
|
||||
showUpdateStep("Removing old billing-field from admin-users");
|
||||
$db->query("ALTER TABLE `".TABLE_PANEL_ADMINS."` DROP `edit_billingdata`");
|
||||
lastStepStatus(0);
|
||||
// If you upgraded from SysCP the edit_billingdata field has been
|
||||
// removed in one of the first upgrades to froxlor. Sadly, one field
|
||||
// remained in the install.sql so we remove it now if it exists
|
||||
$bd_exists = $db->query("SHOW COLUMNS FROM `".TABLE_PANEL_ADMINS."` LIKE 'edit_billingdata';");
|
||||
if ($db->num_rows() > 0) {
|
||||
showUpdateStep("Removing old billing-field from admin-users");
|
||||
$db->query("ALTER TABLE `".TABLE_PANEL_ADMINS."` DROP `edit_billingdata`");
|
||||
lastStepStatus(0);
|
||||
}
|
||||
|
||||
updateToVersion('0.9.29.1-dev4');
|
||||
}
|
||||
@@ -2256,3 +2266,14 @@ if (isFroxlorVersion('0.9.30-dev1')) {
|
||||
lastStepStatus(0);
|
||||
updateToVersion('0.9.30-rc1');
|
||||
}
|
||||
|
||||
if (isFroxlorVersion('0.9.30-rc1')) {
|
||||
showUpdateStep("Updating from 0.9.30-rc1 to 0.9.30 final", true);
|
||||
lastStepStatus(0);
|
||||
|
||||
showUpdateStep("Adding ssl-cipher-list setting");
|
||||
$db->query("INSERT INTO `panel_settings` SET `settinggroup` = 'system', `varname` = 'ssl_cipher_list', `value` = 'ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH'");
|
||||
lastStepStatus(0);
|
||||
|
||||
updateToVersion('0.9.30');
|
||||
}
|
||||
|
||||
@@ -538,7 +538,7 @@ function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version)
|
||||
$has_preconfig = true;
|
||||
$description = 'As customers can now specify ssl-certificate data for their domains, you need to specify where the generated files are stored<br />';
|
||||
$question = '<strong>Specify the directory for customer ssl-certificates:</strong> ';
|
||||
$question.= '<input type="text" class="text" name="system_customersslpath" value="/etc/apache2/ssl/" />';
|
||||
$question.= '<input type="text" class="text" name="system_customersslpath" value="/etc/ssl/froxlor-custom/" />';
|
||||
eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";");
|
||||
}
|
||||
|
||||
|
||||
@@ -269,18 +269,21 @@ class ApsInstaller extends ApsParser
|
||||
$this->db->query('DELETE FROM `' . TABLE_APS_INSTANCES . '` WHERE `ID` = ' . $this->db->escape($Row['InstanceID']));
|
||||
$this->db->query('DELETE FROM `' . TABLE_APS_SETTINGS . '` WHERE `InstanceID` = ' . $this->db->escape($Row['InstanceID']));
|
||||
|
||||
//remove data, #273
|
||||
if($this->DomainPath != '' && $this->DomainPath != '/') {
|
||||
self::UnlinkRecursive($this->RealPath . $this->DomainPath . '/');
|
||||
} else {
|
||||
// save awstats/webalizer folder if it's the docroot
|
||||
self::UnlinkRecursive($this->RealPath . $this->DomainPath . '/', true);
|
||||
// place standard-index file
|
||||
$loginname = getLoginNameByUid($Row['CustomerID']);
|
||||
if($loginname !== false)
|
||||
{
|
||||
storeDefaultIndex($loginname, $this->RealPath . $this->DomainPath . '/');
|
||||
}
|
||||
if($this->RealPath != '' && checkDisallowedPaths($this->RealPath))
|
||||
{
|
||||
//remove data, #273
|
||||
if($this->DomainPath != '' && $this->DomainPath != '/') {
|
||||
self::UnlinkRecursive($this->RealPath . $this->DomainPath . '/');
|
||||
} else {
|
||||
// save awstats/webalizer folder if it's the docroot
|
||||
self::UnlinkRecursive($this->RealPath . $this->DomainPath . '/', true);
|
||||
// place standard-index file
|
||||
$loginname = getLoginNameByUid($Row['CustomerID']);
|
||||
if($loginname !== false)
|
||||
{
|
||||
storeDefaultIndex($loginname, $this->RealPath . $this->DomainPath . '/');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -335,7 +338,13 @@ class ApsInstaller extends ApsParser
|
||||
$mapping_path = $Xml->mapping['path'];
|
||||
$mapping_url = $Xml->mapping['url'];
|
||||
}
|
||||
|
||||
|
||||
if ($this->RealPath == '' || !checkDisallowedPaths($this->RealPath))
|
||||
{
|
||||
$this->db->query('UPDATE `' . TABLE_APS_INSTANCES . '` SET `Status` = ' . INSTANCE_ERROR . ' WHERE `ID` = ' . $this->db->escape($Row['InstanceID']));
|
||||
return false;
|
||||
}
|
||||
|
||||
if($Task == TASK_INSTALL)
|
||||
{
|
||||
//FIXME truncate customer directory
|
||||
|
||||
@@ -70,17 +70,22 @@ class ConfigIO {
|
||||
*/
|
||||
private function _cleanCustomerSslCerts() {
|
||||
|
||||
// get correct directory
|
||||
$configdir = $this->_getFile('system', 'customer_ssl_path');
|
||||
if ($configdir !== false) {
|
||||
/*
|
||||
* only clean up if we're actually using SSL
|
||||
*/
|
||||
if ($this->_settings['system']['use_ssl'] == '1') {
|
||||
// get correct directory
|
||||
$configdir = $this->_getFile('system', 'customer_ssl_path');
|
||||
if ($configdir !== false) {
|
||||
|
||||
$configdir = makeCorrectDir($configdir);
|
||||
$configdir = makeCorrectDir($configdir);
|
||||
|
||||
if (@is_dir($configdir)) {
|
||||
// now get rid of old stuff
|
||||
//(but append /* so we don't delete the directory)
|
||||
$configdir.='/*';
|
||||
safe_exec('rm -rf '. makeCorrectFile($configdir));
|
||||
if (@is_dir($configdir)) {
|
||||
// now get rid of old stuff
|
||||
//(but append /* so we don't delete the directory)
|
||||
$configdir.='/*';
|
||||
safe_exec('rm -rf '. makeCorrectFile($configdir));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,6 +68,26 @@ function validateFormFieldString($fieldname, $fielddata, $newfieldvalue)
|
||||
$returnvalue = ($newfieldvalue == makeCorrectDir($newfieldvalue));
|
||||
}
|
||||
}
|
||||
elseif (isset($fielddata['string_type']) && $fielddata['string_type'] == 'confdir') {
|
||||
// check for empty value (it might be allowed)
|
||||
if (trim($newfieldvalue) == '') {
|
||||
$newfieldvalue = '';
|
||||
$returnvalue = 'stringmustntbeempty';
|
||||
} else {
|
||||
// add trailing slash to validate path if needed
|
||||
// refs #331
|
||||
if (substr($newfieldvalue, -1) != '/') {
|
||||
$newfieldvalue.= '/';
|
||||
}
|
||||
// if this is a configuration directory, check for stupidity of admins :p
|
||||
if (checkDisallowedPaths($newfieldvalue) !== true) {
|
||||
$newfieldvalue = '';
|
||||
$returnvalue = 'givendirnotallowed';
|
||||
} else {
|
||||
$returnvalue = ($newfieldvalue == makeCorrectDir($newfieldvalue));
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif (isset($fielddata['string_type']) && $fielddata['string_type'] == 'file') {
|
||||
// check for empty value (it might be allowed)
|
||||
if (trim($newfieldvalue) == '') {
|
||||
|
||||
@@ -17,62 +17,58 @@
|
||||
*
|
||||
*/
|
||||
|
||||
function storeSettingField($fieldname, $fielddata, $newfieldvalue)
|
||||
{
|
||||
if(is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] != '' && isset($fielddata['varname']) && $fielddata['varname'] != '')
|
||||
{
|
||||
function storeSettingField($fieldname, $fielddata, $newfieldvalue) {
|
||||
|
||||
if(saveSetting($fielddata['settinggroup'], $fielddata['varname'], $newfieldvalue) != false)
|
||||
{
|
||||
if (is_array($fielddata)
|
||||
&& isset($fielddata['settinggroup'])
|
||||
&& $fielddata['settinggroup'] != ''
|
||||
&& isset($fielddata['varname'])
|
||||
&& $fielddata['varname'] != ''
|
||||
) {
|
||||
if (saveSetting($fielddata['settinggroup'], $fielddata['varname'], $newfieldvalue) != false) {
|
||||
/*
|
||||
* when fielddata[cronmodule] is set, this means enable/disable a cronjob
|
||||
*/
|
||||
if(isset($fielddata['cronmodule']) && $fielddata['cronmodule'] != '')
|
||||
{
|
||||
*/
|
||||
if (isset($fielddata['cronmodule'])
|
||||
&& $fielddata['cronmodule'] != ''
|
||||
) {
|
||||
toggleCronStatus($fielddata['cronmodule'], $newfieldvalue);
|
||||
}
|
||||
|
||||
/*
|
||||
* satisfy dependencies
|
||||
*/
|
||||
if(isset($fielddata['dependency']) && is_array($fielddata['dependency']))
|
||||
{
|
||||
if((int)$fielddata['dependency']['onlyif'] == (int)$newfieldvalue)
|
||||
{
|
||||
*/
|
||||
if (isset($fielddata['dependency'])
|
||||
&& is_array($fielddata['dependency'])
|
||||
) {
|
||||
if ((int)$fielddata['dependency']['onlyif'] == (int)$newfieldvalue) {
|
||||
storeSettingField($fielddata['dependency']['fieldname'], $fielddata['dependency']['fielddata'], $newfieldvalue);
|
||||
}
|
||||
}
|
||||
|
||||
return array($fielddata['settinggroup'] . '.' . $fielddata['varname'] => $newfieldvalue);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function storeSettingFieldInsertBindTask($fieldname, $fielddata, $newfieldvalue)
|
||||
{
|
||||
if(is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] != '' && isset($fielddata['varname']) && $fielddata['varname'] != '')
|
||||
{
|
||||
if(saveSetting($fielddata['settinggroup'], $fielddata['varname'], $newfieldvalue) != false)
|
||||
{
|
||||
function storeSettingFieldInsertBindTask($fieldname, $fielddata, $newfieldvalue) {
|
||||
|
||||
if (is_array($fielddata)
|
||||
&& isset($fielddata['settinggroup'])
|
||||
&& $fielddata['settinggroup'] != ''
|
||||
&& isset($fielddata['varname'])
|
||||
&& $fielddata['varname'] != ''
|
||||
) {
|
||||
if (saveSetting($fielddata['settinggroup'], $fielddata['varname'], $newfieldvalue) != false) {
|
||||
return array($fielddata['settinggroup'] . '.' . $fielddata['varname'] => $newfieldvalue);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
48
lib/functions/validate/function.checkDisallowedPaths.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2013 the Froxlor Team (see authors).
|
||||
*
|
||||
* For the full copyright and license information, please view the COPYING
|
||||
* file that was distributed with this source code. You can also view the
|
||||
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
|
||||
*
|
||||
* @copyright (c) the authors
|
||||
* @author Michael Kaufmann <mkaufmann@nutime.de>
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Functions
|
||||
*
|
||||
* @since 0.9.30
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* checks a directory against disallowed paths which could
|
||||
* lead to a damaged system if you use them
|
||||
*
|
||||
* @param string $fieldname
|
||||
* @param array $fielddata
|
||||
* @param mixed $newfieldvalue
|
||||
*
|
||||
* @return boolean|array
|
||||
*/
|
||||
function checkDisallowedPaths($path = null) {
|
||||
|
||||
/*
|
||||
* disallow base-directories and /
|
||||
*/
|
||||
$disallowed_values = array(
|
||||
"/", "/bin/", "/boot/", "/dev/", "/etc/", "/home/", "/lib/", "/lib32/", "/lib64/",
|
||||
"/opt/", "/proc/", "/root/", "/run/", "/sbin/", "/sys/", "/tmp/", "/usr/", "/var/"
|
||||
);
|
||||
|
||||
$path = makeCorrectDir($path);
|
||||
|
||||
// check if it's a disallowed path
|
||||
if (in_array($path, $disallowed_values)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
34
lib/init.php
@@ -431,6 +431,40 @@ if (AREA == 'admin' || AREA == 'customer') {
|
||||
unset($navigation_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* header information about open tickets (only if used)
|
||||
*/
|
||||
if ($settings['ticket']['enabled'] == '1') {
|
||||
$awaitingtickets = 0;
|
||||
$awaitingtickets_text = '';
|
||||
$opentickets = 0;
|
||||
|
||||
if (AREA == 'admin' && isset($userinfo['adminid'])) {
|
||||
$opentickets = $db->query_first('
|
||||
SELECT COUNT(`id`) as `count` FROM `' . TABLE_PANEL_TICKETS . '`
|
||||
WHERE `answerto` = "0" AND (`status` = "0" OR `status` = "1")
|
||||
AND `lastreplier`="0" AND `adminid` = "' . $userinfo['adminid'] . '"
|
||||
');
|
||||
$awaitingtickets = $opentickets['count'];
|
||||
|
||||
if ($opentickets > 0) {
|
||||
$awaitingtickets_text = strtr($lng['ticket']['awaitingticketreply'], array('%s' => '<a href="admin_tickets.php?page=tickets&s=' . $s . '">' . $opentickets['count'] . '</a>'));
|
||||
}
|
||||
}
|
||||
elseif (AREA == 'customer' && isset($userinfo['customerid'])) {
|
||||
$opentickets = $db->query_first('
|
||||
SELECT COUNT(`id`) as `count` FROM `' . TABLE_PANEL_TICKETS . '`
|
||||
WHERE `answerto` = "0" AND (`status` = "0" OR `status` = "2")
|
||||
AND `lastreplier`="1" AND `customerid` = "' . $userinfo['customerid'] . '"
|
||||
');
|
||||
$awaitingtickets = $opentickets['count'];
|
||||
|
||||
if ($opentickets > 0) {
|
||||
$awaitingtickets_text = strtr($lng['ticket']['awaitingticketreply'], array('%s' => '<a href="customer_tickets.php?page=tickets&s=' . $s . '">' . $opentickets['count'] . '</a>'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$webfont = str_replace('+', ' ', $settings['panel']['webfont']);
|
||||
eval("\$header = \"" . getTemplate('header', '1') . "\";");
|
||||
|
||||
|
||||
@@ -74,6 +74,6 @@ define('PACKAGE_LOCKED', 1);
|
||||
define('PACKAGE_ENABLED', 2);
|
||||
|
||||
// VERSION INFO
|
||||
$version = '0.9.30-rc1';
|
||||
$version = '0.9.30';
|
||||
$dbversion = '2';
|
||||
$branding = '';
|
||||
|
||||
@@ -755,8 +755,10 @@ $lng['logger']['truncate'] = 'Empty log';
|
||||
|
||||
// ADDED IN 1.2.19-svn7
|
||||
|
||||
$lng['serversettings']['ssl']['use_ssl'] = 'Use SSL';
|
||||
$lng['serversettings']['ssl']['ssl_cert_file'] = 'Path to the SSL certificate';
|
||||
$lng['serversettings']['ssl']['use_ssl']['title'] = 'Enable SSL usage';
|
||||
$lng['serversettings']['ssl']['use_ssl']['description'] = 'Check this if you want to use SSL for your webserver';
|
||||
$lng['serversettings']['ssl']['ssl_cert_file']['title'] = 'Path to the SSL certificate';
|
||||
$lng['serversettings']['ssl']['ssl_cert_file']['description'] = 'Specify the path including the filename of the .crt or .pem file (main certificate)';
|
||||
$lng['serversettings']['ssl']['openssl_cnf'] = 'Defaults for creating the Cert file';
|
||||
$lng['panel']['reseller'] = 'reseller';
|
||||
$lng['panel']['admin'] = 'admin';
|
||||
@@ -1205,8 +1207,10 @@ $lng['admin']['ipsandports']['webserverssldomainconfig'] = 'Webserver SSL config
|
||||
$lng['admin']['ipsandports']['ssl_key_file'] = 'Path to the SSL Keyfile';
|
||||
$lng['admin']['ipsandports']['ssl_ca_file'] = 'Path to the SSL CA certificate';
|
||||
$lng['admin']['ipsandports']['default_vhostconf_domain'] = 'Default vHost-settings for every domain container';
|
||||
$lng['serversettings']['ssl']['ssl_key_file'] = 'Path to the SSL Keyfile';
|
||||
$lng['serversettings']['ssl']['ssl_ca_file'] = 'Path to the SSL CA certificate';
|
||||
$lng['serversettings']['ssl']['ssl_key_file']['title'] = 'Path to the SSL Keyfile';
|
||||
$lng['serversettings']['ssl']['ssl_key_file']['description'] = 'Specify the path including the filename for the private-key file (.key mostly)';
|
||||
$lng['serversettings']['ssl']['ssl_ca_file']['title'] = 'Path to the SSL CA certificate (optional)';
|
||||
$lng['serversettings']['ssl']['ssl_ca_file']['description'] = 'Client authentification, set this only if you know what it is.';
|
||||
|
||||
$lng['error']['usernamealreadyexists'] = 'The username %s already exists.';
|
||||
|
||||
@@ -1476,28 +1480,19 @@ $lng['admin']['store_defaultindex'] = 'Store default index-file to customers doc
|
||||
// ADDED IN FROXLOR 0.9.13-svn1
|
||||
$lng['customer']['autoresponder'] = 'Autoresponder';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn1
|
||||
// ADDED IN FROXLOR 0.9.14
|
||||
$lng['serversettings']['mod_fcgid']['defaultini_ownvhost'] = 'Default PHP configuration for Froxlor-vHost';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn3
|
||||
$lng['serversettings']['awstats_icons']['title'] = 'Path to AWstats icons folder';
|
||||
$lng['serversettings']['awstats_icons']['description'] = 'e.g. /usr/share/awstats/htdocs/icon/';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn4
|
||||
$lng['admin']['ipsandports']['ssl_cert_chainfile'] = 'Path to the SSL CertificateChainFile';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn5
|
||||
$lng['admin']['ipsandports']['ssl_cert_chainfile']['title'] = 'Path to the SSL CertificateChainFile';
|
||||
$lng['admin']['ipsandports']['ssl_cert_chainfile']['description'] = 'Mostly CA_Bundle, or similar, you probably want to set this if you bought a SSL certificate.';
|
||||
$lng['admin']['ipsandports']['docroot']['title'] = 'Custom docroot (empty = point to Froxlor)';
|
||||
$lng['admin']['ipsandports']['docroot']['description'] = 'You can define a custom document-root (the destination for a request) for this ip/port combination here.<br /><strong>ATTENTION:</strong> Please be careful with what you enter here!';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn6
|
||||
$lng['serversettings']['login_domain_login'] = 'Allow login with domains';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14
|
||||
$lng['panel']['unlock'] = 'unlock';
|
||||
$lng['question']['customer_reallyunlock'] = 'Do you really want to unlock customer %s?';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.15-svn1
|
||||
// ADDED IN FROXLOR 0.9.15
|
||||
$lng['serversettings']['perl_server']['title'] = 'Perl server location';
|
||||
$lng['serversettings']['perl_server']['description'] = 'Default is set for using the guide found at: <a target="blank" href="http://wiki.nginx.org/SimpleCGI">http://wiki.nginx.org/SimpleCGI</a>';
|
||||
$lng['serversettings']['nginx_php_backend']['title'] = 'Nginx PHP backend';
|
||||
@@ -1971,3 +1966,6 @@ $lng['admin']['selectserveralias_desc'] = 'Chose whether froxlor should create a
|
||||
$lng['domains']['serveraliasoption_wildcard'] = 'Wildcard (*.domain.tld)';
|
||||
$lng['domains']['serveraliasoption_www'] = 'WWW (www.domain.tld)';
|
||||
$lng['domains']['serveraliasoption_none'] = 'No alias';
|
||||
$lng['error']['givendirnotallowed'] = 'The given directory in field %s is not allowed.';
|
||||
$lng['serversettings']['ssl']['ssl_cipher_list']['title'] = 'Configure the allowed SSL ciphers';
|
||||
$lng['serversettings']['ssl']['ssl_cipher_list']['description'] = 'This is a list of ciphers that you want (or don\'t want) to use when talking SSL. For a list of ciphers and how to include/exclude them, see sections "CIPHER LIST FORMAT" and "CIPHER STRINGS" on <a href="http://openssl.org/docs/apps/ciphers.html">the man-page for ciphers</a>.<br /><br /><b>Default value is:</b><pre>ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH</pre>';
|
||||
|
||||
@@ -754,8 +754,10 @@ $lng['logger']['truncate'] = 'Log leeren';
|
||||
|
||||
// ADDED IN 1.2.19-svn7
|
||||
|
||||
$lng['serversettings']['ssl']['use_ssl'] = 'SSL nutzen';
|
||||
$lng['serversettings']['ssl']['ssl_cert_file'] = 'Pfad zum Zertifikat';
|
||||
$lng['serversettings']['ssl']['use_ssl']['title'] = 'Aktiviere SSL';
|
||||
$lng['serversettings']['ssl']['use_ssl']['description'] = 'Erlaubt die Nutzung von SSL für den Webserver';
|
||||
$lng['serversettings']['ssl']['ssl_cert_file']['title'] = 'Pfad zum SSL-Zertifikat';
|
||||
$lng['serversettings']['ssl']['ssl_cert_file']['description'] = 'Geben Sie den Pfad inklusive Dateinamen des Zertifikats an (meist .crt or .pem).';
|
||||
$lng['serversettings']['ssl']['openssl_cnf'] = 'Standardwerte zum Erstellen eines Zertifikats';
|
||||
$lng['panel']['reseller'] = 'Reseller';
|
||||
$lng['panel']['admin'] = 'Administrator';
|
||||
@@ -1319,8 +1321,10 @@ $lng['admin']['ipsandports']['webserverssldomainconfig'] = 'Webserver-SSL-Konfig
|
||||
$lng['admin']['ipsandports']['ssl_key_file'] = 'Pfad zu der SSL-Schlüsseldatei';
|
||||
$lng['admin']['ipsandports']['ssl_ca_file'] = 'Pfad zu dem SSL-CA-Zertifikat';
|
||||
$lng['admin']['ipsandports']['default_vhostconf_domain'] = 'Standard vHost - Einstellungen für jeden Domain - Kontainer';
|
||||
$lng['serversettings']['ssl']['ssl_key_file'] = 'Pfad zu der SSL-Schlüsseldatei';
|
||||
$lng['serversettings']['ssl']['ssl_ca_file'] = 'Pfad zu dem SSL-CA-Zertifikat';
|
||||
$lng['serversettings']['ssl']['ssl_key_file']['title'] = 'Pfad zum SSL Private-key';
|
||||
$lng['serversettings']['ssl']['ssl_key_file']['description'] = 'Geben Sie den Pfad inklusive Dateinamen der Schlüssel-Datei an (der private-key, meist .key).';
|
||||
$lng['serversettings']['ssl']['ssl_ca_file']['title'] = 'Pfad zu dem SSL-CA-Zertifikat (optional)';
|
||||
$lng['serversettings']['ssl']['ssl_ca_file']['description'] = 'Client Authentifizierung, dieses Feld sollte nur gesetzt werden, wenn es wirklich gebraucht wird.';
|
||||
$lng['error']['usernamealreadyexists'] = 'Der Benutzername "%s" existiert bereits.';
|
||||
$lng['error']['plausibilitychecknotunderstood'] = 'Die Antwort des Plausibilitätschecks wurde nicht verstanden';
|
||||
$lng['error']['errorwhensaving'] = 'Bei dem Speichern des Feldes "%s" trat ein Fehler auf';
|
||||
@@ -1454,28 +1458,19 @@ $lng['admin']['store_defaultindex'] = 'Erstelle Standard-Index-Datei im Kunden-O
|
||||
// ADDED IN FROXLOR 0.9.13-svn1
|
||||
$lng['customer']['autoresponder'] = 'Abwesenheitsnachrichten';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn1
|
||||
// ADDED IN FROXLOR 0.9.14
|
||||
$lng['serversettings']['mod_fcgid']['defaultini_ownvhost'] = 'Voreingestellte PHP-Konfiguration für den Froxlor-Vhost';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn3
|
||||
$lng['serversettings']['awstats_icons']['title'] = 'Pfad zum AWstats-Icon-Ordner';
|
||||
$lng['serversettings']['awstats_icons']['description'] = 'z.B. /usr/share/awstats/htdocs/icon/';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn4
|
||||
$lng['admin']['ipsandports']['ssl_cert_chainfile'] = 'Pfad zu dem SSL-CertificateChainFile';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn5
|
||||
$lng['admin']['ipsandports']['ssl_cert_chainfile']['title'] = 'Pfad zu dem SSL-CertificateChainFile (optional)';
|
||||
$lng['admin']['ipsandports']['ssl_cert_chainfile']['description'] = 'Meist CA_Bundle, o.Ä., dies ist das Feld, dass gesetzt werden sollte, wenn ein gekauftes SSL-Zertifikat vorliegt.';
|
||||
$lng['admin']['ipsandports']['docroot']['title'] = 'Benutzerdefinierter Docroot (leer = zeige auf Froxlor)';
|
||||
$lng['admin']['ipsandports']['docroot']['description'] = 'Hier kann ein benutzerdefinierter Document-Root (der Zielordner für einen Zugriff) für diese IP/Port Kombination gesetzt werden.<br /><strong>ACHTUNG:</strong> Bitte überlege vorher, welchen Pfad du hier angibst!';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn6
|
||||
$lng['serversettings']['login_domain_login'] = 'Erlaube Anmeldung mit Domains';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14
|
||||
$lng['panel']['unlock'] = 'entsperren';
|
||||
$lng['question']['customer_reallyunlock'] = 'Wollen Sie den Kunden "%s" wirklich entsperren?';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.15-svn1
|
||||
// ADDED IN FROXLOR 0.9.15
|
||||
$lng['serversettings']['perl_server']['title'] = 'Perl-Server-Ort';
|
||||
$lng['serversettings']['perl_server']['description'] = 'Der Standardwert ist diesem Guide entnommen: <a target="blank" href="http://wiki.nginx.org/SimpleCGI">http://wiki.nginx.org/SimpleCGI</a>';
|
||||
$lng['serversettings']['nginx_php_backend']['title'] = 'Nginx-PHP-Backend';
|
||||
@@ -1691,3 +1686,6 @@ $lng['admin']['selectserveralias_desc'] = 'Wählen Sie hier, ob für diese Domai
|
||||
$lng['domains']['serveraliasoption_wildcard'] = 'Wildcard (*.domain.tld)';
|
||||
$lng['domains']['serveraliasoption_www'] = 'WWW (www.domain.tld)';
|
||||
$lng['domains']['serveraliasoption_none'] = 'Kein alias';
|
||||
$lng['error']['givendirnotallowed'] = 'Das angegebene Verzeichnis im Feld %s ist nicht erlaubt.';
|
||||
$lng['serversettings']['ssl']['ssl_cipher_list']['title'] = 'Erlaubte SSL Ciphers festlegen';
|
||||
$lng['serversettings']['ssl']['ssl_cipher_list']['description'] = 'Dies ist eine Liste von Ciphers die genutzt werden sollen (oder auch nicht genutzt werden sollen) wenn eine SSL Verbindung besteht. Eine Liste aller Ciphers und wie diese hinzugefügt/ausgeschlossen werden ist in den Abschnitten "CIPHER LIST FORMAT" und "CIPHER STRINGS" in <a href="http://openssl.org/docs/apps/ciphers.html">der man-page für Ciphers</a> zu finden.<br /><br /><b>Standard-Wert ist:</b><pre>ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH</pre>';
|
||||
|
||||
@@ -430,3 +430,6 @@ $lng['panel']['search'] = 'Buscar';
|
||||
$lng['panel']['used'] = 'usado';
|
||||
$lng['panel']['translator'] = 'Traductor';
|
||||
$lng['error']['stringformaterror'] = 'El valor para la fila "%s" no esta dentro de los formatos esperados.';
|
||||
|
||||
$lng['mails']['webmaxpercent']['subject'] = 'Su cuenta esta llegando al Límite de almacenamiento';
|
||||
$lng['mails']['webmaxpercent']['mailbody'] = 'Estimado {NAME} \n\nsu cuota actual de {DISKAVAILABLE} MB esta siendo ocupada por {DISKUSED} MB.\nEsta usando actualmente más del {MAX_PERCENT}%.\n\nPor favor contacte con su Administrador.\nDisculpe las molestias ocasionadas.';
|
||||
|
||||
@@ -339,7 +339,7 @@ class apache
|
||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLEngine On' . "\n";
|
||||
// this makes it more secure, thx to Marcel (08/2013)
|
||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLHonorCipherOrder On' . "\n";
|
||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH' . "\n";
|
||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLCipherSuite ' . $this->settings['system']['ssl_cipher_list'] . "\n";
|
||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLVerifyDepth 10' . "\n";
|
||||
$this->virtualhosts_data[$vhosts_filename] .= ' SSLCertificateFile ' . makeCorrectFile($row_ipsandports['ssl_cert_file']) . "\n";
|
||||
|
||||
@@ -716,7 +716,7 @@ class apache
|
||||
$vhost_content .= ' SSLEngine On' . "\n";
|
||||
// this makes it more secure, thx to Marcel (08/2013)
|
||||
$vhost_content .= ' SSLHonorCipherOrder On' . "\n";
|
||||
$vhost_content .= ' SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH' . "\n";
|
||||
$vhost_content .= ' SSLCipherSuite ' . $this->settings['system']['ssl_cipher_list'] . "\n";
|
||||
$vhost_content .= ' SSLVerifyDepth 10' . "\n";
|
||||
$vhost_content .= ' SSLCertificateFile ' . makeCorrectFile($domain['ssl_cert_file']) . "\n";
|
||||
|
||||
|
||||
@@ -182,6 +182,9 @@ class lighttpd
|
||||
|
||||
if ($row_ipsandports['ssl_cert_file'] != '') {
|
||||
$this->lighttpd_data[$vhost_filename].= 'ssl.engine = "enable"' . "\n";
|
||||
$this->lighttpd_data[$vhost_filename].= 'ssl.use-sslv2 = "disable"' . "\n";
|
||||
$this->lighttpd_data[$vhost_filename].= 'ssl.cipher-list = "' . $this->settings['system']['ssl_cipher_list'] . '"' . "\n";
|
||||
$this->lighttpd_data[$vhost_filename].= 'ssl.honor-cipher-order = "enable"' . "\n";
|
||||
$this->lighttpd_data[$vhost_filename].= 'ssl.pemfile = "' . makeCorrectFile($row_ipsandports['ssl_cert_file']) . '"' . "\n";
|
||||
|
||||
if ($row_ipsandports['ssl_ca_file'] != '') {
|
||||
@@ -512,6 +515,9 @@ class lighttpd
|
||||
|
||||
if ($domain['ssl_cert_file'] != '') {
|
||||
$ssl_settings.= 'ssl.engine = "enable"' . "\n";
|
||||
$ssl_settings.= 'ssl.use-sslv2 = "disable"' . "\n";
|
||||
$ssl_settings.= 'ssl.cipher-list = "' . $this->settings['system']['ssl_cipher_list'] . '"' . "\n";
|
||||
$ssl_settings.= 'ssl.honor-cipher-order = "enable"' . "\n";
|
||||
$ssl_settings.= 'ssl.pemfile = "' . makeCorrectFile($domain['ssl_cert_file']) . '"' . "\n";
|
||||
|
||||
if ($domain['ssl_ca_file'] != '') {
|
||||
|
||||
@@ -506,7 +506,7 @@ class nginx
|
||||
// obsolete: ssl on now belongs to the listen block as 'ssl' at the end
|
||||
//$sslsettings .= "\t" . 'ssl on;' . "\n";
|
||||
$sslsettings .= "\t" . 'ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;' . "\n";
|
||||
$sslsettings .= "\t" . 'ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!CAMELLIA;' . "\n";
|
||||
$sslsettings .= "\t" . 'ssl_ciphers ' . $this->settings['system']['ssl_cipher_list'] . ';' . "\n";
|
||||
$sslsettings .= "\t" . 'ssl_prefer_server_ciphers on;' . "\n";
|
||||
$sslsettings .= "\t" . 'ssl_certificate ' . makeCorrectFile($domain['ssl_cert_file']) . ';' . "\n";
|
||||
|
||||
@@ -515,7 +515,7 @@ class nginx
|
||||
}
|
||||
|
||||
if ($domain['ssl_ca_file'] != '') {
|
||||
$sslsettings.= 'ssl_client_certificate ' . makeCorrectFile($domain['ssl_ca_file']) . ';' . "\n";
|
||||
$sslsettings.= "\t" . 'ssl_client_certificate ' . makeCorrectFile($domain['ssl_ca_file']) . ';' . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -87,6 +87,13 @@ while ($row = $db->fetch_array($result_tasks)) {
|
||||
} else {
|
||||
echo "Please check you Webserver settings\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* as we might have a change from mod_php to fcgid/fpm or the other way around
|
||||
* we need to check customer directory permissions
|
||||
* -> 0.9.31
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -387,14 +394,11 @@ while ($row = $db->fetch_array($result_tasks)) {
|
||||
}
|
||||
}
|
||||
|
||||
if($db->num_rows($result_tasks) != 0)
|
||||
{
|
||||
if ($db->num_rows($result_tasks) != 0) {
|
||||
$where = array();
|
||||
foreach($resultIDs as $id)
|
||||
{
|
||||
foreach ($resultIDs as $id) {
|
||||
$where[] = '`id`=\'' . (int)$id . '\'';
|
||||
}
|
||||
|
||||
$where = implode($where, ' OR ');
|
||||
$db->query('DELETE FROM `' . TABLE_PANEL_TASKS . '` WHERE ' . $where);
|
||||
unset($resultIDs);
|
||||
|
||||
@@ -49,20 +49,24 @@ while($row = $db->fetch_array($result))
|
||||
'MAX_PERCENT' => $settings['system']['report_webmax']
|
||||
);
|
||||
|
||||
$lngfile = $db->query_first("SELECT `file` FROM `" . TABLE_PANEL_LANGUAGE . "`
|
||||
WHERE `language` ='" . $row['def_language'] . "'");
|
||||
$lngfile = $db->query_first("
|
||||
SELECT `file` FROM `" . TABLE_PANEL_LANGUAGE . "`
|
||||
WHERE `language` ='" . $row['def_language'] . "'
|
||||
");
|
||||
|
||||
if($lngfile !== NULL)
|
||||
{
|
||||
if ($lngfile !== null) {
|
||||
$langfile = $lngfile['file'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$lngfile = $db->query_first("SELECT `file` FROM `" . TABLE_PANEL_LANGUAGE . "`
|
||||
WHERE `language` ='" . $settings['panel']['standardlanguage'] . "'");
|
||||
} else {
|
||||
$lngfile = $db->query_first("
|
||||
SELECT `file` FROM `" . TABLE_PANEL_LANGUAGE . "`
|
||||
WHERE `language` ='" . $settings['panel']['standardlanguage'] . "'
|
||||
");
|
||||
$langfile = $lngfile['file'];
|
||||
}
|
||||
|
||||
// include english language file (fallback)
|
||||
include_once makeCorrectFile($pathtophpfiles . '/lng/english.lng.php');
|
||||
// include admin/customer language file
|
||||
include_once makeCorrectFile($pathtophpfiles . '/' . $langfile);
|
||||
|
||||
// Get mail templates from database; the ones from 'admin' are fetched for fallback
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
$(document).ready(function() {
|
||||
$('#historyback').click(function() {
|
||||
parent.history.back();
|
||||
return false;
|
||||
});
|
||||
|
||||
// this is necessary for the special setting feature (ref #1010)
|
||||
$.getQueryVariable = function(key) {
|
||||
var urlParams = decodeURI( window.location.search.substring(1) );
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<p class="submit">
|
||||
<a href="javascript:history.go(-1)" title="Click here to go back">Go back</a>
|
||||
<a href="#" title="Click here to go back" id="historyback">Go back</a>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
||||
12
templates/Sparkle/admin/admins/admins_admin.tpl
vendored
@@ -19,16 +19,16 @@
|
||||
<span>Webspace:</span>
|
||||
<if $row['diskspace'] != 'UL'>
|
||||
<if (($row['diskspace']/100)*(int)$settings['system']['report_webmax']) < $row['diskspace_used']>
|
||||
<div class="progress progress-danger progress-striped">
|
||||
<div class="progress progress-danger">
|
||||
<div class="bar" style="width: {$disk_percent}%"></div>
|
||||
</div>
|
||||
<else>
|
||||
<div class="progress progress-striped">
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {$disk_percent}%"></div>
|
||||
</div>
|
||||
</if>
|
||||
<else>
|
||||
<div class="progress progress-striped">
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: 0%"></div>
|
||||
</div>
|
||||
</if>
|
||||
@@ -37,16 +37,16 @@
|
||||
<span>Traffic:</span>
|
||||
<if $row['traffic'] != 'UL'>
|
||||
<if (($row['traffic']/100)*(int)$settings['system']['report_trafficmax']) < $row['traffic_used']>
|
||||
<div class="progress progress-danger progress-striped">
|
||||
<div class="progress progress-danger">
|
||||
<div class="bar" style="width: {$traffic_percent}%"></div>
|
||||
</div>
|
||||
<else>
|
||||
<div class="progress progress-striped">
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {$traffic_percent}%"></div>
|
||||
</div>
|
||||
</if>
|
||||
<else>
|
||||
<div class="progress progress-striped">
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: 0%"></div>
|
||||
</div>
|
||||
</if>
|
||||
|
||||
38
templates/Sparkle/admin/configfiles/wizard.tpl
vendored
@@ -10,29 +10,31 @@ $header
|
||||
|
||||
<section class="tinyform bradius">
|
||||
<form action="$filename" method="get" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<fieldset>
|
||||
<legend>Froxlor - Wizard</legend>
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
|
||||
<table class="formtable">
|
||||
<tr>
|
||||
<td><b>{$lng['admin']['configfiles']['distribution']}:</b></td>
|
||||
<td><if $distribution != ''><input type="hidden" name="distribution" value="$distribution"/><a href="{$linker->getLink(array('section' => 'configfiles', 'page' => $page))}">{$configfiles[$distribution]['label']}</a><else><select id="config_distribution" name="distribution"><option value="choose">{$lng['admin']['configfiles']['choosedistribution']}</option>{$distributions_select}</select></if></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>{$lng['admin']['configfiles']['service']}:</b></td>
|
||||
<td><if $service != ''><input type="hidden" name="service" value="$service"/><a href="{$linker->getLink(array('section' => 'configfiles', 'page' => $page, 'distribution' => $distribution))}">{$configfiles[$distribution]['services'][$service]['label']}</a><else><select id="config_service" name="service"><option value="choose">{$lng['admin']['configfiles']['chooseservice']}</option>{$services_select}</select></if></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>{$lng['admin']['configfiles']['daemon']}:</b></td>
|
||||
<td><select id="config_daemon" name="daemon"><option value="choose">{$lng['admin']['configfiles']['choosedaemon']}</option>{$daemons_select}</select></td>
|
||||
</tr>
|
||||
<table class="formtable">
|
||||
<tr>
|
||||
<td><b>{$lng['admin']['configfiles']['distribution']}:</b></td>
|
||||
<td><if $distribution != ''><input type="hidden" name="distribution" value="$distribution"/><a href="{$linker->getLink(array('section' => 'configfiles', 'page' => $page))}">{$configfiles[$distribution]['label']}</a><else><select id="config_distribution" name="distribution"><option value="choose">{$lng['admin']['configfiles']['choosedistribution']}</option>{$distributions_select}</select></if></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>{$lng['admin']['configfiles']['service']}:</b></td>
|
||||
<td><if $service != ''><input type="hidden" name="service" value="$service"/><a href="{$linker->getLink(array('section' => 'configfiles', 'page' => $page, 'distribution' => $distribution))}">{$configfiles[$distribution]['services'][$service]['label']}</a><else><select id="config_service" name="service"><option value="choose">{$lng['admin']['configfiles']['chooseservice']}</option>{$services_select}</select></if></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>{$lng['admin']['configfiles']['daemon']}:</b></td>
|
||||
<td><select id="config_daemon" name="daemon"><option value="choose">{$lng['admin']['configfiles']['choosedaemon']}</option>{$daemons_select}</select></td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="2" align="center"><input class="bottom" type="submit" value="{$lng['panel']['next']}" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</tfoot>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
<td>
|
||||
<if $row['company'] != '' && $row['name'] != ''>
|
||||
{$row['company']}<br />
|
||||
<small>{$row['name']} {$row['firstname']}</small>
|
||||
<small>{$row['name']}, {$row['firstname']}</small>
|
||||
</if>
|
||||
<if $row['company'] != '' && $row['name'] == ''>
|
||||
{$row['company']}
|
||||
</if>
|
||||
<if $row['company'] == ''>
|
||||
{$row['name']} {$row['firstname']}
|
||||
{$row['name']}, {$row['firstname']}
|
||||
</if>
|
||||
</td>
|
||||
<td>
|
||||
@@ -26,17 +26,17 @@
|
||||
<span>Webspace:</span>
|
||||
<if $row['diskspace'] != 'UL'>
|
||||
<if (($row['diskspace']/100)*(int)$settings['system']['report_webmax']) < $row['diskspace_used']>
|
||||
<div class="progress progress-danger progress-striped">
|
||||
<div class="progress progress-danger">
|
||||
<div class="bar" style="width: {$disk_percent}%"></div>
|
||||
</div>
|
||||
<else>
|
||||
<div class="progress progress-striped">
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {$disk_percent}%"></div>
|
||||
</div>
|
||||
</if>
|
||||
<else>
|
||||
<div class="progress progress-striped">
|
||||
<div class="bar" style="width: 0%"></div>
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: 50%"></div>
|
||||
</div>
|
||||
</if>
|
||||
</span>
|
||||
@@ -44,17 +44,17 @@
|
||||
<span>Traffic:</span>
|
||||
<if $row['traffic'] != 'UL'>
|
||||
<if (($row['traffic']/100)*(int)$settings['system']['report_trafficmax']) < $row['traffic_used']>
|
||||
<div class="progress progress-danger progress-striped">
|
||||
<div class="progress progress-danger">
|
||||
<div class="bar" style="width: {$traffic_percent}%"></div>
|
||||
</div>
|
||||
<else>
|
||||
<div class="progress progress-striped">
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: {$traffic_percent}%"></div>
|
||||
</div>
|
||||
</if>
|
||||
<else>
|
||||
<div class="progress progress-striped">
|
||||
<div class="bar" style="width: 0%"></div>
|
||||
<div class="progress">
|
||||
<div class="bar" style="width: 50%"></div>
|
||||
</div>
|
||||
</if>
|
||||
</span>
|
||||
|
||||
@@ -10,17 +10,22 @@ $header
|
||||
<section class="tinyform bradius">
|
||||
<form method="post" action="{$linker->getLink(array('section' => 'index'))}" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['menue']['main']['changelanguage']}</legend>
|
||||
<p>
|
||||
<label for="def_language">{$lng['login']['language']}:</label>
|
||||
<select id="def_language" name="def_language">$language_options</select>
|
||||
</p>
|
||||
<p class="submit">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<input type="submit" value="{$lng['menue']['main']['changelanguage']}" />
|
||||
</p>
|
||||
<table class="formtable tinyform">
|
||||
<tr>
|
||||
<td><label for="def_language">{$lng['login']['language']}:</label></td>
|
||||
<td><select id="def_language" name="def_language">$language_options</select></td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<input type="submit" value="{$lng['menue']['main']['changelanguage']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
@@ -10,25 +10,30 @@ $header
|
||||
<section class="tinyform bradius">
|
||||
<form method="post" action="{$linker->getLink(array('section' => 'index'))}" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['menue']['main']['changepassword']}</legend>
|
||||
<p>
|
||||
<label for="old_password">{$lng['changepassword']['old_password']}:</label>
|
||||
<input type="password" id="old_password" name="old_password" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="new_password">{$lng['changepassword']['new_password']}:</label>
|
||||
<input type="password" id="new_password" name="new_password" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="new_password_confirm">{$lng['changepassword']['new_password_confirm']}:</label>
|
||||
<input type="password" id="new_password_confirm" name="new_password_confirm" />
|
||||
</p>
|
||||
<p class="submit">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<input type="submit" value="{$lng['menue']['main']['changepassword']}" />
|
||||
</p>
|
||||
<table class="formtable tinyform">
|
||||
<tr>
|
||||
<td><label for="old_password">{$lng['changepassword']['old_password']}:</label></td>
|
||||
<td><input type="password" id="old_password" name="old_password" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="new_password">{$lng['changepassword']['new_password']}:</label></td>
|
||||
<td><input type="password" id="new_password" name="new_password" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="new_password_confirm">{$lng['changepassword']['new_password_confirm']}:</label></td>
|
||||
<td><input type="password" id="new_password_confirm" name="new_password_confirm" /></td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<input type="submit" value="{$lng['menue']['main']['changepassword']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
21
templates/Sparkle/admin/index/change_theme.tpl
vendored
@@ -10,17 +10,22 @@ $header
|
||||
<section class="tinyform bradius">
|
||||
<form method="post" action="{$linker->getLink(array('section' => 'index'))}" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['menue']['main']['changetheme']}</legend>
|
||||
<p>
|
||||
<label for="theme">{$lng['panel']['theme']}:</label>
|
||||
<select id="theme" name="theme">$theme_options</select>
|
||||
</p>
|
||||
<p class="submit">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<input class="bottom" type="submit" value="{$lng['menue']['main']['changetheme']}" />
|
||||
</p>
|
||||
<table class="formtable tinyform">
|
||||
<tr>
|
||||
<td><label for="theme">{$lng['panel']['theme']}:</label></td>
|
||||
<td><select id="theme" name="theme">$theme_options</select></td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<input class="bottom" type="submit" value="{$lng['menue']['main']['changetheme']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
11
templates/Sparkle/admin/index/index.tpl
vendored
@@ -1,15 +1,6 @@
|
||||
$header
|
||||
<article>
|
||||
|
||||
<if 0 < $awaitingtickets && $settings['ticket']['enabled'] == 1 >
|
||||
<div class="messagewrapperfull">
|
||||
<div class="neutralcontainer bradius">
|
||||
<div class="neutraltitle">{$lng['admin']['note']}</div>
|
||||
<div class="neutral">{$awaitingtickets_text}</div>
|
||||
</div>
|
||||
</div>
|
||||
</if>
|
||||
|
||||
|
||||
<section class="dboarditemfull bradius">
|
||||
<table>
|
||||
<tr>
|
||||
|
||||
45
templates/Sparkle/admin/message/message.tpl
vendored
@@ -17,27 +17,34 @@ $header
|
||||
</if>
|
||||
|
||||
<form action="$filename" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<input type="hidden" name="s" value="$s"/>
|
||||
<input type="hidden" name="page" value="$page"/>
|
||||
<input type="hidden" name="action" value="$action"/>
|
||||
<input type="hidden" name="send" value="send"/>
|
||||
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['admin']['message']}</legend>
|
||||
<p>
|
||||
<label for="receipient">{$lng['admin']['receipient']}</label>
|
||||
<select name="receipient" id="receipient">$receipients</select>
|
||||
</p>
|
||||
<p>
|
||||
<label for="subject">{$lng['admin']['subject']}</label>
|
||||
<input type="text" name="subject" id="subject" value="{$lng['admin']['nosubject']}"/>
|
||||
</p>
|
||||
<p>
|
||||
<label for="message">{$lng['admin']['text']}</label>
|
||||
<textarea rows="12" name="message" id="message"></textarea>
|
||||
</p>
|
||||
<p class="submit">
|
||||
<input type="hidden" name="s" value="$s"/>
|
||||
<input type="hidden" name="page" value="$page"/>
|
||||
<input type="hidden" name="action" value="$action"/>
|
||||
<input type="hidden" name="send" value="send"/>
|
||||
<input type="submit" value="{$lng['panel']['send']}" />
|
||||
</p>
|
||||
<table class="formtable">
|
||||
<tr>
|
||||
<td><label for="receipient">{$lng['admin']['receipient']}</label></td>
|
||||
<td><select name="receipient" id="receipient">$receipients</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="subject">{$lng['admin']['subject']}</label></td>
|
||||
<td><input type="text" name="subject" id="subject" value="{$lng['admin']['nosubject']}"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="message">{$lng['admin']['text']}</label></td>
|
||||
<td><textarea rows="12" name="message" id="message"></textarea></td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td align="right" colspan="2">
|
||||
<input type="submit" value="{$lng['panel']['send']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
||||
@@ -9,12 +9,23 @@
|
||||
|
||||
<section class="fullform bradius">
|
||||
<table class="formtable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="maintitle_apply_right" nowrap="nowrap" colspan="3" style="text-align: right !important;">
|
||||
<input class="bottom" type="reset" value="{$lng['panel']['reset']}" /><input class="bottom" type="submit" value="{$lng['panel']['save']}" />
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
$fields
|
||||
<tr>
|
||||
<td class="maintitle_apply_right" nowrap="nowrap" colspan="2">
|
||||
<input class="bottom" type="reset" value="{$lng['panel']['reset']}" /><input class="bottom" type="submit" value="{$lng['panel']['save']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td class="maintitle_apply_right" nowrap="nowrap" colspan="3" style="text-align: right !important;">
|
||||
<input class="bottom" type="reset" value="{$lng['panel']['reset']}" /><input class="bottom" type="submit" value="{$lng['panel']['save']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</section>
|
||||
</article>
|
||||
|
||||
27
templates/Sparkle/admin/tickets/archive.tpl
vendored
@@ -31,12 +31,6 @@ $header
|
||||
<br />
|
||||
<br />
|
||||
<article>
|
||||
<header>
|
||||
<h3>
|
||||
{$lng['ticket']['search']}
|
||||
</h3>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradius">
|
||||
|
||||
<form action="{$linker->getLink(array('section' => 'tickets'))}" method="post" enctype="application/x-www-form-urlencoded">
|
||||
@@ -46,6 +40,11 @@ $header
|
||||
<input type="hidden" name="send" value="send" />
|
||||
|
||||
<table class="formtable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">{$lng['ticket']['search']}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td>{$lng['ticket']['subject']}:</td>
|
||||
<td ><input type="text" name="subject" /></td>
|
||||
@@ -60,10 +59,10 @@ $header
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$lng['ticket']['lastchange']}:</td>
|
||||
<td><label for="fromdate">{$lng['ticket']['lastchange_from']}</label>
|
||||
<input type="text" id="fromdate" name="fromdate" /><br /><br />
|
||||
<label for="todate">{$lng['ticket']['lastchange_to']}</label>
|
||||
<input type="text" id="todate" name="todate" /></td>
|
||||
<td>
|
||||
<label for="fromdate">{$lng['ticket']['lastchange_from']}<br /><input type="text" id="fromdate" name="fromdate" /></label>
|
||||
<label for="todate">{$lng['ticket']['lastchange_to']}<br /><input type="text" id="todate" name="todate" /></label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{$lng['ticket']['message']}:</td>
|
||||
@@ -73,9 +72,11 @@ $header
|
||||
<td>{$lng['ticket']['customer']}:</td>
|
||||
<td><select name="customer">$customers</select></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="main_field_confirm" colspan="2"><input type="hidden" name="send" value="send" /><input type="submit" class="bottom" value="{$lng['panel']['search']}" /></td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td class="main_field_confirm" colspan="2" align="right"><input type="hidden" name="send" value="send" /><input type="submit" class="bottom" value="{$lng['panel']['search']}" /></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
235
templates/Sparkle/assets/css/main.css
vendored
@@ -30,6 +30,9 @@ body {
|
||||
header img {
|
||||
padding:10px 0 10px 10px;
|
||||
}
|
||||
img.small {
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
display:none;
|
||||
@@ -76,8 +79,7 @@ td a {
|
||||
}
|
||||
.topheader_navigation {
|
||||
float: right;
|
||||
margin: 36px 50px 0 0;
|
||||
text-transform: uppercase;
|
||||
margin: 14px 50px 0 0;
|
||||
}
|
||||
|
||||
/* TOPHEADER NAV */
|
||||
@@ -86,14 +88,15 @@ ul.topheadernav {
|
||||
font-size: 13px;
|
||||
}
|
||||
ul.topheadernav li {
|
||||
padding: 0 0 0 50px;
|
||||
padding: 0px;
|
||||
margin-left: 50px;
|
||||
float: left;
|
||||
position: relative;
|
||||
}
|
||||
ul.topheadernav li a {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
color: #666;
|
||||
color: #0f3e4e;
|
||||
}
|
||||
ul.topheadernav li a:hover {
|
||||
color: #111;
|
||||
@@ -101,9 +104,10 @@ ul.topheadernav li a:hover {
|
||||
ul.topheadernav li ul {
|
||||
display: none;
|
||||
background-color: #eee;
|
||||
padding: 5px 10px;
|
||||
padding: 5px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
|
||||
margin-left: -10px;
|
||||
margin-left: 0px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
ul.topheadernav li:hover ul {
|
||||
display: block;
|
||||
@@ -111,7 +115,7 @@ ul.topheadernav li:hover ul {
|
||||
}
|
||||
ul.topheadernav li ul li {
|
||||
font-size: 11px;
|
||||
margin-left: -50px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
ul.topheadernav li ul li a:hover {
|
||||
color: #111;
|
||||
@@ -126,6 +130,24 @@ nav div:first-child {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.topheadernav img {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
.countbubble {
|
||||
display: block;
|
||||
font-size: 9px;
|
||||
color: #fff;
|
||||
background-color: #dd0000;
|
||||
position: absolute;
|
||||
padding: 3px;
|
||||
font-weight: bold;
|
||||
line-height: 9px;
|
||||
border-radius: 3px;
|
||||
right: -6px;
|
||||
bottom: -3px;
|
||||
}
|
||||
|
||||
/* FOOTER */
|
||||
footer {
|
||||
clear:both;
|
||||
@@ -138,6 +160,10 @@ footer {
|
||||
footer a,footer a:active,footer a:visited {
|
||||
color: #888;
|
||||
}
|
||||
footer img {
|
||||
margin: 0 2px 3px 0;
|
||||
height: 13px;
|
||||
}
|
||||
|
||||
.login, .install {
|
||||
background-color:#fff;
|
||||
@@ -165,7 +191,7 @@ footer a,footer a:active,footer a:visited {
|
||||
}
|
||||
|
||||
.tinyform input {
|
||||
width:50%;
|
||||
/*width:50%;*/
|
||||
}
|
||||
|
||||
.tinyform input[type="checkbox"] {
|
||||
@@ -196,6 +222,9 @@ footer a,footer a:active,footer a:visited {
|
||||
padding:10px 0;
|
||||
text-align:center;
|
||||
}
|
||||
.tinyform {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.fullform {
|
||||
width:100%;
|
||||
@@ -209,6 +238,9 @@ footer a,footer a:active,footer a:visited {
|
||||
padding:10px 0;
|
||||
text-align:left;
|
||||
}
|
||||
.midform {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.tinyform,.loginsec form {
|
||||
width:400px;
|
||||
@@ -320,7 +352,7 @@ aside.right {
|
||||
|
||||
.overviewsearch {
|
||||
position:absolute;
|
||||
top:155px;
|
||||
top:125px;
|
||||
right:36px;
|
||||
font-size:80%;
|
||||
}
|
||||
@@ -471,7 +503,7 @@ a:hover {
|
||||
.main {
|
||||
margin-left:240px;
|
||||
margin-right:10px;
|
||||
margin-top:105px;
|
||||
margin-top:64px;
|
||||
margin-bottom:0;
|
||||
background-color:#fff;
|
||||
padding: 30px 30px 30px 30px;
|
||||
@@ -591,6 +623,9 @@ table tfoot td {
|
||||
border-top: 1px solid #d1d5d8;
|
||||
background-color: #f2f8fa;
|
||||
}
|
||||
.formtable tfoot td {
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.tfootleft {
|
||||
text-align:left;
|
||||
@@ -603,10 +638,11 @@ table tfoot td {
|
||||
/* input elements */
|
||||
input {
|
||||
background: #fff url(../img/icons/text_align_left.png) no-repeat 5px 4px;
|
||||
padding:2px 4px 2px 24px;
|
||||
height:22px;
|
||||
padding:1px 4px 2px 24px;
|
||||
height:23px;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin-bottom: 5px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
textarea {
|
||||
@@ -614,74 +650,89 @@ textarea {
|
||||
padding:4px 4px 2px 24px;
|
||||
border:1px solid #d9d9d9;
|
||||
margin-bottom: 5px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
input[type="password"] {
|
||||
background:#fff url(../img/icons/password.png) no-repeat 5px 4px;
|
||||
}
|
||||
|
||||
/*
|
||||
* BUTTONS
|
||||
*/
|
||||
input[type="button"],input[type="submit"],input[type="reset"] {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #79bbff), color-stop(1, #378de5) );
|
||||
background:-moz-linear-gradient( center top, #79bbff 5%, #378de5 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#79bbff', endColorstr='#378de5');
|
||||
background-color:#79bbff;
|
||||
-moz-border-radius:5px;
|
||||
-webkit-border-radius:5px;
|
||||
border-radius:5px;
|
||||
display:inline-block;
|
||||
color:#ffffff;
|
||||
padding:2px 24px 2px 24px;
|
||||
text-decoration:none;
|
||||
text-shadow:1px 1px 0px #528ecc;
|
||||
margin: 0 5px;
|
||||
padding: 5px 14px;
|
||||
outline: 0;
|
||||
border: 0;
|
||||
background-color: #eee;
|
||||
min-width: 80px;
|
||||
height: 26px;
|
||||
margin: 0 3px 0 3px;
|
||||
background-image: none;
|
||||
border-width: 0px;
|
||||
}
|
||||
.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 {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #378de5), color-stop(1, #79bbff) );
|
||||
background:-moz-linear-gradient( center top, #378de5 5%, #79bbff 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#378de5', endColorstr='#79bbff');
|
||||
background-color:#378de5;
|
||||
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="submit"],input[class="yesbutton"] {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #9dce2c), color-stop(1, #8cb82b) );
|
||||
background:-moz-linear-gradient( center top, #9dce2c 5%, #8cb82b 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9dce2c', endColorstr='#8cb82b');
|
||||
background-color:#9dce2c;
|
||||
text-shadow:1px 1px 0px #aade7c;
|
||||
color: white;
|
||||
background-color: #35aa47;
|
||||
}
|
||||
input[type="submit"]:hover,input[class="yesbutton"]:hover {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #8cb82b), color-stop(1, #9dce2c) );
|
||||
background:-moz-linear-gradient( center top, #8cb82b 5%, #9dce2c 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#8cb82b', endColorstr='#9dce2c');
|
||||
background-color:#8cb82b;
|
||||
color: white;
|
||||
background-color: #1d943b;
|
||||
}
|
||||
input[class="submit"]:active,input[class="yesbutton"]:active {
|
||||
background-color: #35aa47;
|
||||
}
|
||||
|
||||
input[class="nobutton"],input[type="reset"] {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #fe1a00), color-stop(1, #ce0100) );
|
||||
background:-moz-linear-gradient( center top, #fe1a00 5%, #ce0100 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fe1a00', endColorstr='#ce0100');
|
||||
background-color:#fe1a00;
|
||||
text-shadow:1px 1px 0px #b23e35;
|
||||
color: white;
|
||||
background-color: #d84a38;
|
||||
}
|
||||
input[class="nobutton"]:hover,input[type="reset"]:hover {
|
||||
background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ce0100), color-stop(1, #fe1a00) );
|
||||
background:-moz-linear-gradient( center top, #ce0100 5%, #fe1a00 100% );
|
||||
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ce0100', endColorstr='#fe1a00');
|
||||
background-color:#ce0100;
|
||||
color: white;
|
||||
background-color: #c53727;
|
||||
}
|
||||
input[class="nobutton"]:active,input[type="reset"]:active {
|
||||
background-color: #dd4b39;
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
background:#dae7ee;
|
||||
padding: 0;
|
||||
margin: 0 5px 0 0;
|
||||
vertical-align: middle;
|
||||
height: 26px;
|
||||
}
|
||||
|
||||
select {
|
||||
background:#fff;
|
||||
padding:4px;
|
||||
border:1px solid #d9d9d9;
|
||||
margin-bottom: 5px;
|
||||
padding: 2px 4px 2px 24px;
|
||||
height: 28px;
|
||||
border: 1px solid #d9d9d9;
|
||||
margin: 0 5px 5px 0 !important;
|
||||
border-radius: 3px;
|
||||
background: url(../img/icons/down.png) no-repeat 9px;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
min-width: 170px;
|
||||
text-indent: 0.01px; /* Removes default arrow from firefox*/
|
||||
text-overflow: "";
|
||||
}
|
||||
select[multiple="multiple"] {
|
||||
height: auto;
|
||||
background-image: none;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.customer_add {
|
||||
@@ -730,10 +781,12 @@ select {
|
||||
padding: 4px 0px 4px 8px;
|
||||
}
|
||||
|
||||
.cronjobtask {
|
||||
list-style:url(../img/icons/clock.png) inside;
|
||||
margin:0;
|
||||
padding:0;
|
||||
.cronjobtask li {
|
||||
background-image: url(../img/icons/clock.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0px center;
|
||||
padding-left: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.overviewheading {
|
||||
@@ -754,82 +807,32 @@ select {
|
||||
margin:2px 0 2px 0;
|
||||
overflow:hidden;
|
||||
background-color:#f7f7f7;
|
||||
background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);
|
||||
background-image:-ms-linear-gradient(top,#f5f5f5,#f9f9f9);
|
||||
background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));
|
||||
background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);
|
||||
background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);
|
||||
background-image:linear-gradient(top,#f5f5f5,#f9f9f9);
|
||||
background-repeat:repeat-x;
|
||||
-webkit-border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
border-radius:4px;
|
||||
filter:progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5',endColorstr='#f9f9f9',GradientType=0);
|
||||
-webkit-border-radius:3px;
|
||||
-moz-border-radius:3px;
|
||||
border-radius:3px;
|
||||
-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);
|
||||
-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);
|
||||
box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);
|
||||
}
|
||||
.progress .bar {
|
||||
width:0;
|
||||
width:1px;
|
||||
height:18px;
|
||||
font-size:12px;
|
||||
color:#fff;
|
||||
text-align:center;
|
||||
text-shadow:0 -1px 0 rgba(0,0,0,0.25);
|
||||
background-color:#0e90d2;
|
||||
background-image:-moz-linear-gradient(top,#149bdf,#0480be);
|
||||
background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));
|
||||
background-image:-webkit-linear-gradient(top,#149bdf,#0480be);
|
||||
background-image:-o-linear-gradient(top,#149bdf,#0480be);
|
||||
background-image:linear-gradient(top,#149bdf,#0480be);
|
||||
background-image:-ms-linear-gradient(top,#149bdf,#0480be);
|
||||
background-repeat:repeat-x;
|
||||
filter:progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf',endColorstr='#0480be',GradientType=0);
|
||||
-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);
|
||||
-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);
|
||||
box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);
|
||||
-webkit-box-sizing:border-box;
|
||||
-moz-box-sizing:border-box;
|
||||
-ms-box-sizing:border-box;
|
||||
box-sizing:border-box;
|
||||
-webkit-transition:width .6s ease;
|
||||
-moz-transition:width .6s ease;
|
||||
-ms-transition:width .6s ease;
|
||||
-o-transition:width .6s ease;
|
||||
transition:width .6s ease;
|
||||
}
|
||||
.progress-striped .bar {
|
||||
background-color:#149bdf;
|
||||
background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));
|
||||
background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
-webkit-background-size:40px 40px;
|
||||
-moz-background-size:40px 40px;
|
||||
-o-background-size:40px 40px;
|
||||
background-size:40px 40px;
|
||||
-webkit-transition: width 6s ease;
|
||||
-moz-transition: width 6s ease;
|
||||
-ms-transition: width 6s ease;
|
||||
-o-transition: width 6s ease;
|
||||
transition: width 6s ease;
|
||||
}
|
||||
.progress-danger .bar {
|
||||
background-color:#dd514c;
|
||||
background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);
|
||||
background-image:-ms-linear-gradient(top,#ee5f5b,#c43c35);
|
||||
background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));
|
||||
background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);
|
||||
background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);
|
||||
background-image:linear-gradient(top,#ee5f5b,#c43c35);
|
||||
background-repeat:repeat-x;
|
||||
filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0);
|
||||
}
|
||||
.progress-danger.progress-striped .bar {
|
||||
background-color:#ee5f5b;
|
||||
background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));
|
||||
background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);
|
||||
}
|
||||
|
||||
.maintable {
|
||||
|
||||
BIN
templates/Sparkle/assets/img/icons/delete_20.png
vendored
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
templates/Sparkle/assets/img/icons/edit_20.png
vendored
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
templates/Sparkle/assets/img/icons/file_20.png
vendored
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
templates/Sparkle/assets/img/icons/folder_20.png
vendored
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
templates/Sparkle/assets/img/icons/menubar_tickets.png
vendored
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
templates/Sparkle/assets/img/icons/menubar_tickets_null.png
vendored
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
templates/Sparkle/assets/img/icons/parent_20.png
vendored
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
templates/Sparkle/assets/img/icons/rename_20.png
vendored
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
templates/Sparkle/assets/img/logo_grey.png
vendored
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
11
templates/Sparkle/assets/js/main.js
vendored
@@ -19,6 +19,11 @@ $(document).ready(function() {
|
||||
$("html, body").animate({ scrollTop: 0 }, 600);
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#historyback').click(function() {
|
||||
parent.history.back();
|
||||
return false;
|
||||
});
|
||||
|
||||
// this is necessary for the special setting feature (ref #1010)
|
||||
$.getQueryVariable = function(key) {
|
||||
@@ -51,10 +56,8 @@ $(document).ready(function() {
|
||||
$(".main").css('min-height', $("nav").height() - 134);
|
||||
|
||||
// set focus on username-field if on loginpage
|
||||
if ($(".loginpage").length != 0) {
|
||||
$("#loginname").focus();
|
||||
}
|
||||
|
||||
$("#loginname").focus();
|
||||
|
||||
if ($("table.bradius").length != 0) {
|
||||
$("table.bradius tbody tr").hover(function() {
|
||||
$(this).css("background-color", "#f5f5f5");
|
||||
|
||||
@@ -10,17 +10,22 @@ $header
|
||||
<section class="tinyform bradius">
|
||||
<form method="post" action="{$linker->getLink(array('section' => 'index'))}" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['menue']['main']['changelanguage']}</legend>
|
||||
<p>
|
||||
<label for="def_language">{$lng['login']['language']}:</label>
|
||||
<select id="def_language" name="def_language">$language_options</select>
|
||||
</p>
|
||||
<p class="submit">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<input type="submit" value="{$lng['menue']['main']['changelanguage']}" />
|
||||
</p>
|
||||
<table class="formtable tinyform">
|
||||
<tr>
|
||||
<td width="50%"><label for="def_language">{$lng['login']['language']}:</label></td>
|
||||
<td><select id="def_language" name="def_language">$language_options</select></td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<input type="submit" value="{$lng['menue']['main']['changelanguage']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
@@ -10,33 +10,38 @@ $header
|
||||
<section class="tinyform bradius">
|
||||
<form method="post" action="{$linker->getLink(array('section' => 'index'))}" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['menue']['main']['changepassword']}</legend>
|
||||
<p>
|
||||
<label for="old_password">{$lng['changepassword']['old_password']}:</label>
|
||||
<input type="password" id="old_password" name="old_password" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="new_password">{$lng['changepassword']['new_password']}:</label>
|
||||
<input type="password" id="new_password" name="new_password" />
|
||||
</p>
|
||||
<p>
|
||||
<label for="new_password_confirm">{$lng['changepassword']['new_password_confirm']}:</label>
|
||||
<input type="password" id="new_password_confirm" name="new_password_confirm" />
|
||||
</p>
|
||||
<p>
|
||||
<input type="checkbox" name="change_main_ftp" id="change_main_ftp" value="true" />
|
||||
{$lng['changepassword']['also_change_ftp']}
|
||||
</p>
|
||||
<p>
|
||||
<input type="checkbox" name="change_webalizer" id="change_webalizer" value="true" />
|
||||
{$lng['changepassword']['also_change_webalizer']}
|
||||
</p>
|
||||
<p class="submit">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<input type="submit" value="{$lng['menue']['main']['changepassword']}" />
|
||||
</p>
|
||||
<table class="formtable fullform">
|
||||
<tr>
|
||||
<td width="50%"><label for="old_password">{$lng['changepassword']['old_password']}:</label></td>
|
||||
<td><input type="password" id="old_password" name="old_password" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="new_password">{$lng['changepassword']['new_password']}:</label></td>
|
||||
<td><input type="password" id="new_password" name="new_password" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="new_password_confirm">{$lng['changepassword']['new_password_confirm']}:</label></td>
|
||||
<td><input type="password" id="new_password_confirm" name="new_password_confirm" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="change_main_ftp">{$lng['changepassword']['also_change_ftp']}:</label></td>
|
||||
<td><input type="checkbox" name="change_main_ftp" id="change_main_ftp" value="true" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="change_webalizer">{$lng['changepassword']['also_change_webalizer']}:</label></td>
|
||||
<td><input type="checkbox" name="change_webalizer" id="change_webalizer" value="true" /></td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<input type="submit" value="{$lng['menue']['main']['changepassword']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
@@ -10,17 +10,22 @@ $header
|
||||
<section class="tinyform bradius">
|
||||
<form method="post" action="{$linker->getLink(array('section' => 'index'))}" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['menue']['main']['changetheme']}</legend>
|
||||
<p>
|
||||
<label for="theme">{$lng['panel']['theme']}:</label>
|
||||
<select id="theme" name="theme">$theme_options</select>
|
||||
</p>
|
||||
<p class="submit">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<input class="bottom" type="submit" value="{$lng['menue']['main']['changetheme']}" />
|
||||
</p>
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
<table class="formtable tinyform">
|
||||
<tr>
|
||||
<td width="50%"><label for="theme">{$lng['panel']['theme']}:</label></td>
|
||||
<td><select id="theme" name="theme">$theme_options</select></td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<input class="bottom" type="submit" value="{$lng['menue']['main']['changetheme']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
9
templates/Sparkle/customer/index/index.tpl
vendored
@@ -1,15 +1,6 @@
|
||||
$header
|
||||
<article>
|
||||
|
||||
<if 0 < $awaitingtickets && $settings['ticket']['enabled'] == 1 >
|
||||
<div class="messagewrapperfull">
|
||||
<div class="warningcontainer bradius">
|
||||
<div class="warningtitle">{$lng['admin']['warning']}</div>
|
||||
<div class="warning"><br /><strong>{$awaitingtickets_text}</strong></div>
|
||||
</div>
|
||||
</div>
|
||||
</if>
|
||||
|
||||
<section class="dboarditem bradius">
|
||||
<table>
|
||||
<tr>
|
||||
|
||||
2
templates/Sparkle/footer.tpl
vendored
@@ -2,7 +2,7 @@
|
||||
</div>
|
||||
</if>
|
||||
<footer>
|
||||
<span>Froxlor
|
||||
<span><img src="templates/{$theme}/assets/img/logo_grey.png" alt="Froxlor" />
|
||||
<if ($settings['admin']['show_version_login'] == '1' && $filename == 'index.php') || ($filename != 'index.php' && $settings['admin']['show_version_footer'] == '1')>
|
||||
{$version}{$branding}
|
||||
</if>
|
||||
|
||||
17
templates/Sparkle/header.tpl
vendored
@@ -41,9 +41,22 @@
|
||||
<hgroup>
|
||||
<h1>Froxlor Server Management Panel</h1>
|
||||
</hgroup>
|
||||
<img src="{$header_logo}" alt="Froxlor Server Management Panel" />
|
||||
<img src="{$header_logo}" alt="Froxlor Server Management Panel" class="small" />
|
||||
<div class="topheader_navigation">
|
||||
<ul class="topheadernav">
|
||||
<if $settings['ticket']['enabled'] == 1>
|
||||
<li>
|
||||
<a href="{$linker->getLink(array('section' => 'tickets', 'page' => 'tickets'))}">
|
||||
<if 0 < $awaitingtickets>
|
||||
<img src="templates/{$theme}/assets/img/icons/menubar_tickets.png" alt="{$lng['menue']['ticket']['ticket']}" />
|
||||
<span class="countbubble">{$awaitingtickets}</span>
|
||||
<else>
|
||||
<img src="templates/{$theme}/assets/img/icons/menubar_tickets_null.png" alt="{$lng['menue']['ticket']['ticket']}" />
|
||||
</if>
|
||||
</a>
|
||||
</li>
|
||||
</if>
|
||||
<li>{$userinfo['loginname']}</li>
|
||||
<li><a href="{$linker->getLink(array('section' => 'index'))}">{$lng['admin']['overview']}</a></li>
|
||||
<li><a href="#">{$lng['panel']['options']} ▾</a>
|
||||
<ul>
|
||||
@@ -57,7 +70,7 @@
|
||||
</if>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="{$linker->getLink(array('section' => 'index', 'action' => 'logout'))}">{$lng['login']['logout']} {$userinfo['loginname']}</a></li>
|
||||
<li><a href="{$linker->getLink(array('section' => 'index', 'action' => 'logout'))}" style="color: #cc0000;">{$lng['login']['logout']}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
10
templates/Sparkle/index.tpl
vendored
@@ -18,9 +18,9 @@
|
||||
<script type="text/javascript" src="templates/{$theme}/assets/js/main.js"></script>
|
||||
<title>{$title}Froxlor Server Management Panel</title>
|
||||
<style type="text/css">
|
||||
body {
|
||||
font-family: {if $settings.panel.use_webfonts == 1}{$webfont},{/if} Verdana, Geneva, sans-serif;
|
||||
}
|
||||
body {
|
||||
font-family: {if $settings.panel.use_webfonts == 1}{$webfont},{/if} Verdana, Geneva, sans-serif;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -33,7 +33,9 @@
|
||||
<img src="{$header_logo}" alt="Froxlor Server Management Panel" />
|
||||
</header>
|
||||
|
||||
<nav>{$navigation}</nav>
|
||||
<nav><div class="menuelement bradiusodd">
|
||||
<h4>Froxlor WebFTP</h4>
|
||||
</div>{$navigation}</nav>
|
||||
{/if}
|
||||
|
||||
{if $loggedin}
|
||||
|
||||
2
templates/Sparkle/misc/dberrornice.tpl
vendored
@@ -35,7 +35,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<aside class="right">
|
||||
<a href="javascript:history.go(-1)" title="Click here to go back">Go back</a>
|
||||
<a href="#" title="Click here to go back" id="historyback">Go back</a>
|
||||
</aside>
|
||||
</section>
|
||||
|
||||
|
||||
14
templates/Sparkle/misc/form/table_end.tpl
vendored
@@ -1,6 +1,8 @@
|
||||
<tr>
|
||||
<td colspan="2" style="text-align:right;">
|
||||
<input type="reset" value="{$lng['panel']['reset']}" />
|
||||
<input type="submit" value="{$lng['panel']['save']}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="2" style="text-align:right;">
|
||||
<input type="reset" value="{$lng['panel']['reset']}" />
|
||||
<input type="submit" value="{$lng['panel']['save']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
2
templates/Sparkle/misc/form/table_row.tpl
vendored
@@ -1,5 +1,5 @@
|
||||
<tr>
|
||||
<td{$style} class="formlabeltd">
|
||||
<td{$style} class="formlabeltd" style="width:50%">
|
||||
<label for="{$fieldname}">{$label}{$mandatory}:
|
||||
<if $desc != ''>
|
||||
<br /><span style="font-size:85%;">{$desc}</span>
|
||||
|
||||
66
templates/Sparkle/webftp/webftp_edit.tpl
vendored
@@ -1,33 +1,33 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/group_edit.png" alt="" />
|
||||
{t}Editing{/t}: <a href="webftp.php?action=cd&file={$currentDir}">{$currentDir}</a>/{$file} ({$mode})
|
||||
</h2>
|
||||
</header>
|
||||
{if isset($successmessage)}
|
||||
<div class="successcontainer bradius">
|
||||
<div class="successtitle">{t}Success{/t}</div>
|
||||
<div class="success">{$successmessage}</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($errormessage)}
|
||||
<div class="errorcontainer bradius">
|
||||
<div class="errortitle">{t}Error{/t}</div>
|
||||
<div class="error">{$errormessage}</div>
|
||||
</div>
|
||||
{/if}
|
||||
<section >
|
||||
<form name="editForm" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="edit" />
|
||||
<input type="hidden" name="op" value="save" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="hidden" name="file" value="{$file}" />
|
||||
<input type="hidden" name="mode" value="{$mode}" />
|
||||
<textarea name="fileContent" cols="80" rows="40" wrap="OFF" id="fileContent">{$myFileContent|escape:'htmlall'}</textarea>
|
||||
<br />
|
||||
<input type="submit" name="Submit" value="{t}Save file{/t}" />
|
||||
<input type="button" name="Submit2" value="{t}Cancel{/t}" onClick="javascript:document.location.href='webftp.php?action=cd&file={$currentDir}'" />
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/group_edit_big.png" alt="" />
|
||||
{t}Editing{/t}: <a href="webftp.php?action=cd&file={$currentDir}">{$currentDir}</a>/{$file} ({$mode})
|
||||
</h2>
|
||||
</header>
|
||||
{if isset($successmessage)}
|
||||
<div class="successcontainer bradius">
|
||||
<div class="successtitle">{t}Success{/t}</div>
|
||||
<div class="success">{$successmessage}</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($errormessage)}
|
||||
<div class="errorcontainer bradius">
|
||||
<div class="errortitle">{t}Error{/t}</div>
|
||||
<div class="error">{$errormessage}</div>
|
||||
</div>
|
||||
{/if}
|
||||
<section >
|
||||
<form name="editForm" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="edit" />
|
||||
<input type="hidden" name="op" value="save" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="hidden" name="file" value="{$file}" />
|
||||
<input type="hidden" name="mode" value="{$mode}" />
|
||||
<textarea name="fileContent" cols="80" rows="40" wrap="OFF" id="fileContent">{$myFileContent|escape:'htmlall'}</textarea>
|
||||
<br />
|
||||
<input type="submit" name="Submit" value="{t}Save file{/t}" />
|
||||
<input type="button" name="Submit2" value="{t}Cancel{/t}" onClick="javascript:document.location.href='webftp.php?action=cd&file={$currentDir}'" />
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
|
||||
68
templates/Sparkle/webftp/webftp_edit_new.tpl
vendored
@@ -1,34 +1,34 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/group_edit.png" alt="" />
|
||||
{t}Creating a file in{/t}: <a href="webftp.php?action=cd&file={$currentDir}">{$currentDir}</a> ({$mode})
|
||||
</h2>
|
||||
</header>
|
||||
{if isset($successmessage)}
|
||||
<div class="successcontainer bradius">
|
||||
<div class="successtitle">{t}Success{/t}</div>
|
||||
<div class="success">{$successmessage}</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($errormessage)}
|
||||
<div class="errorcontainer bradius">
|
||||
<div class="errortitle">{t}Error{/t}</div>
|
||||
<div class="error">{$errormessage}</div>
|
||||
</div>
|
||||
{/if}
|
||||
<section >
|
||||
<form name="editForm" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="edit" />
|
||||
<input type="hidden" name="op" value="save" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}">
|
||||
<input type="hidden" name="mode" name="{$mode}">
|
||||
<textarea name="fileContent" cols="80" rows="40" id="fileContent"></textarea>
|
||||
<br />
|
||||
<legend for="filename">{t}Filename{/t}:</legend>
|
||||
<input type="text" id="filename" name="file" value="{$file}" />
|
||||
<input type="submit" name="Submit" value="{t}Save file{/t}" />
|
||||
<input type="button" name="Submit2" value="{t}Cancel{/t}" onClick="javascript:document.location.href='webftp.php?action=cd&file={$currentDir}'" />
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/group_edit_big.png" alt="" />
|
||||
{t}Creating a file in{/t}: <a href="webftp.php?action=cd&file={$currentDir}">{$currentDir}</a> ({$mode})
|
||||
</h2>
|
||||
</header>
|
||||
{if isset($successmessage)}
|
||||
<div class="successcontainer bradius">
|
||||
<div class="successtitle">{t}Success{/t}</div>
|
||||
<div class="success">{$successmessage}</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($errormessage)}
|
||||
<div class="errorcontainer bradius">
|
||||
<div class="errortitle">{t}Error{/t}</div>
|
||||
<div class="error">{$errormessage}</div>
|
||||
</div>
|
||||
{/if}
|
||||
<section >
|
||||
<form name="editForm" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="edit" />
|
||||
<input type="hidden" name="op" value="save" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}">
|
||||
<input type="hidden" name="mode" name="{$mode}">
|
||||
<textarea name="fileContent" cols="80" rows="40" id="fileContent"></textarea>
|
||||
<br />
|
||||
<legend for="filename">{t}Filename{/t}:</legend>
|
||||
<input type="text" id="filename" name="file" value="{$file}" />
|
||||
<input type="submit" name="Submit" value="{t}Save file{/t}" />
|
||||
<input type="button" name="Submit2" value="{t}Cancel{/t}" onClick="javascript:document.location.href='webftp.php?action=cd&file={$currentDir}'" />
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
|
||||
86
templates/Sparkle/webftp/webftp_main.tpl
vendored
@@ -1,43 +1,43 @@
|
||||
<form name="putmForm" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="op" value="delete"/>
|
||||
<input type="hidden" name="action" value="multiple" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="hidden" name="mode" value="{$mode}" />
|
||||
<table class="bradius">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
<th>{t}Filename{/t}</th>
|
||||
<th>{t}Size{/t}</th>
|
||||
<th>{t}Date{/t}</th>
|
||||
<th>{t}Permissions{/t}</th>
|
||||
<th>{t}User{/t}</th>
|
||||
<th>{t}Group{/t}</th>
|
||||
<th colspan="4">{t}Options{/t}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<a href="webftp.php?action=cd&file=..&currentDir={$currentDir}"><img src="{$image_folder}/icons/parent.gif" height="20" width="20" align="top" border="0"></a>
|
||||
</td>
|
||||
<td align="left" colspan="10">
|
||||
<a href="webftp.php?action=cd&file=..&currentDir={$currentDir}">..</a>
|
||||
</td>
|
||||
</tr>
|
||||
{$output_dir}
|
||||
{$output_link}
|
||||
{$output_file}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="12">
|
||||
{t}Files{/t}: <strong>{$countArray.file}</strong>; {t}Complete filesize{/t}: <strong>{$countArray.filesize}</strong>; {t}Symlinks{/t}: <strong>{$countArray.link}</strong>; {t}Directories{/t}: <strong>{$countArray.dir}</strong>; {t}Complete directorysize{/t}: <strong>{$countArray.dirsize}</strong>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
<br />
|
||||
<hr />
|
||||
<section class="dboarditemfull bradiusodd">
|
||||
<form name="putmForm" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="op" value="delete"/>
|
||||
<input type="hidden" name="action" value="multiple" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="hidden" name="mode" value="{$mode}" />
|
||||
<table class="bradiusodd">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
<th>{t}Filename{/t}</th>
|
||||
<th>{t}Size{/t}</th>
|
||||
<th>{t}Date{/t}</th>
|
||||
<th>{t}Permissions{/t}</th>
|
||||
<th>{t}User{/t}</th>
|
||||
<th>{t}Group{/t}</th>
|
||||
<th>{t}Options{/t}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<a href="webftp.php?action=cd&file=..&currentDir={$currentDir}"><img src="templates/{$theme}/assets/img/icons/parent_20.png" height="20" width="20" align="top" border="0"></a>
|
||||
</td>
|
||||
<td align="left" colspan="10">
|
||||
<a href="webftp.php?action=cd&file=..&currentDir={$currentDir}">..</a>
|
||||
</td>
|
||||
</tr>
|
||||
{$output_dir}
|
||||
{$output_link}
|
||||
{$output_file}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="10">
|
||||
{t}Files{/t}: <strong>{$countArray.file}</strong>; {t}Complete filesize{/t}: <strong>{$countArray.filesize}</strong>; {t}Symlinks{/t}: <strong>{$countArray.link}</strong>; {t}Directories{/t}: <strong>{$countArray.dir}</strong>; {t}Complete directorysize{/t}: <strong>{$countArray.dirsize}</strong>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
165
templates/Sparkle/webftp/webftp_main_additional.tpl
vendored
@@ -1,80 +1,85 @@
|
||||
<article>
|
||||
<section class="dboarditem bradius">
|
||||
<h2>{t}Basic operations{/t}</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<form name="cdDirect" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="cddirect" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="text" name="file" value="" style="width:170px;" />
|
||||
<input name="submit" type="submit" style="width: 150;" value="{t}Change dir{/t}" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<form name="dirinput" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="createdir" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" style="width=150;" />
|
||||
<input type="hidden" name="mode" value="{$mode}" />
|
||||
<input type="text" name="file" value="" style="width:170px;" />
|
||||
<input name="submit" type="submit" style="width: 150;" value="{t}Create dir{/t}" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<form name="newfile" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="hidden" name="action" value="edit" />
|
||||
<input type="hidden" name="op" value="new" />
|
||||
<input type="text" name="file" value="file.txt" style="width:170px;" />
|
||||
<input name="submit" type="submit" style="width: 150;" value="{t}Create new file in current directory{/t}">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</section>
|
||||
<section class="dboarditem bradius">
|
||||
<h2>{t}Upload files{/t}</h2>
|
||||
<form name="putForm" enctype="multipart/form-data" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="put" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="hidden" name="mode" value="{$mode}" />
|
||||
<table>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file1" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file2" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file3" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file4" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input name="submit2" type="submit" style="width: 150;" value="{t}Upload file(s){/t}">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</section>
|
||||
<br />
|
||||
<section class="dboarditemfull bradius">
|
||||
<article>
|
||||
<section class="dboarditem bradiusodd">
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>{t}Basic operations{/t}</th></tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td>
|
||||
<form name="cdDirect" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="cddirect" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="text" name="file" value="" style="width:170px;" />
|
||||
<input name="submit" type="submit" style="width: 150;" value="{t}Change dir{/t}" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<form name="dirinput" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="createdir" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" style="width=150;" />
|
||||
<input type="hidden" name="mode" value="{$mode}" />
|
||||
<input type="text" name="file" value="" style="width:170px;" />
|
||||
<input name="submit" type="submit" style="width: 150;" value="{t}Create dir{/t}" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<form name="newfile" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="hidden" name="action" value="edit" />
|
||||
<input type="hidden" name="op" value="new" />
|
||||
<input type="text" name="file" value="file.txt" style="width:170px;" />
|
||||
<input name="submit" type="submit" style="width: 150;" value="{t}Create new file in current directory{/t}">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</section>
|
||||
<section class="dboarditem bradiusodd">
|
||||
<form name="putForm" enctype="multipart/form-data" method="POST" action="webftp.php">
|
||||
<input type="hidden" name="action" value="put" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
<input type="hidden" name="mode" value="{$mode}" />
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{t}Upload files{/t}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file1" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file2" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file3" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file4" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<input type="file" name="file5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" align="right">
|
||||
<input name="submit2" type="submit" style="width: 150;" value="{t}Upload file(s){/t}">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</section>
|
||||
<br />
|
||||
|
||||
32
templates/Sparkle/webftp/webftp_main_dir_row.tpl
vendored
@@ -1,14 +1,18 @@
|
||||
<tr {$checked_color}>
|
||||
<td><input type="checkbox" name="file[]" value="{$myDir.name}" {$checked} /></td>
|
||||
<td><a href="webftp.php?action=cd&file={$myDir.name}&currentDir={$currentDir}"><img src="{$image_folder}/icons/folder.gif" align="top" border="0" /></a></td>
|
||||
<td><a href="webftp.php?action=cd&file={$myDir.name}&currentDir={$currentDir}">{$myDir.name}</a></td>
|
||||
<td align=right>{$myDir.size}</td>
|
||||
<td>{$myDir.date}</td>
|
||||
<td>{$myDir.perms}</td>
|
||||
<td>{$myDir.user}</td>
|
||||
<td>{$myDir.group}</td>
|
||||
<td><a href="webftp.php?action=deldir&file={$myDir.name}&currentDir={$currentDir}"><img src="{$image_folder}/icons/delete.png" border="0" alt="{t}Delete{/t}" /></a></td>
|
||||
<td><a href="webftp.php?action=rename&op=show&file={$myDir.name}&currentDir={$currentDir}"><img src="{$image_folder}/icons/rename.gif" border="0" alt="{t}Rename{/t}" /></a></td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr {$checked_color}>
|
||||
<td><input type="checkbox" name="file[]" value="{$myDir.name}" {$checked} /></td>
|
||||
<td><a href="webftp.php?action=cd&file={$myDir.name}&currentDir={$currentDir}"><img src="templates/{$theme}/assets/img/icons/folder_20.png" align="top" border="0" /></a></td>
|
||||
<td><a href="webftp.php?action=cd&file={$myDir.name}&currentDir={$currentDir}">{$myDir.name}</a></td>
|
||||
<td align=right>{$myDir.size}</td>
|
||||
<td>{$myDir.date}</td>
|
||||
<td>{$myDir.perms}</td>
|
||||
<td>{$myDir.user}</td>
|
||||
<td>{$myDir.group}</td>
|
||||
<td>
|
||||
<a href="webftp.php?action=deldir&file={$myDir.name}&currentDir={$currentDir}">
|
||||
<img src="templates/{$theme}/assets/img/icons/delete_20.png" border="0" alt="{t}Delete{/t}" />
|
||||
</a>
|
||||
<a href="webftp.php?action=rename&op=show&file={$myDir.name}&currentDir={$currentDir}">
|
||||
<img src="templates/{$theme}/assets/img/icons/rename_20.png" border="0" alt="{t}Rename{/t}" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
<tr {$checked_color}>
|
||||
<td><input type="checkbox" name="file[]" value="{$myDir.name}" {$checked} /></td>
|
||||
<td><a href="webftp.php?action=get&file={$myDir.name}&currentDir={$currentDir}"><img src="{$image_folder}/icons/file.gif" align="top" border="0" /></a></td>
|
||||
<td><a href="webftp.php?action=get&file={$myDir.name}&currentDir={$currentDir}">{$myDir.name}</a></td>
|
||||
<td align=right>{$myDir.size}</td>
|
||||
<td>{$myDir.date}</td>
|
||||
<td>{$myDir.perms}</td>
|
||||
<td>{$myDir.user}</td>
|
||||
<td>{$myDir.group}</td>
|
||||
<td><a href="webftp.php?action=delfile&file={$myDir.name}&currentDir={$currentDir}"><img src="{$image_folder}/icons/delete.png" border="0" alt="{t}Delete{/t}"></a></td>
|
||||
<td><a href="webftp.php?action=rename&op=show&file={$myDir.name}¤tDir={$currentDir}"><img src="{$image_folder}/icons/rename.gif" border="0" alt="{t}Rename{/t}"></a></td>
|
||||
<td>{if $editable}<a href="webftp.php?action=edit&op=open&file={$myDir.name}&currentDir={$currentDir}"><img src="{$image_folder}/icons/edit.png" border="0" alt="{t}Edit{/t}"></a>{/if}</td>
|
||||
<td> </td>
|
||||
<tr {$checked_color}>
|
||||
<td><input type="checkbox" name="file[]" value="{$myDir.name}" {$checked} /></td>
|
||||
<td><a href="webftp.php?action=get&file={$myDir.name}&currentDir={$currentDir}"><img src="templates/{$theme}/assets/img/icons/file_20.png" align="top" border="0" /></a></td>
|
||||
<td><a href="webftp.php?action=get&file={$myDir.name}&currentDir={$currentDir}">{$myDir.name}</a></td>
|
||||
<td align=right>{$myDir.size}</td>
|
||||
<td>{$myDir.date}</td>
|
||||
<td>{$myDir.perms}</td>
|
||||
<td>{$myDir.user}</td>
|
||||
<td>{$myDir.group}</td>
|
||||
<td>
|
||||
<a href="webftp.php?action=delfile&file={$myDir.name}&currentDir={$currentDir}">
|
||||
<img src="templates/{$theme}/assets/img/icons/delete_20.png" border="0" alt="{t}Delete{/t}">
|
||||
</a>
|
||||
<a href="webftp.php?action=rename&op=show&file={$myDir.name}¤tDir={$currentDir}">
|
||||
<img src="templates/{$theme}/assets/img/icons/rename_20.png" border="0" alt="{t}Rename{/t}">
|
||||
</a>
|
||||
{if $editable}
|
||||
<a href="webftp.php?action=edit&op=open&file={$myDir.name}&currentDir={$currentDir}">
|
||||
<img src="templates/{$theme}/assets/img/icons/edit_20.png" border="0" alt="{t}Edit{/t}">
|
||||
</a>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
38
templates/Sparkle/webftp/webftp_main_header.tpl
vendored
@@ -1,19 +1,19 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/group_edit.png" alt="" />
|
||||
{$connected_to} ({$mode})
|
||||
</h2>
|
||||
</header>
|
||||
{if isset($successmessage)}
|
||||
<div class="successcontainer bradius">
|
||||
<div class="successtitle">{t}Success{/t}</div>
|
||||
<div class="success">{$successmessage|escape:'htmlall'|nl2br}</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($errormessage)}
|
||||
<div class="errorcontainer bradius">
|
||||
<div class="errortitle">{t}Error{/t}</div>
|
||||
<div class="error">{$errormessage|escape:'htmlall'|nl2br}</div>
|
||||
</div>
|
||||
{/if}
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/group_edit_big.png" alt="" />
|
||||
{$connected_to} ({$mode})
|
||||
</h2>
|
||||
</header>
|
||||
{if isset($successmessage)}
|
||||
<div class="successcontainer bradius">
|
||||
<div class="successtitle">{t}Success{/t}</div>
|
||||
<div class="success">{$successmessage|escape:'htmlall'|nl2br}</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if isset($errormessage)}
|
||||
<div class="errorcontainer bradius">
|
||||
<div class="errortitle">{t}Error{/t}</div>
|
||||
<div class="error">{$errormessage|escape:'htmlall'|nl2br}</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
<tr {$checked_color}>
|
||||
<td><input type="checkbox" name="file[]" value="{$myDir.name}" {$checked} /></td>
|
||||
<td><a href="webftp.php?action=cd&file={$myDir.name}&currentDir={$currentDir}"><img src="{$image_folder}/icons/link.gif" align="top" border="0" /></a></td>
|
||||
<td><a href="webftp.php?action=cd&file={$myDir.name}&currentDir={$currentDir}">{$myDir.name}</a></td>
|
||||
<td align=right>{$myDir.size}</td>
|
||||
<td>{$myDir.date}</td>
|
||||
<td>{$myDir.perms}</td>
|
||||
<td>{$myDir.user}</td>
|
||||
<td>{$myDir.group}</td>
|
||||
<td><a href="webftp.php?action=deldir&file={$myDir.name}&currentDir={$currentDir}"><img src="{$image_folder}/icons/delete.png" border="0" alt="{t}Delete{/t}"></a></td>
|
||||
<td><a href="webftp.php?action=rename&op=show&file={$myDir.name}¤tDir={$currentDir}"><img src="{$image_folder}/icons/rename.gif" border="0" alt="{t}Rename{/t}"></a></td>
|
||||
<td colspan="2">{t}Symbolic link to{/t}: {$myDir.target} </td>
|
||||
<tr {$checked_color}>
|
||||
<td><input type="checkbox" name="file[]" value="{$myDir.name}" {$checked} /></td>
|
||||
<td><a href="webftp.php?action=cd&file={$myDir.name}&currentDir={$currentDir}"><img src="templates/{$theme}/assets/img/icons/link_20.png" align="top" border="0" /></a></td>
|
||||
<td><a href="webftp.php?action=cd&file={$myDir.name}&currentDir={$currentDir}">{$myDir.name}</a></td>
|
||||
<td align=right>{$myDir.size}</td>
|
||||
<td>{$myDir.date}</td>
|
||||
<td>{$myDir.perms}</td>
|
||||
<td>{$myDir.user}</td>
|
||||
<td>{$myDir.group}</td>
|
||||
<td>
|
||||
<a href="webftp.php?action=deldir&file={$myDir.name}&currentDir={$currentDir}">
|
||||
<img src="templates/{$theme}/assets/img/icons/delete_20.png" border="0" alt="{t}Delete{/t}">
|
||||
</a>
|
||||
<a href="webftp.php?action=rename&op=show&file={$myDir.name}¤tDir={$currentDir}">
|
||||
<img src="templates/{$theme}/assets/img/icons/rename_20.png" border="0" alt="{t}Rename{/t}">
|
||||
</a><br />
|
||||
<small>{t}Symbolic link to{/t}: {$myDir.target}</small>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -1,30 +1,35 @@
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td colspan="10" align="left">{t}Selected file(s){/t}:</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input type="radio" name="op" value="delete" />{t}Delete{/t}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input name="op" type="radio" value="chmod" />
|
||||
<input type="text" name="chmod" value="755" maxlength="3" size="5" />{t}Change permission to{/t}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input name="op" type="radio" value="move" checked="checked" />
|
||||
<input name="move_to" type="text" id="move_to" value="{$currentDir}" size="30" />{t}Move to{/t}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input type="submit" name="submit" value="{t}Do it{/t}" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</section>
|
||||
<section class="dboarditemfull bradiusodd">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="10" align="left">{t}Selected file(s){/t}:</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input type="radio" name="op" value="delete" />{t}Delete{/t}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input name="op" type="radio" value="chmod" />
|
||||
{t}Change permission to{/t}<input type="text" name="chmod" value="755" maxlength="3" size="5" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input name="op" type="radio" value="move" checked="checked" />
|
||||
{t}Move to{/t}<input name="move_to" type="text" id="move_to" value="{$currentDir}" size="30" />
|
||||
</td>
|
||||
</tr>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input type="submit" name="submit" value="{t}Do it{/t}" />
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
52
templates/Sparkle/webftp/webftp_main_prompt.tpl
vendored
@@ -1,26 +1,26 @@
|
||||
<style type="text/css">
|
||||
<!--
|
||||
.Stil1 {
|
||||
color: #FF0000;
|
||||
font-weight: bold;
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td colspan="10" align="left"><span class="Stil1">{$action_text|escape:'htmlall'|nl2br}</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input type="hidden" name="chmod" value="{$chmod}" />
|
||||
<input type="hidden" name="move_to" value="{$move_to}" />
|
||||
<input type="hidden" name="action" value="multiple">
|
||||
<input type="hidden" name="op" value="{$op}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left"><input type="submit" name="yes" value="{t}Yes{/t}"><input type="submit" name="no" value="{t}No{/t}"></td>
|
||||
</tr>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
.Stil1 {
|
||||
color: #FF0000;
|
||||
font-weight: bold;
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
<table cellpadding="0" cellspacing="0" class="bradius">
|
||||
<tr>
|
||||
<td colspan="10" align="left"><span class="Stil1">{$action_text|escape:'htmlall'|nl2br}</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left">
|
||||
<input type="hidden" name="chmod" value="{$chmod}" />
|
||||
<input type="hidden" name="move_to" value="{$move_to}" />
|
||||
<input type="hidden" name="action" value="multiple">
|
||||
<input type="hidden" name="op" value="{$op}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="10" align="left"><input type="submit" name="yes" value="{t}Yes{/t}"><input type="submit" name="no" value="{t}No{/t}"></td>
|
||||
</tr>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
39
templates/Sparkle/webftp/webftp_main_rename.tpl
vendored
@@ -1,20 +1,19 @@
|
||||
<table border="0" cellspacing="2" cellpadding="2">
|
||||
<form name="rename" method="post" action="webftp.php">
|
||||
<tr>
|
||||
<td>
|
||||
<input type="hidden" name="op" value="do" />
|
||||
<input type="hidden" name="action" value="rename" />
|
||||
<input type="hidden" name="file" value="{$file}" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
{$rename_text}
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="file2" value="{$file}" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="submit" name="submit" value="{t}Rename / Move{/t}">
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</table>
|
||||
<hr />
|
||||
<table border="0" cellspacing="2" cellpadding="2" class="bradius">
|
||||
<form name="rename" method="post" action="webftp.php">
|
||||
<tr>
|
||||
<td>
|
||||
<input type="hidden" name="op" value="do" />
|
||||
<input type="hidden" name="action" value="rename" />
|
||||
<input type="hidden" name="file" value="{$file}" />
|
||||
<input type="hidden" name="currentDir" value="{$currentDir}" />
|
||||
{$rename_text}
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="file2" value="{$file}" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="submit" name="submit" value="{t}Rename / Move{/t}">
|
||||
</td>
|
||||
</tr>
|
||||
</form>
|
||||
</table>
|
||||
|
||||
84
webftp.php
@@ -62,62 +62,71 @@ if(isset( $_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off' ))
|
||||
header('X-Content-Type-Options: nosniff' );
|
||||
|
||||
// ensure that default timezone is set
|
||||
if(function_exists("date_default_timezone_set") && function_exists("date_default_timezone_get"))
|
||||
{
|
||||
if (function_exists("date_default_timezone_set") && function_exists("date_default_timezone_get")) {
|
||||
@date_default_timezone_set(@date_default_timezone_get());
|
||||
}
|
||||
|
||||
// Load the database - connection parameters
|
||||
if(!file_exists('./lib/userdata.inc.php'))
|
||||
{
|
||||
$config_hint = file_get_contents('./templates/Froxlor/misc/configurehint.tpl');
|
||||
define('FROXLOR_INSTALL_DIR', dirname(__FILE__));
|
||||
$_deftheme = 'Sparkle';
|
||||
|
||||
// check whether the userdata file exists
|
||||
if (!file_exists(FROXLOR_INSTALL_DIR.'/lib/userdata.inc.php')) {
|
||||
$config_hint = file_get_contents(FROXLOR_INSTALL_DIR.'/templates/'.$_deftheme.'/misc/configurehint.tpl');
|
||||
die($config_hint);
|
||||
}
|
||||
|
||||
if(!is_readable('./lib/userdata.inc.php'))
|
||||
{
|
||||
die('You have to make the file "./lib/userdata.inc.php" readable for the http-process!');
|
||||
// check whether we can read the userdata file
|
||||
if (!is_readable(FROXLOR_INSTALL_DIR.'/lib/userdata.inc.php')) {
|
||||
// get possible owner
|
||||
$posixusername = posix_getpwuid(posix_getuid());
|
||||
$posixgroup = posix_getgrgid(posix_getgid());
|
||||
// get hint-template
|
||||
$owner_hint = file_get_contents(FROXLOR_INSTALL_DIR.'/templates/'.$_deftheme.'/misc/ownershiphint.tpl');
|
||||
// replace values
|
||||
$owner_hint = str_replace("<USER>", $posixusername['name'], $owner_hint);
|
||||
$owner_hint = str_replace("<GROUP>", $posixgroup['name'], $owner_hint);
|
||||
$owner_hint = str_replace("<FROXLOR_INSTALL_DIR>", FROXLOR_INSTALL_DIR, $owner_hint);
|
||||
// show
|
||||
die($owner_hint);
|
||||
}
|
||||
|
||||
require ('./lib/userdata.inc.php');
|
||||
require (FROXLOR_INSTALL_DIR.'/lib/userdata.inc.php');
|
||||
|
||||
if(!isset($sql) || !is_array($sql))
|
||||
{
|
||||
$config_hint = file_get_contents('./templates/Froxlor/misc/configurehint.tpl');
|
||||
if (!isset($sql)
|
||||
|| !is_array($sql)
|
||||
) {
|
||||
$config_hint = file_get_contents(FROXLOR_INSTALL_DIR.'/templates/'.$_deftheme.'/misc/configurehint.tpl');
|
||||
die($config_hint);
|
||||
}
|
||||
|
||||
if(!function_exists("ftp_connect"))
|
||||
{
|
||||
if (!function_exists("ftp_connect")) {
|
||||
die('No FTP support');
|
||||
}
|
||||
|
||||
// Create the database - connection
|
||||
$db = new mysqli($sql['host'], $sql['user'], $sql['password'], $sql['db']);
|
||||
unset($sql);
|
||||
if ($db->connect_error)
|
||||
{
|
||||
die('Connect Error (' . $db->connect_errno . ') ' . $db->connect_error);
|
||||
if ($db->connect_error) {
|
||||
// output a nicer error-message
|
||||
$err_hint = file_get_contents(FROXLOR_INSTALL_DIR.'/templates/'.$_deftheme.'/misc/dberrornice.tpl');
|
||||
// replace values
|
||||
$err_hint = str_replace("<TEXT>", 'Connect Error (' . $db->connect_errno . ')', $err_hint);
|
||||
$err_hint = str_replace("<DEBUG>", $db->connect_error, $err_hint);
|
||||
// show
|
||||
die($err_hint);
|
||||
}
|
||||
|
||||
$settings = array();
|
||||
/*
|
||||
// Let's get the theme we need
|
||||
if ($result = $db->query("SELECT `value` FROM `panel_settings` WHERE `varname` = 'default_theme'"))
|
||||
{
|
||||
if ($result = $db->query("SELECT `value` FROM `panel_settings` WHERE `varname` = 'default_theme'")) {
|
||||
list($settings['panel']['default_theme']) = $result->fetch_array();
|
||||
} else {
|
||||
// Default will be Sparkle
|
||||
$settings['panel']['default_theme'] = 'Sparkle';
|
||||
}
|
||||
else
|
||||
{
|
||||
// Default will be Froxlor ;)
|
||||
$settings['panel']['default_theme'] = 'Froxlor';
|
||||
}
|
||||
*/
|
||||
// Until we have other themes: enforce the Froxlor - layout
|
||||
$settings['panel']['default_theme'] = 'Froxlor';
|
||||
|
||||
// Initialize Smarty
|
||||
include('./lib/classes/Smarty/Smarty.class.php');
|
||||
include(FROXLOR_INSTALL_DIR.'/lib/classes/Smarty/Smarty.class.php');
|
||||
$smarty = new Smarty;
|
||||
|
||||
$smarty->template_dir = './templates/' . $settings['panel']['default_theme'] . '/';
|
||||
@@ -125,14 +134,14 @@ $smarty->compile_dir = './templates_c/';
|
||||
$smarty->cache_dir = './cache/';
|
||||
|
||||
// Set the language
|
||||
require('./lib/classes/output/class.languageSelect.php');
|
||||
require(FROXLOR_INSTALL_DIR.'/lib/classes/output/class.languageSelect.php');
|
||||
$language = new languageSelect();
|
||||
$language->useBrowser = true;
|
||||
$language->setLanguage();
|
||||
|
||||
// Activate gettext for smarty;
|
||||
define('HAVE_GETTEXT', true);
|
||||
require ('./lib/functions/smarty_plugins/gettext-prefilter.php');
|
||||
require (FROXLOR_INSTALL_DIR.'/lib/functions/smarty_plugins/gettext-prefilter.php');
|
||||
|
||||
$settings['admin']['show_version_login'] = 0;
|
||||
if ($result = $db->query("SELECT `value` FROM `panel_settings` WHERE `settinggroup` = 'admin' AND `varname` = 'show_version_login'"))
|
||||
@@ -155,20 +164,15 @@ if ($result = $db->query("SELECT `value` FROM `panel_settings` WHERE `settinggro
|
||||
list($settings['panel']['use_webfonts']) = $result->fetch_array();
|
||||
}
|
||||
|
||||
|
||||
// We don't need the database anymore
|
||||
$db->close();
|
||||
unset($db);
|
||||
|
||||
|
||||
// global Theme-variable
|
||||
|
||||
$theme = isset($settings['panel']['default_theme']) ? $settings['panel']['default_theme'] : 'Froxlor';
|
||||
$theme = $settings['panel']['default_theme'];
|
||||
|
||||
// overwrite with customer/admin theme if defined
|
||||
|
||||
if(isset($userinfo['theme']) && $userinfo['theme'] != $theme)
|
||||
{
|
||||
if (isset($userinfo['theme']) && $userinfo['theme'] != $theme) {
|
||||
$theme = $userinfo['theme'];
|
||||
}
|
||||
|
||||
@@ -176,7 +180,7 @@ if(isset($userinfo['theme']) && $userinfo['theme'] != $theme)
|
||||
$hl_path = 'templates/'.$theme.'/assets/img';
|
||||
$header_logo = $hl_path.'/logo.png';
|
||||
|
||||
if(file_exists($hl_path.'/logo_custom.png')) {
|
||||
if (file_exists($hl_path.'/logo_custom.png')) {
|
||||
$header_logo = $hl_path.'/logo_custom.png';
|
||||
}
|
||||
|
||||
|
||||