Compare commits

...

51 Commits
0.9.4 ... 0.9.5

Author SHA1 Message Date
Robert Foerster (Dessa)
e50d0b0440 Tagging release 0.9.5 2010-04-19 16:30:42 +00:00
Michael Kaufmann (d00p)
cc89f26982 corrected special character in german-language file, fixes #164 2010-04-17 11:08:39 +00:00
Michael Kaufmann (d00p)
8155484ee9 - highlight temporary locked customers for admins, fixes #159 2010-04-15 11:00:27 +00:00
Michael Kaufmann (d00p)
97e3b30415 - show last login of customer in admin-customer-overview, fixes #158 2010-04-15 10:39:47 +00:00
Michael Kaufmann (d00p)
07b2c26bec - bugfixing 'servername guessing' on installation
- fixed undefined constant SERVER_SOFTWARE
- bugfixed form-validation on installation (thx to kTitan)
2010-04-15 10:13:41 +00:00
Michael Kaufmann (d00p)
afe431b72f - fixed possibility to add subdomains for domains with wildcarddomain=yes, fixes #150 2010-04-15 05:58:43 +00:00
Michael Kaufmann (d00p)
f5f796344c text beautifications 2010-04-14 10:33:47 +00:00
Michael Kaufmann (d00p)
8ee56d23ba - fixed password-reset $adminchecked; if no user is given don't output (admins) "password reset not allowed" 2010-04-14 10:27:28 +00:00
Michael Kaufmann (d00p)
f62dba4e1b - removed undefined variable in forgot-pwd 2010-04-14 10:09:31 +00:00
Michael Kaufmann (d00p)
87f84c694a - fixed awstats traffic value, save as KB (like webalizer) instead of Bytes, fixes #124 2010-04-14 08:26:13 +00:00
Michael Kaufmann (d00p)
f5a0727b8e - fixing improved update-procedure + beautification 2010-04-14 08:22:25 +00:00
Michael Kaufmann (d00p)
4d5dcb82d6 - fixed some more "Deprecated: Call-time pass-by-reference" issues 2010-04-14 07:48:41 +00:00
Michael Kaufmann (d00p)
7fa901bebb - improved update-procedure
- updated version to 0.9.4-svn2
2010-04-14 07:36:38 +00:00
Michael Kaufmann (d00p)
1159bde3eb - merged wildcardsubdomain-branch to trunk, refs #123, refs #150 2010-04-14 06:42:14 +00:00
Michael Kaufmann (d00p)
9013062ae9 - show domain-destination IP in customer-panel (domain-edit-view), fixes #95 2010-04-13 11:21:25 +00:00
Michael Kaufmann (d00p)
47b2fe7c7c - put 'server.error-handler-404' to the right place + beautification 2010-04-13 07:10:30 +00:00
Michael Kaufmann (d00p)
cfaae63657 - merged settings branch, fixes #134 2010-04-13 05:41:09 +00:00
Michael Kaufmann (d00p)
98e79d933c - check for regular file when deleting old zonefiles (don't try to delete directories), fixes #147 2010-04-12 17:16:46 +00:00
Michael Kaufmann (d00p)
ae27e06675 - fixing domain validation
- added validation for local hosts (mysql-hosts)
2010-04-12 16:36:09 +00:00
Michael Kaufmann (d00p)
209ab4dff9 - wups, forgot to use the conditional selected webalizer-binary-value :P, refs #140 2010-04-12 11:14:32 +00:00
Michael Kaufmann (d00p)
cf18590b84 - implemented alternative regex-validation for broken php "filter_var" function in various php-versions, refs #109, #122, #138
- check for webalizer binary in /usr/bin and in /usr/local/bin (freebsd), fixes #140
2010-04-12 11:09:53 +00:00
Michael Kaufmann (d00p)
6c25cd1c85 - fix domain-sorting in customer-panel (domain-overview), fixes #126
- add dkim-milter restart command to bind-cron
2010-04-12 06:15:16 +00:00
Michael Kaufmann (d00p)
0d3df6e1fe - fixed some left-overs when using safe_exec which have not been escaped correctly, fixes #136 2010-04-12 05:49:16 +00:00
Michael Kaufmann (d00p)
b11d0c5cd9 - fixed link to awstats in customer-panel (domain-overview), fixes #137 2010-04-12 05:34:34 +00:00
Robert Foerster (Dessa)
afc3ab8a8b correct bind permissions in config templates, refs #135 2010-04-11 20:13:54 +00:00
Florian Aders (EleRas)
1903f34dea If we don't have a wildcard - domain and no special - MX - hosts, we add the three special - subdomains imap, smtp and pop3, fixes #82 2010-04-10 07:52:53 +00:00
Florian Aders (EleRas)
ee7e50004a Adjusting svn:ignore for packages and temporary - directory 2010-04-10 07:47:03 +00:00
Robert Foerster (Dessa)
96d26d0d94 - correct freebsd proftpd template, fixes #132
- don't display mkdir statement for deactivated docroot when it is not defined, this was already done in the other templates but got somehow lost for etch
2010-04-10 00:44:09 +00:00
Florian Aders (EleRas)
7c12ab82c5 fixing stupid if in lng - tool 2010-04-09 19:30:52 +00:00
Florian Aders (EleRas)
5c152a9754 Updating languagefiles (mostly removing old strings, translating some strings from english to german) 2010-04-09 19:24:17 +00:00
Michael Kaufmann (d00p)
5a4fffbce6 -create awstats-configuration-folder if it does not exist 2010-04-09 12:04:09 +00:00
Michael Kaufmann (d00p)
220118f4bc corrected index-name of array 2010-04-08 14:54:42 +00:00
Florian Aders (EleRas)
5d214e5bd7 fixing bug where old awstats - config will not be removed due to check on wrong panel - name 2010-04-08 14:36:20 +00:00
Michael Kaufmann (d00p)
43fe968ad0 added awstats configuration to FreeBSD, thx to jenus for the great help 2010-04-08 12:05:26 +00:00
Michael Kaufmann (d00p)
7daa7eb0bc - also send database-hostname in information-mail (customer::add-mysql), fixes #108 2010-04-08 10:45:02 +00:00
Michael Kaufmann (d00p)
a0274b083b - make path to awstats configuration folder a setting (again), fixes #125 2010-04-08 10:28:48 +00:00
Michael Kaufmann (d00p)
04c7aae433 - correct path to awstats-folder in traffic-cron, thx to kTitan 2010-04-08 05:47:03 +00:00
Michael Kaufmann (d00p)
5a99950a8f support for older Froxlor-versions in update-process (we had the awstats_path setting already in older releases), refs #120 2010-04-07 11:31:31 +00:00
Michael Kaufmann (d00p)
4659d8e24a beautification of update-process 2010-04-07 11:24:53 +00:00
Michael Kaufmann (d00p)
5e3a4fb1ab - re-enable setting for "path to awstats 'awstats_buildstaticpages.pl' script", fixes #120 2010-04-07 11:14:43 +00:00
Michael Kaufmann (d00p)
1839264f7a - don't block mails from localhost
- added postfix-mxaccess for freebsd
refs #119
2010-04-07 10:52:15 +00:00
Michael Kaufmann (d00p)
5f9d90a293 added Postfix MX-Access, fixes #119 2010-04-07 10:35:50 +00:00
Michael Kaufmann (d00p)
5c825e3206 fixed undefined variables in lighty-cron 2010-04-07 09:43:46 +00:00
Michael Kaufmann (d00p)
a54a27d6ba fixing up german-language file, thx monotek, refs #108 2010-04-07 08:15:50 +00:00
Michael Kaufmann (d00p)
16135fb92b - implemented check for used APS packages on domain-deletion, fixes #110 2010-04-07 07:47:20 +00:00
Michael Kaufmann (d00p)
f8d0472274 - added possibility to send new database information via email to the customer, fixes #108 2010-04-07 06:57:27 +00:00
Michael Kaufmann (d00p)
368e6a5c50 - improved 'edit ftp-account', fixes #116 2010-04-07 06:08:09 +00:00
Michael Kaufmann (d00p)
fb4ade70d2 fixing wrong variable name in autoresponder, fixes #115 2010-04-06 19:28:39 +00:00
Michael Kaufmann (d00p)
6a0fcc1fd9 set namevirtualhost_statement default to 'On', so froxlor is still reachable after addition of first customer 2010-04-06 17:36:22 +00:00
Michael Kaufmann (d00p)
0eec533647 - fix undefined variable in lighttpd-cron 2010-04-06 12:35:01 +00:00
Michael Kaufmann (d00p)
941b887b75 - fixed typo in field-name (just beautification, no functions affected)
- don't show delete-link for std-subdomains (they can be deactivated individually for each user when editing a user), fixes #101
2010-04-06 05:58:03 +00:00
99 changed files with 1654 additions and 413 deletions

View File

@@ -31,6 +31,7 @@ return array(
'option_mode' => 'one',
'option_options' => array('apache2' => 'Apache 2', 'lighttpd' => 'ligHTTPd'),
'save_method' => 'storeSettingField',
'overview_option' => true
),
'system_apacheconf_vhost' => array(
'label' => $lng['serversettings']['apacheconf_vhost'],

View File

@@ -40,9 +40,27 @@ return array(
'default' => false,
'save_method' => 'storeSettingField',
),
),
),
),
'system_awstats_path' => array(
'label' => $lng['serversettings']['awstats_path'],
'settinggroup' => 'system',
'varname' => 'awstats_path',
'type' => 'string',
'string_type' => 'dir',
'default' => '/usr/bin/',
'save_method' => 'storeSettingField',
),
'system_awstats_conf' => array(
'label' => $lng['serversettings']['awstats_conf'],
'settinggroup' => 'system',
'varname' => 'awstats_conf',
'type' => 'string',
'string_type' => 'dir',
'default' => '/etc/awstats/',
'save_method' => 'storeSettingField',
)
)
)
)
);
?>

View File

@@ -75,7 +75,7 @@ return array(
'default' => 100,
'save_method' => 'storeSettingField',
),
'systen_autoresponder_enabled' => array(
'system_autoresponder_enabled' => array(
'label' => $lng['serversettings']['autoresponder_active'],
'settinggroup' => 'autoresponder',
'varname' => 'autoresponder_active',
@@ -84,7 +84,7 @@ return array(
'cronmodule' => 'froxlor/autoresponder',
'save_method' => 'storeSettingField',
),
'systen_last_autoresponder_run' => array(
'system_last_autoresponder_run' => array(
'settinggroup' => 'autoresponder',
'varname' => 'last_autoresponder_run',
'type' => 'hidden',

View File

@@ -29,6 +29,7 @@ return array(
'type' => 'bool',
'default' => false,
'save_method' => 'storeSettingField',
'overview_option' => true
),
'logger_severity' => array(
'label' => $lng['serversettings']['logger']['severity'],

View File

@@ -29,6 +29,7 @@ return array(
'type' => 'bool',
'default' => false,
'save_method' => 'storeSettingFieldInsertBindTask',
'overview_option' => true
),
'dkim_prefix' => array(
'label' => $lng['dkim']['dkim_prefix'],

View File

@@ -26,7 +26,8 @@ return array(
'varname' => 'use_spf',
'type' => 'bool',
'default' => false,
'save_method' => 'storeSettingField'
'save_method' => 'storeSettingField',
'overview_option' => true
),
'spf_entry' => array(
'label' => $lng['spf']['spf_entry'],

View File

@@ -30,6 +30,7 @@ return array(
'default' => false,
'cronmodule' => 'froxlor/ticket',
'save_method' => 'storeSettingField',
'overview_option' => true
),
'ticket_noreply_email' => array(
'label' => $lng['serversettings']['ticket']['noreply_email'],

View File

@@ -30,6 +30,7 @@ return array(
'default' => false,
'cronmodule' => 'froxlor/aps',
'save_method' => 'storeSettingField',
'overview_option' => true
),
'aps_items_per_page' => array(
'label' => $lng['aps']['packages_per_page'],

View File

@@ -66,6 +66,7 @@ if($page == 'customers'
'c.email_quota' => $lng['customer']['email_quota'],
'c.email_quota_used' => $lng['customer']['email_quota'] . ' (' . $lng['panel']['used'] . ')',
'c.deactivated' => $lng['admin']['deactivated'],
'c.lastlogin_succ' => $lng['admin']['lastlogin_succ'],
'c.phpenabled' => $lng['admin']['phpenabled']
);
@@ -96,6 +97,15 @@ if($page == 'customers'
$row['traffic'] = round($row['traffic'] / (1024 * 1024), $settings['panel']['decimal_places']);
$row['diskspace_used'] = round($row['diskspace_used'] / 1024, $settings['panel']['decimal_places']);
$row['diskspace'] = round($row['diskspace'] / 1024, $settings['panel']['decimal_places']);
$last_login = ((int)$row['lastlogin_succ'] == 0) ? $lng['panel']['neverloggedin'] : date('d.m.Y', $row['lastlogin_succ']);
$column_style = '';
if($row['loginfail_count'] >= $settings['login']['maxloginattempts']
&& $row['lastlogin_fail'] > (time() - $settings['login']['deactivatetime'])
) {
$column_style = ' style="background-color: #f99122;"';
}
$row = str_replace_array('-1', 'UL', $row, 'diskspace traffic mysqls emails email_accounts email_forwarders ftps tickets subdomains');
$row = htmlentities_array($row);
eval("\$customers.=\"" . getTemplate("customers/customers_customer") . "\";");

View File

@@ -147,6 +147,14 @@ if($page == 'domains'
if(isset($_POST['send'])
&& $_POST['send'] == 'send')
{
/*
* check for APS packages used with this domain, #110
*/
if(domainHasApsInstances($id))
{
standard_error('domains_cantdeletedomainwithapsinstances');
}
$query = 'SELECT `id` FROM `' . TABLE_PANEL_DOMAINS . '` WHERE (`id`="' . (int)$id . '" OR `parentdomainid`="' . (int)$id . '") AND `isemaildomain`="1"';
$subResult = $db->query($query);
$idString = array();

View File

@@ -31,20 +31,78 @@ if(($page == 'settings' || $page == 'overview')
&& $userinfo['change_serversettings'] == '1')
{
$settings_data = loadConfigArrayDir('./actions/admin/settings/');
$settings = loadSettings(&$settings_data, &$db);
$settings = loadSettings($settings_data, $db);
if(isset($_POST['send'])
&& $_POST['send'] == 'send')
{
if(processForm(&$settings_data, &$_POST, array('filename' => $filename, 'action' => $action, 'page' => $page)))
$_part = isset($_GET['part']) ? $_GET['part'] : '';
if($_part == '')
{
$_part = isset($_POST['part']) ? $_POST['part'] : '';
}
if($_part != '')
{
if($_part == 'all')
{
$settings_all = true;
$settings_part = false;
}
else
{
$settings_all = false;
$settings_part = true;
}
$only_enabledisable = false;
}
else
{
$settings_all = false;
$settings_part = false;
$only_enabledisable = true;
}
if(processFormEx(
$settings_data,
$_POST,
array('filename' => $filename, 'action' => $action, 'page' => $page),
$_part,
$settings_all,
$settings_part,
$only_enabledisable
)
) {
standard_success('settingssaved', '', array('filename' => $filename, 'action' => $action, 'page' => $page));
}
}
else
{
$fields = buildForm(&$settings_data);
eval("echo \"" . getTemplate("settings/settings") . "\";");
$_part = isset($_GET['part']) ? $_GET['part'] : '';
if($_part == '')
{
$_part = isset($_POST['part']) ? $_POST['part'] : '';
}
$fields = buildFormEx($settings_data, $_part);
$settings_page = '';
if($_part == '')
{
eval("\$settings_page .= \"" . getTemplate("settings/settings_overview") . "\";");
}
else
{
eval("\$settings_page .= \"" . getTemplate("settings/settings") . "\";");
}
eval("echo \"" . getTemplate("settings/settings_form_begin") . "\";");
eval("echo \$settings_page;");
eval("echo \"" . getTemplate("settings/settings_form_end") . "\";");
}
}
elseif($page == 'rebuildconfigs'

View File

@@ -57,30 +57,54 @@ if($page == 'overview')
if(hasUpdates($version))
{
$successful_update = false;
$message = '';
if(isset($_POST['send'])
&& $_POST['send'] == 'send')
{
eval("echo \"" . getTemplate("update/update_start") . "\";");
include_once('./install/updatesql.php');
$redirect_url = 'admin_index.php';
eval("echo \"" . getTemplate("update/update_end") . "\";");
updateCounters();
inserttask('1');
@chmod('./lib/userdata.inc.php', 0440);
if((isset($_POST['update_preconfig'])
&& isset($_POST['update_changesagreed'])
&& intval($_POST['update_changesagreed']) != 0)
|| !isset($_POST['update_preconfig'])
) {
eval("echo \"" . getTemplate("update/update_start") . "\";");
include_once './install/updatesql.php';
$redirect_url = 'admin_index.php';
eval("echo \"" . getTemplate("update/update_end") . "\";");
updateCounters();
inserttask('1');
@chmod('./lib/userdata.inc.php', 0440);
$successful_update = true;
}
else
{
$message = '<br /><strong style="color:#ff0000;">You have to agree that you have read the update notifications.</strong>';
}
}
else
if(!$successful_update)
{
$current_version = $settings['panel']['version'];
$new_version = $version;
$ui_text = $lng['update']['update_information'];
$ui_text = $lng['update']['update_information']['part_a'];
$ui_text = str_replace('%curversion', $current_version, $ui_text);
$ui_text = str_replace('%newversion', $new_version, $ui_text);
$update_information = $ui_text;
include_once './install/updates/preconfig.php';
$preconfig = getPreConfig($current_version);
if($preconfig != '')
{
$update_information .= '<br />'.$preconfig.$message;
}
$update_information .= $lng['update']['update_information']['part_b'];
eval("echo \"" . getTemplate("update/index") . "\";");
}

View File

@@ -68,13 +68,13 @@ elseif($page == 'domains')
$row['domainalias'] = $idna_convert->decode($row['domainalias']);
if($row['parentdomainid'] == '0'
&& $row['iswildcarddomain'] != '1'
&& $row['caneditdomain'] == '1')
{
$parentdomains_count++;
}
$domains_count++;
/*
$domainparts = explode('.', $row['domain']);
$domainparts = array_reverse($domainparts);
$sortkey = '';
@@ -82,8 +82,9 @@ elseif($page == 'domains')
{
$sortkey.= $part . '.';
}
$domain_array[$sortkey] = $row;
*/
$domain_array[$row['domain']] = $row;
}
ksort($domain_array);
@@ -126,7 +127,7 @@ elseif($page == 'domains')
{
$row = htmlentities_array($domain_array[$sortkey]);
if($settings['system']['awstats_enabled'] == '1') {
$statsapp = 'awstats/'.$row['domain'].'/';
$statsapp = 'awstats';
} else {
$statsapp = 'webalizer';
}
@@ -183,6 +184,14 @@ elseif($page == 'domains')
}
}
/*
* check for APS packages used with this domain, #110
*/
if(domainHasApsInstances($id))
{
standard_error('domains_cantdeletedomainwithapsinstances');
}
$log->logAction(USR_ACTION, LOG_INFO, "deleted subdomain '" . $idna_convert->decode($result['domain']) . "'");
$result = $db->query("DELETE FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
$result = $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `subdomains_used`=`subdomains_used`-1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
@@ -210,7 +219,7 @@ elseif($page == 'domains')
{
$subdomain = $idna_convert->encode(preg_replace(Array('/\:(\d)+$/', '/^https?\:\/\//'), '', validate($_POST['subdomain'], 'subdomain', '', 'subdomainiswrong')));
$domain = $idna_convert->encode($_POST['domain']);
$domain_check = $db->query_first("SELECT * FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `domain`='" . $db->escape($domain) . "' AND `customerid`='" . (int)$userinfo['customerid'] . "' AND `parentdomainid`='0' AND `email_only`='0' AND `iswildcarddomain`='0' AND `caneditdomain`='1' ");
$domain_check = $db->query_first("SELECT * FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `domain`='" . $db->escape($domain) . "' AND `customerid`='" . (int)$userinfo['customerid'] . "' AND `parentdomainid`='0' AND `email_only`='0' AND `caneditdomain`='1' ");
$completedomain = $subdomain . '.' . $domain;
$completedomain_check = $db->query_first("SELECT * FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `domain`='" . $db->escape($completedomain) . "' AND `customerid`='" . (int)$userinfo['customerid'] . "' AND `email_only`='0' AND `caneditdomain` = '1'");
$aliasdomain = intval($_POST['alias']);
@@ -325,7 +334,7 @@ elseif($page == 'domains')
}
else
{
$result = $db->query("SELECT `id`, `domain`, `documentroot`, `ssl_redirect`,`isemaildomain` FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `parentdomainid`='0' AND `email_only`='0' AND `iswildcarddomain`='0' AND `caneditdomain`='1' ORDER BY `domain` ASC");
$result = $db->query("SELECT `id`, `domain`, `documentroot`, `ssl_redirect`,`isemaildomain` FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `parentdomainid`='0' AND `email_only`='0' AND `caneditdomain`='1' ORDER BY `domain` ASC");
$domains = '';
while($row = $db->fetch_array($result))
@@ -351,7 +360,7 @@ elseif($page == 'domains')
elseif($action == 'edit'
&& $id != 0)
{
$result = $db->query_first("SELECT `d`.`id`, `d`.`customerid`, `d`.`domain`, `d`.`documentroot`, `d`.`isemaildomain`, `d`.`iswildcarddomain`, `d`.`parentdomainid`, `d`.`ssl_redirect`, `d`.`aliasdomain`, `d`.`openbasedir_path` ,`pd`.`subcanemaildomain` FROM `" . TABLE_PANEL_DOMAINS . "` `d`, `" . TABLE_PANEL_DOMAINS . "` `pd` WHERE `d`.`customerid`='" . (int)$userinfo['customerid'] . "' AND `d`.`id`='" . (int)$id . "' AND ((`d`.`parentdomainid`!='0' AND `pd`.`id`=`d`.`parentdomainid`) OR (`d`.`parentdomainid`='0' AND `pd`.`id`=`d`.`id`)) AND `d`.`caneditdomain`='1'");
$result = $db->query_first("SELECT `d`.`id`, `d`.`customerid`, `d`.`domain`, `d`.`documentroot`, `d`.`isemaildomain`, `d`.`iswildcarddomain`, `d`.`parentdomainid`, `d`.`ssl_redirect`, `d`.`aliasdomain`, `d`.`openbasedir_path`, `d`.`ipandport`, `pd`.`subcanemaildomain` FROM `" . TABLE_PANEL_DOMAINS . "` `d`, `" . TABLE_PANEL_DOMAINS . "` `pd` WHERE `d`.`customerid`='" . (int)$userinfo['customerid'] . "' AND `d`.`id`='" . (int)$id . "' AND ((`d`.`parentdomainid`!='0' AND `pd`.`id`=`d`.`parentdomainid`) OR (`d`.`parentdomainid`='0' AND `pd`.`id`=`d`.`id`)) AND `d`.`caneditdomain`='1'");
$alias_check = $db->query_first('SELECT COUNT(`id`) AS count FROM `' . TABLE_PANEL_DOMAINS . '` WHERE `aliasdomain`=\'' . (int)$result['id'] . '\'');
$alias_check = $alias_check['count'];
@@ -384,16 +393,7 @@ elseif($page == 'domains')
if(isset($_POST['iswildcarddomain'])
&& $_POST['iswildcarddomain'] == '1'
&& $result['parentdomainid'] == '0'
&& $userinfo['subdomains'] != '0')
{
$wildcarddomaincheck = $db->query("SELECT `id` FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `parentdomainid` = '" . (int)$result['id'] . "'");
if($db->num_rows($wildcarddomaincheck) != '0')
{
standard_error('firstdeleteallsubdomains');
exit;
}
){
$iswildcarddomain = '1';
}
else
@@ -504,11 +504,14 @@ elseif($page == 'domains')
$iswildcarddomain = makeyesno('iswildcarddomain', '1', '0', $result['iswildcarddomain']);
$isemaildomain = makeyesno('isemaildomain', '1', '0', $result['isemaildomain']);
$openbasedir = makeoption($lng['domain']['docroot'], 0, $result['openbasedir_path'], true) . makeoption($lng['domain']['homedir'], 1, $result['openbasedir_path'], true);
$result = htmlentities_array($result);
if($settings['system']['use_ssl'] == "1")
$result_ipandport = $db->query_first("SELECT `ip` FROM `".TABLE_PANEL_IPSANDPORTS."` WHERE `id`='".(int)$result['ipandport']."'");
if(filter_var($result_ipandport['ip'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6))
{
$result_ipandport['ip'] = '[' . $result_ipandport['ip'] . ']';
}
$domainip = $result_ipandport['ip'];
$result = htmlentities_array($result);
eval("echo \"" . getTemplate("domains/domains_edit") . "\";");
}

View File

@@ -447,7 +447,7 @@ elseif($page == 'accounts')
if ($_mailerror) {
$log->logAction(USR_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
standard_error('errorsendingmail', $email);
standard_error('errorsendingmail', $email_full);
}
$mail->ClearAddresses();

View File

@@ -173,18 +173,12 @@ elseif($page == 'accounts')
}
else
{
$userpath = makeCorrectDir($path);
$path = makeCorrectDir($userinfo['documentroot'] . '/' . $path);
$db->query("INSERT INTO `" . TABLE_FTP_USERS . "` (`customerid`, `username`, `password`, `homedir`, `login_enabled`, `uid`, `gid`) VALUES ('" . (int)$userinfo['customerid'] . "', '" . $db->escape($username) . "', ENCRYPT('" . $db->escape($password) . "'), '" . $db->escape($path) . "', 'y', '" . (int)$userinfo['guid'] . "', '" . (int)$userinfo['guid'] . "')");
$db->query("UPDATE `" . TABLE_FTP_GROUPS . "` SET `members`=CONCAT_WS(',',`members`,'" . $db->escape($username) . "') WHERE `customerid`='" . $userinfo['customerid'] . "' AND `gid`='" . (int)$userinfo['guid'] . "'");
// $db->query("INSERT INTO `".TABLE_FTP_GROUPS."` (`customerid`, `groupname`, `gid`, `members`) VALUES ('".$userinfo['customerid']."', '$username', '$uid', '$username')");
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `ftps_used`=`ftps_used`+1, `ftp_lastaccountnumber`=`ftp_lastaccountnumber`+1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
// $db->query("UPDATE `".TABLE_PANEL_SETTINGS."` SET `value`='$uid' WHERE settinggroup='ftp' AND varname='lastguid'");
$log->logAction(USR_ACTION, LOG_INFO, "added ftp-account '" . $username . " (" . $path . ")'");
inserttask(5);
redirectTo($filename, Array('page' => $page, 's' => $s));
@@ -213,7 +207,7 @@ elseif($page == 'accounts')
elseif($action == 'edit'
&& $id != 0)
{
$result = $db->query_first("SELECT `id`, `username`, `homedir` FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
$result = $db->query_first("SELECT `id`, `username`, `homedir`, `uid`, `gid` FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
if(isset($result['username'])
&& $result['username'] != '')
@@ -221,22 +215,74 @@ elseif($page == 'accounts')
if(isset($_POST['send'])
&& $_POST['send'] == 'send')
{
$password = validate($_POST['ftp_password'], 'password');
$path = validate($_POST['path'], 'path');
$_setnewpass = false;
if(isset($_POST['ftp_password']) && $_POST['ftp_password'] != '')
{
$password = validate($_POST['ftp_password'], 'password');
$password = validatePassword($password);
$_setnewpass = true;
}
if($password == '')
if($_setnewpass)
{
standard_error(array('stringisempty', 'mypassword'));
exit;
if($password == '')
{
standard_error(array('stringisempty', 'mypassword'));
exit;
}
else
{
$log->logAction(USR_ACTION, LOG_INFO, "updated ftp-account password for '" . $result['username'] . "'");
$db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `password`=ENCRYPT('" . $db->escape($password) . "') WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
}
}
else
if($path != '')
{
$db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `password`=ENCRYPT('" . $db->escape($password) . "') WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
$log->logAction(USR_ACTION, LOG_INFO, "edited ftp-account '" . $result['username'] . "'");
redirectTo($filename, Array('page' => $page, 's' => $s));
$path = makeCorrectDir($userinfo['documentroot'] . '/' . $path);
if($path != $result['homedir'])
{
if(!file_exists($path))
{
mkDirWithCorrectOwnership($userinfo['documentroot'], $path, $result['uid'], $result['gid']);
}
$log->logAction(USR_ACTION, LOG_INFO, "updated ftp-account homdir for '" . $result['username'] . "'");
$db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `homedir`= '" . $db->escape($path) . "' WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
}
}
redirectTo($filename, Array('page' => $page, 's' => $s));
}
else
{
if(strpos($result['homedir'], $userinfo['documentroot']) === 0)
{
$homedir = substr($result['homedir'], strlen($userinfo['documentroot']));
}
else
{
$homedir = $result['homedir'];
}
$homedir = makeCorrectDir($homedir);
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit'], $homedir);
if($settings['customer']['ftpatdomain'] == '1')
{
$domains = '';
$result_domains = $db->query("SELECT `domain` FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
while($row_domain = $db->fetch_array($result_domains))
{
$domains.= makeoption($idna_convert->decode($row_domain['domain']), $row_domain['domain']);
}
}
eval("echo \"" . getTemplate("ftp/accounts_edit") . "\";");
}
}

View File

@@ -141,6 +141,12 @@ elseif($page == 'mysqls')
$password = validate($_POST['mysql_password'], 'password');
$password = validatePassword($password);
$sendinfomail = intval($_POST['sendinfomail']);
if($sendinfomail != 1)
{
$sendinfomail = 0;
}
if($password == '')
{
standard_error(array('stringisempty', 'mypassword'));
@@ -185,6 +191,50 @@ elseif($page == 'mysqls')
$databasedescription = validate($_POST['description'], 'description');
$result = $db->query('INSERT INTO `' . TABLE_PANEL_DATABASES . '` (`customerid`, `databasename`, `description`, `dbserver`) VALUES ("' . (int)$userinfo['customerid'] . '", "' . $db->escape($username) . '", "' . $db->escape($databasedescription) . '", "' . $db->escape($dbserver) . '")');
$result = $db->query('UPDATE `' . TABLE_PANEL_CUSTOMERS . '` SET `mysqls_used`=`mysqls_used`+1, `mysql_lastaccountnumber`=`mysql_lastaccountnumber`+1 WHERE `customerid`="' . (int)$userinfo['customerid'] . '"');
if($sendinfomail == 1)
{
$pma = '';
if($settings['panel']['phpmyadmin_url'] != '')
{
$r_arr = array('URI' => $settings['panel']['phpmyadmin_url']);
$pma = replace_variables($lng['customer']['mysql_add']['infomail_body']['pma'], $r_arr);
}
$replace_arr = array(
'CUST_NAME' => getCorrectUserSalutation($userinfo),
'DB_NAME' => $username,
'DB_PASS' => $password,
'DB_DESC' => $databasedescription,
'DB_SRV' => $sql_root[$dbserver]['host'],
'PMA_URI' => $pma
);
$mail_body = replace_variables($lng['customer']['mysql_add']['infomail_body']['main'], $replace_arr);
$_mailerror = false;
try {
$mail->Subject = $lng['customer']['mysql_add']['infomail_subject'];
$mail->AltBody = $mail_body;
$mail->MsgHTML(str_replace("\n", "<br />", $mail_body));
$mail->AddAddress($userinfo['email'], getCorrectUserSalutation($userinfo));
$mail->Send();
} catch(phpmailerException $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
if ($_mailerror) {
$log->logAction(USR_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
standard_error('errorsendingmail', $userinfo['email']);
}
$mail->ClearAddresses();
}
redirectTo($filename, Array('page' => $page, 's' => $s));
}
}
@@ -197,6 +247,8 @@ elseif($page == 'mysqls')
$mysql_servers .= makeoption($mysql_server_details['caption'], $mysql_server);
}
$sendinfomail = makeyesno('sendinfomail', '1', '0', '0');
eval("echo \"" . getTemplate("mysql/mysqls_add") . "\";");
}
}

158
index.php
View File

@@ -213,10 +213,12 @@ if($action == 'login')
if($action == 'forgotpwd')
{
$adminchecked = false;
$message = '';
if(isset($_POST['send'])
&& $_POST['send'] == 'send')
{
$adminchecked = false;
$loginname = validate($_POST['loginname'], 'loginname');
$email = validateEmail($_POST['loginemail'], 'email');
$sql = "SELECT `customerid`, `firstname`, `name`, `email`, `loginname` FROM `" . TABLE_PANEL_CUSTOMERS . "`
@@ -230,90 +232,94 @@ if($action == 'forgotpwd')
WHERE `loginname`='" . $db->escape($loginname) . "'
AND `email`='" . $db->escape($email) . "'";
$result = $db->query($sql);
$adminchecked = true;
}
$user = $db->fetch_array($result);
if(($adminchecked && $settings['panel']['allow_preset_admin'] == '1')
|| $adminchecked == false)
{
if($user !== false)
{
if ($settings['panel']['password_min_length'] <= 6) {
$password = substr(md5(uniqid(microtime(), 1)), 12, 6);
} else {
// make it two times larger than password_min_length
$rnd = '';
$minlength = $settings['panel']['password_min_length'];
while (strlen($rnd) < ($minlength * 2))
{
$rnd .= md5(uniqid(microtime(), 1));
}
$password = substr($rnd, (int)($minlength / 2), $minlength);
}
if($adminchecked)
{
$db->query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `password`='" . md5($password) . "'
WHERE `loginname`='" . $user['loginname'] . "'
AND `email`='" . $user['email'] . "'");
}
else
{
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `password`='" . md5($password) . "'
WHERE `loginname`='" . $user['loginname'] . "'
AND `email`='" . $user['email'] . "'");
}
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings);
$rstlog->logAction(USR_ACTION, LOG_WARNING, "Password for user '" . $user['loginname'] . "' has been reset!");
$body = strtr($lng['pwdreminder']['body'], array('%s' => $user['firstname'] . ' ' . $user['name'], '%p' => $password));
$_mailerror = false;
try {
$mail->Subject = $lng['pwdreminder']['subject'];
$mail->AltBody = $body;
$mail->MsgHTML(str_replace("\\n", "<br />", $body));
$mail->AddAddress($user['email'], $user['firstname'] . ' ' . $user['name']);
$mail->Send();
} catch(phpmailerException $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
if ($_mailerror) {
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings);
$rstlog->logAction(ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
redirectTo('index.php', Array('showmessage' => '4'), true);
exit;
}
$mail->ClearAddresses();
redirectTo('index.php', Array('showmessage' => '1'), true);
exit;
if($db->num_rows() > 0)
{
$adminchecked = true;
}
else
{
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings);
$rstlog->logAction(USR_ACTION, LOG_WARNING, "User '" . $loginname . "' tried to reset pwd but wasn't found in database!");
$message = $lng['login']['usernotfound'];
$result = null;
}
}
unset($user);
}
else
if($result !== null)
{
$message = '';
$user = $db->fetch_array($result);
if(($adminchecked && $settings['panel']['allow_preset_admin'] == '1')
|| $adminchecked == false)
{
if($user !== false)
{
if ($settings['panel']['password_min_length'] <= 6) {
$password = substr(md5(uniqid(microtime(), 1)), 12, 6);
} else {
// make it two times larger than password_min_length
$rnd = '';
$minlength = $settings['panel']['password_min_length'];
while (strlen($rnd) < ($minlength * 2))
{
$rnd .= md5(uniqid(microtime(), 1));
}
$password = substr($rnd, (int)($minlength / 2), $minlength);
}
if($adminchecked)
{
$db->query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `password`='" . md5($password) . "'
WHERE `loginname`='" . $user['loginname'] . "'
AND `email`='" . $user['email'] . "'");
}
else
{
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `password`='" . md5($password) . "'
WHERE `loginname`='" . $user['loginname'] . "'
AND `email`='" . $user['email'] . "'");
}
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings);
$rstlog->logAction(USR_ACTION, LOG_WARNING, "Password for user '" . $user['loginname'] . "' has been reset!");
$body = strtr($lng['pwdreminder']['body'], array('%s' => $user['firstname'] . ' ' . $user['name'], '%p' => $password));
$_mailerror = false;
try {
$mail->Subject = $lng['pwdreminder']['subject'];
$mail->AltBody = $body;
$mail->MsgHTML(str_replace("\\n", "<br />", $body));
$mail->AddAddress($user['email'], $user['firstname'] . ' ' . $user['name']);
$mail->Send();
} catch(phpmailerException $e) {
$mailerr_msg = $e->errorMessage();
$_mailerror = true;
} catch (Exception $e) {
$mailerr_msg = $e->getMessage();
$_mailerror = true;
}
if ($_mailerror) {
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings);
$rstlog->logAction(ADM_ACTION, LOG_ERR, "Error sending mail: " . $mailerr_msg);
redirectTo('index.php', Array('showmessage' => '4'), true);
exit;
}
$mail->ClearAddresses();
redirectTo('index.php', Array('showmessage' => '1'), true);
exit;
}
else
{
$rstlog = FroxlorLogger::getInstanceOf(array('loginname' => 'password_reset'), $db, $settings);
$rstlog->logAction(USR_ACTION, LOG_WARNING, "User '" . $loginname . "' tried to reset pwd but wasn't found in database!");
$message = $lng['login']['usernotfound'];
}
unset($user);
}
}
}
else
{
$message = '';
}
if($adminchecked)
{

View File

@@ -274,7 +274,7 @@ CREATE TABLE `panel_domains` (
`isbinddomain` tinyint(1) NOT NULL default '0',
`isemaildomain` tinyint(1) NOT NULL default '0',
`email_only` tinyint(1) NOT NULL default '0',
`iswildcarddomain` tinyint(1) NOT NULL default '0',
`iswildcarddomain` tinyint(1) NOT NULL default '1',
`subcanemaildomain` tinyint(1) NOT NULL default '0',
`caneditdomain` tinyint(1) NOT NULL default '1',
`zonefile` varchar(255) NOT NULL default '',
@@ -451,7 +451,7 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (18, 'system', 'vmail_homedir', '/var/customers/mail/');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (19, 'system', 'bindconf_directory', '/etc/bind/');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (20, 'system', 'bindreload_command', '/etc/init.d/bind9 reload');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.4');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.5');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (23, 'system', 'hostname', 'SERVERNAME');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (24, 'login', 'maxloginattempts', '3');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900');
@@ -557,6 +557,8 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (126, 'dkim', 'dkim_add_adsppolicy', '1');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (127, 'dkim', 'dkim_notes', '');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (128, 'system', 'stdsubdomain', '');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (129, 'system', 'awstats_path', '/usr/bin/');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (130, 'system', 'awstats_conf', '/etc/awstats/');
# --------------------------------------------------------

View File

@@ -289,7 +289,7 @@ else
{
if(!empty($_SERVER['SERVER_NAME']))
{
if(preg_match('/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$/', $_SERVER['SERVER_NAME']) === false)
if(preg_match('/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$/', $_SERVER['SERVER_NAME']) == false)
{
$servername = $_SERVER['SERVER_NAME'];
}
@@ -422,12 +422,12 @@ if(!empty($_POST['webserver']))
else
{
if(strtoupper(@php_sapi_name()) == "APACHE2HANDLER"
|| stristr($_SERVER[SERVER_SOFTWARE], "apache/2"))
|| stristr($_SERVER['SERVER_SOFTWARE'], "apache/2"))
{
$webserver = 'apache2';
}
elseif(substr(strtoupper(@php_sapi_name()), 0, 8) == "LIGHTTPD"
|| stristr($_SERVER[SERVER_SOFTWARE], "lighttpd"))
|| stristr($_SERVER['SERVER_SOFTWARE'], "lighttpd"))
{
$webserver = 'lighttpd';
}
@@ -656,7 +656,8 @@ if(isset($_POST['installstep'])
$query = "INSERT INTO `".TABLE_PANEL_IPSANDPORTS."`
SET `ip`= '".$db->escape($serverip)."',
`port` = '80',
`port` = '80',
`namevirtualhost_statement` = '1',
`vhostcontainer` = '1',
`vhostcontainer_servername_statement` = '1'";
$db->query($query);
@@ -762,9 +763,11 @@ if(isset($_POST['installstep'])
else
{
if(isset($_GET['check'])
if((isset($_GET['check'])
&& $_GET['check'] == '1')
{
|| (isset($_POST['installstep'])
&& $_POST['installstep'] == '1')
) {
page_header();
?>

View File

@@ -21,9 +21,7 @@ $baseLanguage = 'english.lng.php';
// Check if we're in the CLI
if(@php_sapi_name() != 'cli'
&& @php_sapi_name() != 'cgi'
&& @php_sapi_name() != 'cgi-fcgi')
if(@php_sapi_name() != 'cli')
{
die('This script will only work in the shell.');
}
@@ -183,4 +181,4 @@ function compare($array1, $array2)
return $result;
}
?>
?>

View File

@@ -392,4 +392,84 @@ if(isFroxlorVersion('0.9.3-svn5'))
updateToVersion('0.9.4');
}
if(isFroxlorVersion('0.9.4'))
{
showUpdateStep("Updating from 0.9.4 to 0.9.4-svn1", false);
/**
* some users might still have the setting in their database
* because we already had this back in older versions.
* To not confuse Froxlor, we just update old settings.
*/
if(isset($settings['system']['awstats_path'])
&& $settings['system']['awstats_path'] != ''
) {
showUpdateStep("Updating awstats path setting");
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '/usr/bin/' WHERE `settinggroup` = 'system' AND `varname` = 'awstats_path';");
}
else
{
showUpdateStep("Adding new awstats path setting");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_path', '/usr/bin/');");
}
lastStepStatus(0);
if(isset($settings['system']['awstats_domain_file'])
&& $settings['system']['awstats_domain_file'] != ''
) {
showUpdateStep("Updating awstats configuration path setting");
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `varname` = 'awstats_conf' WHERE `varname` = 'awstats_domain_file';");
}
else
{
showUpdateStep("Adding awstats configuration path settings");
$db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'awstats_conf', '/etc/awstats/');");
}
lastStepStatus(0);
updateToVersion('0.9.4-svn1');
}
if(isFroxlorVersion('0.9.4-svn1'))
{
showUpdateStep("Updating from 0.9.4-svn1 to 0.9.4-svn2", false);
$update_domains = isset($_POST['update_domainwildcardentry']) ? intval($_POST['update_domainwildcardentry']) : 0;
if($update_domains != 1)
{
$update_domains = 0;
}
if($update_domains == 1)
{
showUpdateStep("Updating domains with iswildcarddomain=yes");
$query = "SELECT `d`.`id` FROM `".TABLE_PANEL_DOMAINS."` `d`, `".TABLE_PANEL_CUSTOMERS."` `c` ";
$query.= "WHERE `parentdomainid`='0' AND `email_only` = '0' AND `d`.`customerid` = `c`.`customerid` AND `d`.`id` <> `c`.`standardsubdomain`";
$result = $db->query($query);
$updated_domains = 0;
while($domain = $db->fetch_array($result))
{
$db->query("UPDATE `".TABLE_PANEL_DOMAINS."` SET `iswildcarddomain` = '1' WHERE `id` ='".(int)$domain['id']."'");
$updated_domains++;
}
lastStepStatus(0, 'Updated '.$updated_domains.' domain(s)');
} else {
showUpdateStep("Won't update domains with iswildcarddomain=yes as requested");
lastStepStatus(1);
}
showUpdateStep("Updating database table definition for panel_domains");
$db->query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` MODIFY `iswildcarddomain` tinyint(1) NOT NULL default '1';");
lastStepStatus(0);
updateToVersion('0.9.4-svn2');
}
if(isFroxlorVersion('0.9.4-svn2'))
{
showUpdateStep("Updating from 0.9.4-svn2 to 0.9.5 final");
lastStepStatus(0);
updateToVersion('0.9.5');
}
?>

View File

@@ -0,0 +1,59 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2010 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 Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Language
* @version $Id$
*/
/**
* Function getPreConfig
*
* outputs various content before the update process
* can be continued (askes for agreement whatever is being asked)
*
* @param string version
*
* @return string
*/
function getPreConfig($current_version)
{
$has_preconfig = false;
$return = '<div class="preconfig"><h3 style="color:#ff0000;">PLEASE NOTE - Important update notifications</h3>';
include_once makeCorrectFile(dirname(__FILE__).'/preconfig/0.9/preconfig_0.9.inc.php');
parseAndOutputPreconfig($has_preconfig, $return, $current_version);
$return .= '<br /><br />'.makecheckbox('update_changesagreed', '<strong>I have read the update notifications and I am aware of the changes made to my system.</strong>', '1', true, '0', true);
$return .= '</div>';
$return .= '<input type="hidden" name="update_preconfig" value="1" />';
if($has_preconfig) {
return $return;
} else {
return '';
}
}
function versionInUpdate($current_version, $version_to_check)
{
$pos_a = strpos($current_version, '-svn');
$pos_b = strpos($current_version, '-svn');
// if we compare svn-versions, we have to add -svn0 to the version
// to compare it correctly
if($pos_a === false && $pos_b !== false)
{
$current_version.= '-svn0';
}
return version_compare($current_version, $version_to_check, '<');
}

View File

@@ -0,0 +1,38 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2010 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 Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Language
* @version $Id$
*/
/**
* checks if the new-version has some updating to do
*
* @param boolean $has_preconfig pointer to check if any preconfig has to be output
* @param string $return pointer to output string
* @param string $current_version current froxlor version
*
* @return null
*/
function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version)
{
if(versionInUpdate($current_version, '0.9.4-svn2'))
{
$has_preconfig = true;
$return .= 'Froxlor now enables the usage of a domain-wildcard entry and subdomains for this domain at the same time (subdomains are parsed before the main-domain vhost container). ';
$return .= 'This makes it possible to catch all non-existing subdomains with the main vhost but also have the ability to use subdomains for that domain.<br />';
$return .= 'If you would like Froxlor to do so with your domains, the update script can set the correct values for existing domains for you. Note: future domains will have wildcard-entries enabled by default no matter how you decide here.<br /><br />';
$return .= '<strong>Do you want to use wildcard-entries for existing domains?:</strong>&nbsp;';
$return .= makeyesno('update_domainwildcardentry', '1', '0', '1').'<br /><br />';
}
}

View File

@@ -29,7 +29,7 @@ return Array(
'commands' => Array(
'mkdir -p ' . $settings['system']['documentroot_prefix'],
'mkdir -p ' . $settings['system']['logfiles_directory'],
'mkdir -p ' . $settings['system']['deactivateddocroot'],
($settings['system']['deactivateddocroot'] != '') ? 'mkdir -p ' . $settings['system']['deactivateddocroot'] : '',
'mkdir -p ' . $settings['system']['mod_fcgid_tmpdir'],
'chmod 1777 ' . $settings['system']['mod_fcgid_tmpdir'],
'a2dismod userdir',
@@ -73,7 +73,9 @@ return Array(
'commands' => Array(
'apt-get install bind9',
'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/bind/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chown root:bind ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chmod 0644 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
),
'restart' => Array(
'/etc/init.d/bind9 restart'
@@ -135,6 +137,19 @@ return Array(
'newaliases'
)
),
'postfix_mxaccess' => Array(
'label' => 'Postfix MX-Access (anti spam)',
'files' => Array(
'etc_postfix_mx_access' => '/etc/postfix/mx_access',
'etc_postfix_main.cf' => '/etc/postfix/main.cf'
),
'commands_1' => Array(
'postmap /etc/postfix/mx_access'
),
'restart' => Array(
'/etc/init.d/postfix restart'
)
),
'exim4' => Array(
'label' => 'Exim4',
'commands_1' => Array(
@@ -260,7 +275,7 @@ return Array(
'cp /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl /usr/lib/cgi-bin/'
),
'files' => Array(
'etc_awstats.model.conf' => '/etc/awstats/awstats.conf'
'etc_awstats.model.conf' => makeCorrectFile($settings['system']['awstats_conf'].'/awstats.conf')
),
),
'libnss' => Array(

View File

@@ -112,6 +112,19 @@ return Array(
'sh /usr/local/etc/rc.d/postfix restart'
)
),
'postfix_mxaccess' => Array(
'label' => 'Postfix MX-Access (anti spam)',
'files' => Array(
'etc_postfix_mx_access' => '/usr/local/etc/postfix/mx_access',
'etc_postfix_main.cf' => '/usr/local/etc/postfix/main.cf'
),
'commands_1' => Array(
'postmap /etc/postfix/mx_access'
),
'restart' => Array(
'/etc/init.d/postfix restart'
)
),
'dkim' => Array(
'label' => 'DomainKey filter',
'commands' => Array(
@@ -164,15 +177,31 @@ return Array(
'proftpd' => Array(
'label' => 'ProFTPd',
'files' => Array(
'etc_proftpd_proftpd.conf' => '/etc/proftpd/proftpd.conf'
'etc_proftpd_proftpd.conf' => '/usr/local/etc/proftpd.conf'
),
'commands' => Array(
'touch /etc/proftpd/proftpd.conf',
'chown root:0 /etc/proftpd/proftpd.conf',
'chmod 0600 /etc/proftpd/proftpd.conf'
'touch /usr/local/etc/proftpd.conf',
'chown root:0 /usr/local/etc/proftpd.conf',
'chmod 0600 /usr/local/etc/proftpd.conf'
),
'restart' => Array(
'/etc/init.d/proftpd restart'
'/usr/local/etc/rc.d/proftpd restart'
)
)
)
),
'etc' => Array(
'label' => $lng['admin']['configfiles']['etc'],
'daemons' => Array(
'awstats' => Array(
'label' => 'Awstats',
'commands' => Array(
'cd /usr/ports/www/awstats/',
'make install clean',
'cp /usr/local/www/awstats/cgi-bin/awstats.model.conf '.makeCorrectDir($settings['system']['awstats_conf'])
),
'files' => Array(
'etc_awstats.model.conf' => makeCorrectFile($settings['system']['awstats_conf'].'/awstats.model.conf')
)
)
)

View File

@@ -76,7 +76,7 @@ return Array(
'commands' => Array(
'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/bind/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chown root:0 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chown named:0 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chmod 0600 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
),
'restart' => Array(
@@ -128,6 +128,19 @@ return Array(
'/etc/init.d/postfix restart'
)
),
'postfix_mxaccess' => Array(
'label' => 'Postfix MX-Access (anti spam)',
'files' => Array(
'etc_postfix_mx_access' => '/etc/postfix/mx_access',
'etc_postfix_main.cf' => '/etc/postfix/main.cf'
),
'commands_1' => Array(
'postmap /etc/postfix/mx_access'
),
'restart' => Array(
'/etc/init.d/postfix restart'
)
),
'dkim' => Array(
'label' => 'DomainKey filter',
'commands_1' => Array(
@@ -275,7 +288,7 @@ milter_default_action = accept" >> /etc/postfix/main.cf'
'awstats_configure.pl'
),
'files' => Array(
'etc_awstats.model.conf' => '/etc/awstats/awstats.model.conf'
'etc_awstats.model.conf' => makeCorrectFile($settings['system']['awstats_conf'].'/awstats.model.conf')
),
),
'libnss' => Array(

View File

@@ -72,7 +72,9 @@ return Array(
'label' => 'Bind9',
'commands' => Array(
'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/bind/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chown root:bind ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chmod 0644 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
),
'restart' => Array(
'/etc/init.d/bind9 restart'
@@ -135,6 +137,19 @@ return Array(
'newaliases'
)
),
'postfix_mxaccess' => Array(
'label' => 'Postfix MX-Access (anti spam)',
'files' => Array(
'etc_postfix_mx_access' => '/etc/postfix/mx_access',
'etc_postfix_main.cf' => '/etc/postfix/main.cf'
),
'commands_1' => Array(
'postmap /etc/postfix/mx_access'
),
'restart' => Array(
'/etc/init.d/postfix restart'
)
),
'exim4' => Array(
'label' => 'Exim4',
'commands_1' => Array(
@@ -254,7 +269,7 @@ return Array(
'cp /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl /usr/lib/cgi-bin/'
),
'files' => Array(
'etc_awstats.model.conf' => '/etc/awstats/awstats.model.conf'
'etc_awstats.model.conf' => makeCorrectFile($settings['system']['awstats_conf'].'/awstats.conf')
),
),
'libnss' => Array(

View File

@@ -73,7 +73,9 @@ return Array(
'commands' => Array(
'apt-get install bind9',
'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/bind/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chown root:bind ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chmod 0644 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
),
'restart' => Array(
'/etc/init.d/bind9 restart'
@@ -135,6 +137,19 @@ return Array(
'newaliases'
)
),
'postfix_mxaccess' => Array(
'label' => 'Postfix MX-Access (anti spam)',
'files' => Array(
'etc_postfix_mx_access' => '/etc/postfix/mx_access',
'etc_postfix_main.cf' => '/etc/postfix/main.cf'
),
'commands_1' => Array(
'postmap /etc/postfix/mx_access'
),
'restart' => Array(
'/etc/init.d/postfix restart'
)
),
'exim4' => Array(
'label' => 'Exim4',
'commands_1' => Array(
@@ -261,7 +276,7 @@ return Array(
'cp /usr/share/doc/awstats/examples/awstats_buildstaticpages.pl /usr/lib/cgi-bin/'
),
'files' => Array(
'etc_awstats.model.conf' => '/etc/awstats/awstats.conf'
'etc_awstats.model.conf' => makeCorrectFile($settings['system']['awstats_conf'].'/awstats.conf')
),
),
'libnss' => Array(

View File

@@ -47,7 +47,9 @@ return Array(
'label' => 'Bind9',
'commands' => Array(
'echo "include \"' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf\";" >> /etc/named.conf',
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
'touch ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chown named:0 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf',
'chmod 0600 ' . $settings['system']['bindconf_directory'] . 'froxlor_bind.conf'
),
'restart' => Array(
'/etc/init.d/named restart'
@@ -89,6 +91,19 @@ return Array(
'restart' => Array(
'/etc/init.d/postfix restart'
)
),
'postfix_mxaccess' => Array(
'label' => 'Postfix MX-Access (anti spam)',
'files' => Array(
'etc_postfix_mx_access' => '/etc/postfix/mx_access',
'etc_postfix_main.cf' => '/etc/postfix/main.cf'
),
'commands_1' => Array(
'postmap /etc/postfix/mx_access'
),
'restart' => Array(
'/etc/init.d/postfix restart'
)
)
)
),
@@ -141,7 +156,7 @@ return Array(
'awstats_configure.pl'
),
'files' => Array(
'etc_awstats.model.conf' => '/etc/awstats/awstats.conf'
'etc_awstats.model.conf' => makeCorrectFile($settings['system']['awstats_conf'].'/awstats.conf')
)
)
)

View File

@@ -75,7 +75,7 @@ while($fName = readdir($lockDirHandle))
// Check if cron is running or has died.
$check_pid = substr(strstr($fName, "-"), 1);
system("kill -CHLD " . $check_pid . " 1> /dev/null 2> /dev/null", $check_pid_return);
system("kill -CHLD " . (int)$check_pid . " 1> /dev/null 2> /dev/null", $check_pid_return);
if($check_pid_return == 1)
{

View File

@@ -0,0 +1,45 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2010 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 Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Language
* @version $Id$
*/
/**
* Function domainHasApsInstances
*
* Checks if a given domain id
* is used for APS instances
* (if APS enabled, else always false)
*
* @param int domain-id
*
* @return boolean
*/
function domainHasApsInstances($domainid = 0)
{
global $db, $settings;
if($settings['aps']['aps_active'] == '1')
{
if($domainid > 0)
{
$instances = $db->query_first("SELECT COUNT(`ID`) AS `count` FROM `" . TABLE_APS_SETTINGS . "` WHERE `Name`='main_domain' AND `Value`='" . (int)$domainid . "'");
if((int)$instances['count'] != 0)
{
return true;
}
}
}
return false;
}

View File

@@ -38,7 +38,7 @@ function makePathfield($path, $uid, $gid, $fieldType, $value = '')
if($fieldType == 'Manual')
{
$field = '<input type="text" name="path" value="' . htmlspecialchars($value) . '" size="30" />';
$field = '<input type="text" name="path" value="' . htmlspecialchars($value) . '" />';
}
elseif($fieldType == 'Dropdown')
{
@@ -65,7 +65,7 @@ function makePathfield($path, $uid, $gid, $fieldType, $value = '')
else
{
$field = $lng['panel']['toomanydirs'];
$field.= '<input type="text" name="path" value="' . htmlspecialchars($value) . '" size="30" />';
$field.= '<input type="text" name="path" value="' . htmlspecialchars($value) . '" />';
}
}
else

View File

@@ -17,7 +17,7 @@
* @version $Id$
*/
function getFormFieldDataBool($fieldname, $fielddata, $input)
function getFormFieldDataBool($fieldname, $fielddata, &$input)
{
if(isset($input[$fieldname]) && ($input[$fieldname] === '1' || $input[$fieldname] === 1 || $input[$fieldname] === true || strtolower($input[$fieldname]) === 'yes' || strtolower($input[$fieldname]) === 'ja'))
{

View File

@@ -0,0 +1,62 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2010 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 Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings
* @version $Id $
*/
function buildFormEx($form, $part = '')
{
$fields = '';
if(validateFormDefinition($form))
{
foreach($form['groups'] as $groupname => $groupdetails)
{
// show overview
if($part == '')
{
if(isset($groupdetails['title']) && $groupdetails['title'] != '')
{
$fields .= getFormOverviewGroupOutput($groupname, $groupdetails);
}
}
// only show one section
elseif($part != '' && ($groupname == $part || $part == 'all'))
{
if(isset($groupdetails['title']) && $groupdetails['title'] != '')
{
$fields .= getFormGroupOutput($groupname, $groupdetails);
}
if(validateFieldDefinition($groupdetails))
{
// Prefetch form fields
foreach($groupdetails['fields'] as $fieldname => $fielddetails)
{
$groupdetails['fields'][$fieldname] = array_merge_prefix($fielddetails, $fielddetails['type'], prefetchFormFieldData($fieldname, $fielddetails));
$form['groups'][$groupname]['fields'][$fieldname] = $groupdetails['fields'][$fieldname];
}
// Collect form field output
foreach($groupdetails['fields'] as $fieldname => $fielddetails)
{
$fields .= getFormFieldOutput($fieldname, $fielddetails);
}
}
}
}
}
return $fields;
}

View File

@@ -17,11 +17,11 @@
* @version $Id$
*/
function getFormFieldData($fieldname, $fielddata, $input)
function getFormFieldData($fieldname, $fielddata, &$input)
{
if(is_array($fielddata) && isset($fielddata['type']) && $fielddata['type'] != '' && function_exists('getFormFieldData' . ucfirst($fielddata['type'])))
{
$newfieldvalue = call_user_func('getFormFieldData' . ucfirst($fielddata['type']), $fieldname, $fielddata, &$input);
$newfieldvalue = call_user_func('getFormFieldData' . ucfirst($fielddata['type']), $fieldname, $fielddata, $input);
}
else
{

View File

@@ -23,3 +23,54 @@ function getFormGroupOutput($groupname, $groupdetails)
eval("\$group = \"" . getTemplate("settings/settings_group") . "\";");
return $group;
}
function getFormOverviewGroupOutput($groupname, $groupdetails)
{
global $lng, $settings, $filename, $s;
$group = '';
$title = $groupdetails['title'];
$part = $groupname;
$activated = true;
$option = '';
if(isset($groupdetails['fields']))
{
foreach($groupdetails['fields'] as $fieldname => $fielddetails)
{
if(isset($fielddetails['overview_option'])
&& $fielddetails['overview_option'] == true
) {
if($fielddetails['type'] != 'option'
&& $fielddetails['type'] != 'bool')
{
standard_error('overviewsettingoptionisnotavalidfield');
}
if($fielddetails['type'] == 'option')
{
$options_array = $fielddetails['option_options'];
$options = '';
foreach($options_array as $value => $vtitle)
{
$options .= makeoption($vtitle, $value, $settings[$fielddetails['settinggroup']][$fielddetails['varname']]);
}
$option.= $fielddetails['label'].':&nbsp;';
$option.= '<select class="dropdown_noborder" name="'.$fieldname.'">';
$option.= $options;
$option.= '</select>';
$activated = true;
}
else
{
$option.= $lng['admin']['activated'].':&nbsp;';
$option.= makeyesno($fieldname, '1', '0', $settings[$fielddetails['settinggroup']][$fielddetails['varname']]);
$activated = (int)$settings[$fielddetails['settinggroup']][$fielddetails['varname']];
}
}
}
}
eval("\$group = \"" . getTemplate("settings/settings_overviewgroup") . "\";");
return $group;
}

View File

@@ -17,7 +17,7 @@
* @version $Id$
*/
function processForm($form, $input, $url_params = array())
function processForm(&$form, &$input, $url_params = array())
{
if(validateFormDefinition($form))
{
@@ -45,7 +45,7 @@ function processForm($form, $input, $url_params = array())
// Validate fields
foreach($groupdetails['fields'] as $fieldname => $fielddetails)
{
$newfieldvalue = getFormFieldData($fieldname, $fielddetails, &$input);
$newfieldvalue = getFormFieldData($fieldname, $fielddetails, $input);
if($newfieldvalue != $fielddetails['value'])
{
@@ -143,3 +143,166 @@ function processForm($form, $input, $url_params = array())
return saveForm($form, $saved_fields);
}
}
function processFormEx(&$form, &$input, $url_params = array(), $part, $settings_all, $settings_part, $only_enabledisable)
{
if(validateFormDefinition($form))
{
$submitted_fields = array();
$changed_fields = array();
$saved_fields = array();
foreach($form['groups'] as $groupname => $groupdetails)
{
if(($settings_part && $part == $groupname)
|| $settings_all
|| $only_enabledisable
){
if(validateFieldDefinition($groupdetails))
{
// Prefetch form fields
foreach($groupdetails['fields'] as $fieldname => $fielddetails)
{
if(!$only_enabledisable
|| ($only_enabledisable && isset($fielddetails['overview_option']))
) {
$groupdetails['fields'][$fieldname] = array_merge_prefix($fielddetails, $fielddetails['type'], prefetchFormFieldData($fieldname, $fielddetails));
$form['groups'][$groupname]['fields'][$fieldname] = $groupdetails['fields'][$fieldname];
}
}
}
}
}
foreach($form['groups'] as $groupname => $groupdetails)
{
if(($settings_part && $part == $groupname)
|| $settings_all
|| $only_enabledisable
){
if(validateFieldDefinition($groupdetails))
{
// Validate fields
foreach($groupdetails['fields'] as $fieldname => $fielddetails)
{
if(!$only_enabledisable
|| ($only_enabledisable && isset($fielddetails['overview_option']))
) {
$newfieldvalue = getFormFieldData($fieldname, $fielddetails, $input);
if($newfieldvalue != $fielddetails['value'])
{
if(($error = validateFormField($fieldname, $fielddetails, $newfieldvalue)) !== true)
{
standard_error($error, $fieldname);
}
else
{
$changed_fields[$fieldname] = $newfieldvalue;
}
}
$submitted_fields[$fieldname] = $newfieldvalue;
}
}
}
}
}
foreach($form['groups'] as $groupname => $groupdetails)
{
if(($settings_part && $part == $groupname)
|| $settings_all
|| $only_enabledisable
){
if(validateFieldDefinition($groupdetails))
{
// Check fields for plausibility
foreach($groupdetails['fields'] as $fieldname => $fielddetails)
{
if(!$only_enabledisable
|| ($only_enabledisable && isset($fielddetails['overview_option']))
) {
if(($plausibility_check = checkPlausibilityFormField($fieldname, $fielddetails, $submitted_fields[$fieldname], $submitted_fields)) !== false)
{
if(is_array($plausibility_check) && isset($plausibility_check[0]))
{
if($plausibility_check[0] == FORMFIELDS_PLAUSIBILITY_CHECK_OK)
{
// Nothing to do here, everything's okay
}
elseif($plausibility_check[0] == FORMFIELDS_PLAUSIBILITY_CHECK_ERROR)
{
unset($plausibility_check[0]);
$error = $plausibility_check[1];
unset($plausibility_check[1]);
$targetname = implode(' ', $plausibility_check);
standard_error($error, $targetname);
}
elseif($plausibility_check[0] == FORMFIELDS_PLAUSIBILITY_CHECK_QUESTION)
{
unset($plausibility_check[0]);
$question = $plausibility_check[1];
unset($plausibility_check[1]);
$targetname = implode(' ', $plausibility_check);
if(!isset($input[$question]))
{
if(is_array($url_params) && isset($url_params['filename']))
{
$filename = $url_params['filename'];
unset($url_params['filename']);
}
else
{
$filename = '';
}
ask_yesno($question, $filename, array_merge($url_params, $submitted_fields, array($question => $question)), $targetname);
}
}
else
{
standard_error('plausibilitychecknotunderstood');
}
}
}
}
}
}
}
}
foreach($form['groups'] as $groupname => $groupdetails)
{
if(($settings_part && $part == $groupname)
|| $settings_all
|| $only_enabledisable
){
if(validateFieldDefinition($groupdetails))
{
// Save fields
foreach($groupdetails['fields'] as $fieldname => $fielddetails)
{
if(!$only_enabledisable
|| ($only_enabledisable && isset($fielddetails['overview_option']))
) {
if(isset($changed_fields[$fieldname]))
{
if(($saved_field = saveFormField($fieldname, $fielddetails, manipulateFormFieldData($fieldname, $fielddetails, $changed_fields[$fieldname]))) !== false)
{
$saved_fields = array_merge($saved_fields, $saved_field);
}
else
{
standard_error('errorwhensaving', $fieldname);
}
}
}
}
}
}
}
// Save form
return saveForm($form, $saved_fields);
}
}

View File

@@ -17,7 +17,7 @@
* @version $Id$
*/
function getFormFieldDataInt($fieldname, $fielddata, $input)
function getFormFieldDataInt($fieldname, $fielddata, &$input)
{
if(isset($input[$fieldname]))
{

View File

@@ -17,7 +17,7 @@
* @version $Id$
*/
function getFormFieldDataOption($fieldname, $fielddata, $input)
function getFormFieldDataOption($fieldname, $fielddata, &$input)
{
if(isset($input[$fieldname]))
{

View File

@@ -238,4 +238,4 @@ function getOutstandingTasks()
$outstanding_tasks .= '</ul></td></tr>';
return $outstanding_tasks;
}
}

View File

@@ -41,6 +41,12 @@ function createAWStatsConf($logFile, $siteDomain, $hostAliases, $customerDocroot
{
safe_exec('mkdir -p '.escapeshellarg($awstats_dir));
}
// weird but could happen...
if(!is_dir($settings['system']['awstats_conf']))
{
safe_exec('mkdir -p '.escapeshellarg($settings['system']['awstats_conf']));
}
// These are the variables we will replace
@@ -48,18 +54,20 @@ function createAWStatsConf($logFile, $siteDomain, $hostAliases, $customerDocroot
'/\{LOG_FILE\}/',
'/\{SITE_DOMAIN\}/',
'/\{HOST_ALIASES\}/',
'/\{CUSTOMER_DOCROOT\}/'
'/\{CUSTOMER_DOCROOT\}/',
'/\{AWSTATS_CONF\}/'
);
$replace = array(
makeCorrectFile($logFile),
$siteDomain,
$hostAliases,
$awstats_dir
$awstats_dir,
makeCorrectDir($settings['system']['awstats_conf'])
);
// File names
$domain_file = '/etc/awstats/awstats.' . $siteDomain . '.conf';
$domain_file = makeCorrectFile($settings['system']['awstats_conf'].'/awstats.' . $siteDomain . '.conf');
$model_file = dirname(dirname(dirname(dirname(__FILE__))));
$model_file.= '/templates/misc/awstatsmodel/';

View File

@@ -17,7 +17,7 @@
* @version $Id$
*/
function loadSettings($settings_data, $db)
function loadSettings(&$settings_data, $db)
{
$settings = array();

View File

@@ -25,6 +25,7 @@ function checkMysqlAccessHost($fieldname, $fielddata, $newfieldvalue, $allnewfie
{
if(validate_ip($host_entry, true) == false
&& validateDomain($host_entry) == false
&& validateLocalHostname($host_entry) == false
&& $host_entry != '%')
{
return array(FORMFIELDS_PLAUSIBILITY_CHECK_ERROR, 'invalidmysqlhost', $host_entry);

View File

@@ -37,12 +37,34 @@ function validateDomain($domainname)
// If FILTER_VALIDATE_URL is good, but FILTER_VALIDATE_URL with FILTER_FLAG_PATH_REQUIRED or FILTER_FLAG_QUERY_REQUIRED is also good, it isn't just a domain.
// This is a ugly hack, maybe a good regex would be better?
if(filter_var($domainname_tmp, FILTER_VALIDATE_URL) !== false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) === false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false)
// there is a bug in php 5.2.13 - 5.3.2 which
// lets filter_var fail if the domain has
// a dash (-) in it. #
if(version_compare("5.2.13", PHP_VERSION, "=")
|| version_compare("5.3.2", PHP_VERSION, "="))
{
return $domainname;
$pattern = '/^([a-z0-9]([a-z0-9\-]{0,61}[a-z0-9])?\.)+[a-z]{2,6}$/i';
if(preg_match($pattern, $domainname_tmp))
{
return $domainname;
}
}
else
{
return false;
if(filter_var($domainname_tmp, FILTER_VALIDATE_URL) !== false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) === false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false)
{
return $domainname;
}
}
return false;
}
function validateLocalHostname($hostname)
{
$pattern = '/^([a-zA-Z0-9\-])+$/i';
if(preg_match($pattern, $hostname))
{
return $hostname;
}
return false;
}

View File

@@ -150,7 +150,7 @@ if(get_magic_quotes_gpc())
*/
$settings_data = loadConfigArrayDir('./actions/admin/settings/');
$settings = loadSettings(&$settings_data, &$db);
$settings = loadSettings($settings_data, $db);
/*
* when upgrading from syscp, the header-graphic gets lost

View File

@@ -68,7 +68,7 @@ define('PACKAGE_ENABLED', 2);
// VERSION INFO
$version = '0.9.4';
$version = '0.9.5';
$dbversion = '2';
$branding = '';

View File

@@ -369,7 +369,6 @@ $lng['admin']['templates']['USERNAME'] = 'Ще бъде заменено с по
$lng['admin']['templates']['PASSWORD'] = 'Ще бъде заменено с паролата за сметката на клиента.';
$lng['admin']['templates']['EMAIL'] = 'Ще бъде заменено със сметка за POP3/IMAP.';
$lng['admin']['rebuildconf'] = 'Възстановяване на конфигурационни файлове';
$lng['admin']['cronlastrun'] = 'Последен cron';
$lng['admin']['ipsandports']['ipsandports'] = 'IP адреси и портове';
$lng['admin']['ipsandports']['add'] = 'Добавяне на IP/порт';
$lng['admin']['ipsandports']['edit'] = 'Редакция на на IP/порт';

View File

@@ -375,7 +375,6 @@ $lng['serversettings']['pathedit']['description'] = 'Vols que la ruta sigui escr
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = '&Uacute;ltima volta';
$lng['serversettings']['paging']['title'] = 'Entrades per p&agrave;gina';
$lng['serversettings']['paging']['description'] = 'Entrades per p&agrave;gina? (0 = sense paginar)';
$lng['error']['ipstillhasdomains'] = 'La combinaci&oacute; IP/Port que vols esborrar t&eacute; dominis assignats. Si us plau, reassigna els dominis a una altra IP/Port abans d\'esborrar.';

View File

@@ -387,7 +387,6 @@ $lng['mysql']['description'] = 'Zde m&ugrave;&#382;ete vytv&aacute;&oslash;et a
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = 'Posledn&iacute; generov&aacute;n&iacute; konfigura&egrave;n&iacute;ch soubor&ugrave;';
$lng['serversettings']['paging']['title'] = 'Z&aacute;znam&ugrave; na str&aacute;nku';
$lng['serversettings']['paging']['description'] = 'Kolik z&aacute;znam&ugrave; by m&igrave; lo b&yacute;t zobrazeno na str&aacute;nce? (0 = zru&#353;it str&aacute;nkov&aacute;n&iacute;)';
$lng['error']['ipstillhasdomains'] = 'IP/Port kombinace, kterou chcete smazat m&aacute; st&aacute;le p&oslash;i&oslash;azen&eacute; dom&eacute;ny, pros&iacute;m p&oslash;e&oslash;a&iuml;te je k jin&eacute; IP/Port kombinaci ne&#382; sma&#382;ete tuto IP/Port kombinaci.';
@@ -529,7 +528,6 @@ $lng['admin']['configfiles']['etc'] = 'Ostatn&iacute; (System)';
$lng['admin']['configfiles']['choosedistribution'] = '-- Vyberte distribuci --';
$lng['admin']['configfiles']['chooseservice'] = '-- Vyberte slu&#382;bu --';
$lng['admin']['configfiles']['choosedaemon'] = '-- Vyberte daemona --';
$lng['admin']['trafficlastrun'] = 'Posledn&iacute; kalkulace p&oslash;enos&ugrave;';
// ADDED IN 1.2.16-svn10

View File

@@ -382,7 +382,6 @@ $lng['mysql']['description'] = 'Her kan du oprette og editere dine MySQL-Databas
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = 'Sidste Cron';
$lng['serversettings']['paging']['title'] = 'Genstande per side';
$lng['serversettings']['paging']['description'] = 'Hvor mange genstande skal vises per side? (0 = brug ikke side inddeling)';
$lng['error']['ipstillhasdomains'] = 'IP/Port kombinationen du vil slette har stadig dom&aelig;ner tilknyttet. Overf&oslash;r disse dom&aelig;ner til en anden IP/Port kombination for at slette denne.';

View File

@@ -381,7 +381,6 @@ $lng['mysql']['description'] = 'Hier kunt u MySQL-Databases maken en wijzigen.<b
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = 'Laatste Cron-run';
$lng['serversettings']['paging']['title'] = 'Vermeldingen per pagina';
$lng['serversettings']['paging']['description'] = 'Hoeveel vermeldingen er getoond moeten worden per pagina? (0 = alles laten zien)';
$lng['error']['ipstillhasdomains'] = 'De IP/Port combinatie die u verwijderen wilt heeft nog domeinen toegewezen, wijs deze opnieuw to aan andere IP/Poort combinaties voordat u deze IP/Poort combinatie verwijderd.';

View File

@@ -752,7 +752,7 @@ $lng['serversettings']['logger']['severity'] = 'Logging level';
$lng['admin']['logger']['normal'] = 'normal';
$lng['admin']['logger']['paranoid'] = 'paranoid';
$lng['serversettings']['logger']['types']['title'] = 'Log-type(s)';
$lng['serversettings']['logger']['types']['description'] = 'Specify logtypes seperated by comma.<br />Available logtypes are: syslog, file, mysql';
$lng['serversettings']['logger']['types']['description'] = 'Specify logtypes. To select multiple types, hold down CTRL while selecting.<br />Available logtypes are: syslog, file, mysql';
$lng['serversettings']['logger']['logfile'] = 'Logfile path including filename';
$lng['error']['logerror'] = 'Log-Error: %s';
$lng['serversettings']['logger']['logcron'] = 'Log cronjobs (one run)';
@@ -826,8 +826,6 @@ $lng['error']['cannotuseawstatsandwebalizeratonetime'] = 'You cannot enable Weba
$lng['serversettings']['webalizer_enabled'] = 'Enable webalizer statistics';
$lng['serversettings']['awstats_enabled'] = 'Enable awstats statistics';
$lng['admin']['awstatssettings'] = 'Awstats settings';
$lng['serversettings']['awstats_domain_file']['title'] = 'Awstats domainfiles directory';
$lng['serversettings']['awstats_model_file']['title'] = 'Awstats model file';
// ADDED IN 1.2.19-svn16
@@ -1260,7 +1258,8 @@ $lng['panel']['off'] = 'off';
$lng['update']['updateinprogress_onlyadmincanlogin'] = 'A newer version of Froxlor has been installed but not yet set up.<br />Only the administrator can log in and finish the update.';
$lng['update']['update'] = 'Froxlor Update';
$lng['update']['proceed'] = 'Proceed';
$lng['update']['update_information'] = 'The Froxlor files have been updated to version <strong>%newversion</strong>. The installed version is <strong>%curversion</strong>.<br /><br />Customers will not be able to log in until the update has been finished.<br /><strong>Proceed?</strong>';
$lng['update']['update_information']['part_a'] = 'The Froxlor files have been updated to version <strong>%newversion</strong>. The installed version is <strong>%curversion</strong>.';
$lng['update']['update_information']['part_b'] = '<br /><br />Customers will not be able to log in until the update has been finished.<br /><strong>Proceed?</strong>';
$lng['update']['noupdatesavail'] = '<strong>You already have the latest Froxlor version.</strong>';
$lng['admin']['specialsettingsforsubdomains'] = 'Apply specialsettings to all subdomains (*.example.com)';
$lng['serversettings']['specialsettingsforsubdomains']['description'] = 'If yes these custom vhost-settings will be added to all subdomains; if no subdomain-specialsettings are being removed.';
@@ -1323,6 +1322,7 @@ $lng['cron']['interval'] = 'interval';
$lng['cron']['isactive'] = 'enabled';
$lng['cron']['description'] = 'description';
$lng['crondesc']['cron_unknown_desc'] = 'no description given';
$lng['admin']['cron']['add'] = 'Add cronjob';
$lng['crondesc']['cron_tasks'] = 'generating of configfiles';
$lng['crondesc']['cron_legacy'] = 'legacy (old) cronjob';
$lng['crondesc']['cron_apsinstaller'] = 'APS-installer';
@@ -1347,4 +1347,19 @@ $lng['cron']['changewarning'] = 'Changing these values can have a negative cause
$lng['serversettings']['stdsubdomainhost']['title'] = 'Customer standard subdomain';
$lng['serversettings']['stdsubdomainhost']['description'] = 'What hostname should be used to create standard subdomains for customer. If empty, the system-hostname is used.';
// ADDED IN FROXLOR 0.9.4-svn1
$lng['ftp']['account_edit'] = 'Edit ftp account';
$lng['ftp']['editpassdescription'] = 'Set new password or leave blank for no change.';
$lng['mysql']['sendinfomail'] = 'Send data via email to me';
$lng['customer']['mysql_add']['infomail_subject'] = '[Froxlor] New database created';
$lng['customer']['mysql_add']['infomail_body']['pma'] = "\nYou can access your databases using phpMyAdmin via {URI}\n";
$lng['customer']['mysql_add']['infomail_body']['main'] = "Hello {CUST_NAME},\n\nyou have just added a new database. Here is the entered information:\n\nDatabasename: {DB_NAME}\nPassword: {DB_PASS}\nDescription: {DB_DESC}\nDB-Hostname: {DB_SRV}\n{PMA_URI}\nYours sincerely, the Froxlor-Team";
$lng['error']['domains_cantdeletedomainwithapsinstances'] = 'You cannot delete a domain which is used by an installed APS package. You have to uninstall it first.';
$lng['serversettings']['awstats_path'] = 'Path to AWStats \'awstats_buildstaticpages.pl\'';
$lng['serversettings']['awstats_conf'] = 'AWStats configuration path';
$lng['error']['overviewsettingoptionisnotavalidfield'] = 'Woops, a field that should be displayed as an option in the settings-overview is not an excepted type. You can blame the developers for this. This should not happen!';
$lng['admin']['configfiles']['compactoverview'] = 'Compact-overview';
$lng['admin']['lastlogin_succ'] = 'Last login';
$lng['panel']['neverloggedin'] = 'No login yet';
?>

View File

@@ -246,7 +246,6 @@ $lng['error']['destinationalreadyexistasmail'] = 'Le renvoi vers l\'adresse "%s"
$lng['error']['destinationalreadyexist'] = 'Il existe d<>j<EFBFBD> une r<>exp<78>dition vers l\'adresse "%s".';
$lng['error']['destinationiswrong'] = 'L\'adresse "%s" contient des signes invalides ou est incompl<70>te.';
$lng['error']['domainname'] = $lng['domains']['domainname'];
$lng['error']['youcantdeletechangemainadmin'] = 'Pour des raisons de s<>curit<69>, il n\'est pas possible de supprimer ou modifier l\'administrateur principal.';
$lng['error']['loginnameissystemaccount'] = 'Vous ne pouvez pas cr<63>er un compte identique au compte syst<73>me, veuillez r<>essayer avec un autre nom.';
/**
@@ -255,7 +254,6 @@ $lng['error']['loginnameissystemaccount'] = 'Vous ne pouvez pas cr
$lng['question']['question'] = 'Question de s<>curit<69>';
$lng['question']['admin_customer_reallydelete'] = 'Etes-vous s<>r de vouloir supprimer le compte "%s" ?<br />ATTENTION ! Toutes ses informations seront supprim<69>es ! Une fois fait, il vous appartiendra de supprimer manuellement tous les dossiers du compte sur le syst<73>me de fichiers.';
$lng['question']['admin_domain_reallyenablemailsystemhostname'] = 'Etes-vous s<>r de vouloir activ<69> le serveur de nom en tant que serveur de mails ?';
$lng['question']['admin_domain_reallydelete'] = 'Etes-vous s<>r de vouloir supprimer le domaine "%s" ?';
$lng['question']['admin_domain_reallydisablesecuritysetting'] = 'Etes-vous s<>r de vouloir d<>sactiver les modes de s<>curit<69> suivants : OpenBasedir et / o<> SafeMode ?';
$lng['question']['admin_admin_reallydelete'] = 'Etes-vous s<>r de vouloir supprimer l\'administrateur "%s" ?<br />Tous ses comptes seront affect<63>s <20> l\'administrateur principal.';
@@ -359,8 +357,6 @@ $lng['serversettings']['hostname']['title'] = 'Nom d\'h
$lng['serversettings']['hostname']['description'] = 'Quel est le nom d\'h<>te (hostname) du serveur ?';
$lng['serversettings']['apachereload_command']['title'] = 'Commande de rechargement d\'Apache';
$lng['serversettings']['apachereload_command']['description'] = 'Quelle est la commande pour recharger / red<65>marrer Apache ?';
$lng['serversettings']['apacheconf_filename']['title'] = 'Nom du fichier de configuration Apache';
$lng['serversettings']['apacheconf_filename']['description'] = 'Dans quel fichier souhaitez-vous enregistrer la configuration Apache ?';
$lng['serversettings']['bindconf_directory']['title'] = 'Emplacement du dossier de configuration de Bind / Named';
$lng['serversettings']['bindconf_directory']['description'] = 'O<> doit <20>tre stock<63> la configuration de Bind / Named ?';
$lng['serversettings']['bindreload_command']['title'] = 'Commande de rechargement de Bind / Named';
@@ -403,7 +399,6 @@ $lng['mysql']['description'] = 'Ici, vous pouvez ajouter et effacer des bases de
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = 'Derni<6E>re t<>che "cron"';
$lng['serversettings']['paging']['title'] = 'Nombre de r<>sultats par page';
$lng['serversettings']['paging']['description'] = 'Nombre de r<>sultats par page ? (0 = D<>sactive la pagination)';
$lng['error']['ipstillhasdomains'] = 'La combinaison IP / port est encore utilis<69>e, veuillez r<>assigner le ou les domaines existant(s) avec cette adresse IP / port concern<72>(s) <20> une autre combinaison IP / port avant de supprimer celle-ci.';
@@ -452,7 +447,6 @@ $lng['error']['phpmyadminiswrong'] = 'Le lien pour phpMyAdmin n\'est pas valide.
$lng['error']['webmailiswrong'] = 'Le lien pour le WebMail n\'est pas valide.';
$lng['error']['webftpiswrong'] = 'Le lien pour le WebFTP n\'est pas valide.';
$lng['domains']['hasaliasdomains'] = 'Le domaine poss<73>de un ou des alias.';
$lng['domains']['istopleveldomain'] = 'Est le nom de domaine principal';
$lng['serversettings']['defaultip']['title'] = 'IP / Port par d<>faut';
$lng['serversettings']['defaultip']['description'] = 'Quel est l\'IP / Port par d<>faut ?';
$lng['domains']['statstics'] = 'Fr<46>quentation';
@@ -546,7 +540,6 @@ $lng['admin']['configfiles']['etc'] = 'Autres (Syst
$lng['admin']['configfiles']['choosedistribution'] = '-- Choisissez une distribution --';
$lng['admin']['configfiles']['chooseservice'] = '-- Choisissez un service --';
$lng['admin']['configfiles']['choosedaemon'] = '-- Choisissez un d<>mon --';
$lng['admin']['trafficlastrun'] = 'Dernier calcul du trafic';
// ADDED IN 1.2.16-svn10
@@ -811,10 +804,6 @@ $lng['cronjobs']['notyetrun'] = 'Pas encore lanc
$lng['install']['servername_should_be_fqdn'] = 'Le nom du serveur doit <20>tre un nom FQDN, pas une adresse IP';
$lng['serversettings']['default_vhostconf']['title'] = 'Param<61>tres par d<>faut pour les vHosts';
$lng['emails']['quota'] = 'Quota';
$lng['emails']['quota_type']['byte'] = 'octet(s)';
$lng['emails']['quota_type']['kilobyte'] = 'Ko';
$lng['emails']['quota_type']['megabyte'] = 'Mo';
$lng['emails']['quota_type']['gigabyte'] = 'Go';
$lng['emails']['noquota'] = 'Pas de quota';
$lng['emails']['updatequota'] = 'Mise <20> jour';
$lng['serversettings']['mail_quota']['title'] = 'Quota de la bo<62>te aux lettres';
@@ -859,8 +848,6 @@ $lng['error']['cannotuseawstatsandwebalizeratonetime'] = 'Vous ne pouvez pas act
$lng['serversettings']['webalizer_enabled'] = 'Activer les statistiques Webalizer';
$lng['serversettings']['awstats_enabled'] = 'Activer les statistiques AWStats';
$lng['admin']['awstatssettings'] = 'Param<61>tres Awstats';
$lng['serversettings']['awstats_domain_file']['title'] = 'Dossier domaines pour AWStats';
$lng['serversettings']['awstats_model_file']['title'] = 'Fichier mod<6F>le pour AWStats';
// ADDED IN 1.2.19-svn16

View File

@@ -756,7 +756,7 @@ $lng['serversettings']['logger']['severity'] = 'Logging Level';
$lng['admin']['logger']['normal'] = 'Normal';
$lng['admin']['logger']['paranoid'] = 'Paranoid';
$lng['serversettings']['logger']['types']['title'] = 'Log-Art(en)';
$lng['serversettings']['logger']['types']['description'] = 'Tragen Sie hier die gew&uuml;nschten Logtypen kommagetrennt ein.<br />M&ouml;gliche Logtypen sind: syslog, file, mysql';
$lng['serversettings']['logger']['types']['description'] = 'W&auml;hlen Sie hier die gew&uuml;nschten Logtypen. F&uuml;r Mehrfachauswahl, halten Sie w&auml;ghrend der Auswahl STRG gedr&uuml;ckt<br />M&ouml;gliche Logtypen sind: syslog, file, mysql';
$lng['serversettings']['logger']['logfile'] = 'Log-Datei Pfad inklusive Dateinamen';
$lng['error']['logerror'] = 'Log-Fehler: %s';
$lng['serversettings']['logger']['logcron'] = 'Log Cronjobs (einen Durchgang)';
@@ -830,8 +830,6 @@ $lng['error']['cannotuseawstatsandwebalizeratonetime'] = 'Webalizer und Awstats
$lng['serversettings']['webalizer_enabled'] = 'Nutze Webalizer Statistiken';
$lng['serversettings']['awstats_enabled'] = 'Nutze AWStats Statistiken';
$lng['admin']['awstatssettings'] = 'Awstats Einstellungen';
$lng['serversettings']['awstats_domain_file']['title'] = 'Awstats Domain-Dateien Ordner';
$lng['serversettings']['awstats_model_file']['title'] = 'Awstats Model Datei';
// ADDED IN 1.2.19-svn16
@@ -1240,7 +1238,8 @@ $lng['panel']['off'] = 'aus';
$lng['update']['updateinprogress_onlyadmincanlogin'] = 'Eine neuere Version von Froxlor wurde installiert, aber noch nicht eingerichtet.<br />Nur der Administrator kann sich anmelden und die Aktualisierung abschlie&szlig;en.';
$lng['update']['update'] = 'Froxlor Aktualisierung';
$lng['update']['proceed'] = 'Ausf&uuml;hren';
$lng['update']['update_information'] = 'Die Froxlor Dateien wurden aktualisiert. Neue Version ist <strong>%newversion</strong>. Die bisher installierte Version ist <strong>%curversion</strong><br /><br />Ein Kunden-Login ist vor Abschluss des Aktualisierungsvorganges nicht m&oouml;glich.<br /><strong>Aktualisierung ausf&uuml;hren?</strong>';
$lng['update']['update_information']['part_a'] = 'Die Froxlor Dateien wurden aktualisiert. Neue Version ist <strong>%newversion</strong>. Die bisher installierte Version ist <strong>%curversion</strong>';
$lng['update']['update_information']['part_b'] = '<br /><br />Ein Kunden-Login ist vor Abschluss des Aktualisierungsvorganges nicht m&ouml;glich.<br /><strong>Aktualisierung ausf&uuml;hren?</strong>';
$lng['update']['noupdatesavail'] = '<strong>Ihre Froxlor-Version ist aktuell.</strong>';
$lng['admin']['specialsettingsforsubdomains'] = '&Uuml;bernehme Einstellungen f&uuml;r alle Subdomains (*.beispiel.de)';
$lng['serversettings']['specialsettingsforsubdomains']['description'] = 'Wenn ja, werden die individuellen Einstellungen f&uuml;r alle Subdomains &uuml;bernommen; wenn nein, werden Subdomain-Specialsettings entfernt.';
@@ -1301,9 +1300,9 @@ $lng['cron']['cronname'] = 'Cronjob-Name';
$lng['cron']['lastrun'] = 'zuletzt gestartet';
$lng['cron']['interval'] = 'Intervall';
$lng['cron']['isactive'] = 'Aktiv';
$lng['admin']['cron']['add'] = 'Cronjob hinzuf&uuml;gen';
$lng['cron']['description'] = 'Beschreibung';
$lng['crondesc']['cron_unknown_desc'] = 'Keine Beschreibung angegeben';
$lng['admin']['cron']['add'] = 'Cronjob hinzuf&uuml;gen';
$lng['crondesc']['cron_tasks'] = 'Erstellen von Konfigurationsdateien';
$lng['crondesc']['cron_legacy'] = 'Legacy (alter) Cronjob';
$lng['crondesc']['cron_apsinstaller'] = 'APS-Installer';
@@ -1328,4 +1327,35 @@ $lng['cron']['changewarning'] = '&Auml;nderungen an diesen Werten kann einen neg
$lng['serversettings']['stdsubdomainhost']['title'] = 'Kunden Standard-Subdomain';
$lng['serversettings']['stdsubdomainhost']['description'] = 'Welcher Hostname soll f&uuml;r das Erstellen der Kunden-Standard-Subdomain verwendet werden? Falls leer wird der System-Hostname verwendet.';
// ADDED IN FROXLOR 0.9.4-svn1
$lng['ftp']['account_edit'] = 'FTP Konto bearbeiten';
$lng['ftp']['editpassdescription'] = 'Neues Passwort setzen oder leer f&uuml;r keine &Auml;nderung.';
$lng['mysql']['sendinfomail'] = 'Daten per E-Mail an mich senden';
$lng['customer']['mysql_add']['infomail_subject'] = '[Froxlor] Neue Datenbank erstellt';
$lng['customer']['mysql_add']['infomail_body']['pma'] = "\nDie Datenbank kann mit phpMyAdmin via {URI} verwaltet werden.\n";
$lng['customer']['mysql_add']['infomail_body']['main'] = "Hallo {CUST_NAME},\n\ndu hast gerade eine neue Datenbank angelegt. Hier die angegebenen Informationen:\n\nDatenbankname: {DB_NAME}\nPasswort: {DB_PASS}\nBeschreibung: {DB_DESC}\nDatenbank-Server: {DB_SRV}\n{PMA_URI}\nVielen Dank, das Froxlor-Team";
$lng['error']['domains_cantdeletedomainwithapsinstances'] = 'Sie k&ouml;nnen keine Domain l&ouml;schen, die noch von APS Paketen verwendet wird. L&ouml;schen Sie zuerst alle installierten APS Pakete dieser Domain.';
$lng['serversettings']['awstats_path'] = 'Pfad zu AWStats \'awstats_buildstaticpages.pl\'';
$lng['serversettings']['awstats_conf'] = 'AWStats Konfigurations-Pfad';
$lng['error']['overviewsettingoptionisnotavalidfield'] = 'Hoppla, ein Feld, dass als Option in der Konfigurations&uuml;bersicht angezeigt werden soll, hat nicht den erwarteten Wert. Sie k&ouml;nnen den Entwicklern die Schuld geben. Dies sollte nicht passieren!';
$lng['admin']['configfiles']['compactoverview'] = 'Kompakt-&Uuml;bersicht';
$lng['mysql']['mysql_server'] = 'MySQL-Server';
$lng['admin']['ipsandports']['webserverdefaultconfig'] = 'Webserver Standard Konfiguration';
$lng['admin']['ipsandports']['webserverdomainconfig'] = 'Webserver Domain Konfiguration';
$lng['admin']['ipsandports']['webserverssldomainconfig'] = 'Webserver SSL Konfiguration';
$lng['admin']['ipsandports']['ssl_key_file'] = 'Pfad zu der SSL Schl&uuml;sseldatei';
$lng['admin']['ipsandports']['ssl_ca_file'] = 'Pfad zu dem SSL CA Zertifikat';
$lng['admin']['ipsandports']['default_vhostconf_domain'] = 'Standard vHost - Einstellungen f&uuml;r jeden Domain - Kontainer';
$lng['serversettings']['ssl']['ssl_key_file'] = 'Pfad zu der SSL Schl&uuml;sseldatei';
$lng['serversettings']['ssl']['ssl_ca_file'] = 'Pfad zu dem SSL CA Zertifikat';
$lng['error']['usernamealreadyexists'] = 'Der Benutzername %s existiert bereits.';
$lng['error']['plausibilitychecknotunderstood'] = 'Die Antwort des Plausibilit&auml;tschecks wurde nicht verstanden';
$lng['error']['errorwhensaving'] = 'Bei dem Speichern des Feldes %s trat ein Fehler auf';
$lng['success']['success'] = 'Information';
$lng['success']['clickheretocontinue'] = 'Hier klicken um fortzufahren';
$lng['success']['settingssaved'] = 'Die Einstellungen wurden erfolgreich gespeichert.';
$lng['admin']['lastlogin_succ'] = 'Letzte Anmeldung';
$lng['panel']['neverloggedin'] = 'Keine Anmeldung bisher';
?>

View File

@@ -191,7 +191,6 @@ $lng['error']['youhavealreadyacatchallforthisdomain'] = '&Ouml;n m&aacute;r megh
$lng['error']['ftp_cantdeletemainaccount'] = 'Nem t&ouml;r&ouml;lheti f&#337; FTP hozz&aacute;f&eacute;r&eacute;s&eacute;t.';
$lng['error']['login'] = 'Helytelen a felhaszn&aacute;l&oacute;n&eacute;v vagy a jelsz&oacute;, amelyet beg&eacute;pelt. K&eacute;rem, pr&oacute;b&aacute;lja &uacute;jra!';
$lng['error']['login_blocked'] = 'Ezt a hozz&aacute;f&eacute;r&eacute;s fel lett f&uuml;ggesztve a t&uacute;l sok bejelentkez&eacute;si hiba miatt. K&eacute;rem, pr&oacute;b&aacute;lja &uacute;jra!';
$settings['login']['deactivatetime'] . ' seconds.';
$lng['error']['notallreqfieldsorerrors'] = 'Nem teljesen vagy helytelen&uuml;l t&ouml;lt&ouml;tte ki a mez&#337;ket.';
$lng['error']['oldpasswordnotcorrect'] = 'A r&eacute;gi jelsz&oacute; helytelen.';
$lng['error']['youcantallocatemorethanyouhave'] = 'Nem oszthat ki t&ouml;bb er&#337;forr&aacute;st, mint amennyit birtokol.';
@@ -386,7 +385,6 @@ $lng['mysql']['description'] = 'Itt hozhatja l&eacute;tre &eacute;s v&aacute;lto
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = 'Utols&oacute; Cron fut&aacute;s';
$lng['serversettings']['paging']['title'] = 'Bejegyz&eacute;sek sz&aacute;ma egy lapon';
$lng['serversettings']['paging']['description'] = 'H&aacute;ny bejegyz&eacute;s jelenjen meg egy lapon? (0 = lapoz&aacute;s kikapcsol&aacute;sa)';
$lng['error']['ipstillhasdomains'] = 'A t&ouml;r&ouml;lni k&iacute;v&aacute;nt IP/Port kombin&aacute;ci&oacute;hoz domainek vannak rendelve. Rendelje hozz&aacute; ezeket egy m&aacute;sik IP/Port kombin&aacute;ci&oacute;hoz, miel&#337;tt a jelenlegi IP/Port kombin&aacute;ci&oacute;t t&ouml;rli.';

View File

@@ -378,7 +378,6 @@ $lng['serversettings']['pathedit']['description'] = 'Un percorso/cartella andr
* New strings
*/
$lng['admin']['cronlastrun'] = 'Ultimo Cronjob';
$lng['serversettings']['paging']['title'] = 'Elementi da visualizzare per pagina';
$lng['serversettings']['paging']['description'] = 'Quanti elementi dovrebbero essere visualizzati su una pagina? (0 = disattiva impaginazione)';
$lng['error']['ipstillhasdomains'] = 'La combinazione IP/Porta che vuoi eliminare ha ancora dei domini assegnati, per favore riassegna questi domini ad altre combinazioni IP/Porta prima di eliminare questa.';

View File

@@ -75,7 +75,7 @@ $lng['customer']['unlimited'] = 'bez limitu';
* Customermenue
*/
$lng['menue']['main']['main'] = 'Panel g<EFBFBD><EFBFBD>wny';
$lng['menue']['main']['main'] = 'Panel g&#322<EFBFBD>wny';
$lng['menue']['main']['changepassword'] = 'Zmie&#324 has&#322o';
$lng['menue']['main']['changelanguage'] = 'Zmie&#324 j&#281zyk';
$lng['menue']['email']['email'] = 'E-mail';
@@ -218,16 +218,16 @@ $lng['error']['errordocpathdupe'] = 'Option for path %s already exists';
$lng['error']['adduserfirst'] = 'Prosz&#281 w pierwszej kolejno&#347ci utworzy&#263 klienta';
$lng['error']['domainalreadyexists'] = 'The domain %s is already assigned to a customer';
$lng['error']['nolanguageselect'] = 'Nie wybrano j&#281zyka.';
$lng['error']['nosubjectcreate'] = 'Musisz zdefiniowa<EFBFBD> temat dla szablonu e-maila.';
$lng['error']['nomailbodycreate'] = 'Musisz zdefiniowa<EFBFBD> tre<72><65> dla szablonu e-maila.';
$lng['error']['templatenotfound'] = 'Szablon nie zosta<EFBFBD> znaleziony.';
$lng['error']['nosubjectcreate'] = 'Musisz zdefiniowa&#263 temat dla szablonu e-maila.';
$lng['error']['nomailbodycreate'] = 'Musisz zdefiniowa&#263 tre&#347&#263 dla szablonu e-maila.';
$lng['error']['templatenotfound'] = 'Szablon nie zosta&#322 znaleziony.';
$lng['error']['alltemplatesdefined'] = 'You cant define more templates, all languages are supported already.';
$lng['error']['wwwnotallowed'] = 'www is not allowed for subdomains.';
$lng['error']['subdomainiswrong'] = 'The subdomain %s contains invalid characters.';
$lng['error']['domaincantbeempty'] = 'Nazwa domeny nie mo<EFBFBD>e by<62> pusta.';
$lng['error']['domainexistalready'] = 'Domena %s ju<EFBFBD> istnieje.';
$lng['error']['domaincantbeempty'] = 'Nazwa domeny nie mo&#380e by&#263 pusta.';
$lng['error']['domainexistalready'] = 'Domena %s ju&#380 istnieje.';
$lng['error']['domainisaliasorothercustomer'] = 'The selected alias domain is either itself an alias domain or belongs to another customer.';
$lng['error']['emailexistalready'] = 'Adres e-mail %s ju<EFBFBD> istnieje.';
$lng['error']['emailexistalready'] = 'Adres e-mail %s ju&#380 istnieje.';
$lng['error']['maindomainnonexist'] = 'The main-domain %s does not exist.';
$lng['error']['destinationnonexist'] = 'Please create your forwarder in the field \'Destination\'.';
$lng['error']['destinationalreadyexistasmail'] = 'The forwarder to %s already exists as active EMail-Address.';
@@ -242,7 +242,7 @@ $lng['error']['domainname'] = $lng['domains']['domainname'];
$lng['question']['question'] = 'Pytanie bezpiecze&#324stwa';
$lng['question']['admin_customer_reallydelete'] = 'Czy na pewno chcesz skasowa&#263 klienta %s? Ta czynno&#347&#263 jest niedwracalna!';
$lng['question']['admin_domain_reallydelete'] = 'Czy na pewno chcesz skasowa&#263 domen&#281 %s?';
$lng['question']['admin_domain_reallydisablesecuritysetting'] = 'Czy na pewno chcesz deaktywowa<EFBFBD> ustawienia bezpiecze<EFBFBD>stwa (OpenBasedir i/lub SafeMode)?';
$lng['question']['admin_domain_reallydisablesecuritysetting'] = 'Czy na pewno chcesz deaktywowa&#263 ustawienia bezpiecze&#324stwa (OpenBasedir i/lub SafeMode)?';
$lng['question']['admin_admin_reallydelete'] = 'Czy na pewno chcesz skasowa&#263 administratora %s? Wszystcy klienci i domeny zostan&#261 przypisani do Twojego konta.';
$lng['question']['admin_template_reallydelete'] = 'Czy na pewno chcesz skasowa&#263 szablon \'%s\'?';
$lng['question']['domains_reallydelete'] = 'Czy na pewno chcesz skasowa&#263 domen&#281 %s?';
@@ -328,17 +328,17 @@ $lng['admin']['webserver'] = 'Webserwer';
*/
$lng['serversettings']['session_timeout']['title'] = 'Timeout Sesji';
$lng['serversettings']['session_timeout']['description'] = 'jak d<EFBFBD>ugo u<>ytkownik mo<6D>e by<62> nieaktywny przed automatycznym wylogowaniem (sekund)?';
$lng['serversettings']['session_timeout']['description'] = 'jak d&#322ugo u&#380ytkownik mo&#380e by&#263 nieaktywny przed automatycznym wylogowaniem (sekund)?';
$lng['serversettings']['accountprefix']['title'] = 'Customer prefix';
$lng['serversettings']['accountprefix']['description'] = 'Which prefix should customer accounts have?';
$lng['serversettings']['mysqlprefix']['title'] = 'SQL Prefix';
$lng['serversettings']['mysqlprefix']['description'] = 'Which prefix should mysql accounts have?';
$lng['serversettings']['ftpprefix']['title'] = 'FTP Prefix';
$lng['serversettings']['ftpprefix']['description'] = 'Which prefix should ftp accounts have?';
$lng['serversettings']['documentroot_prefix']['title'] = 'Home directory';
$lng['serversettings']['documentroot_prefix']['description'] = 'Where should all home directories be stored?';
$lng['serversettings']['logfiles_directory']['title'] = 'Logfiles directory';
$lng['serversettings']['logfiles_directory']['description'] = 'Where should all log files be stored?';
$lng['serversettings']['documentroot_prefix']['title'] = 'Katalog domowy';
$lng['serversettings']['documentroot_prefix']['description'] = 'Gdzie powinny by&#263 przechowywane wszystkie katalogi domowe?';
$lng['serversettings']['logfiles_directory']['title'] = 'Katalog z logami';
$lng['serversettings']['logfiles_directory']['description'] = 'Gdzie powinny by&#263 przechowywane wszystkie logi?';
$lng['serversettings']['ipaddress']['title'] = 'Adres IP';
$lng['serversettings']['ipaddress']['description'] = 'Jaki jest adres IP tego serwera?';
$lng['serversettings']['hostname']['title'] = 'Hostname';
@@ -356,20 +356,20 @@ $lng['serversettings']['vmail_uid']['description'] = 'Which UserID should mails
$lng['serversettings']['vmail_gid']['title'] = 'Mails-GID';
$lng['serversettings']['vmail_gid']['description'] = 'Which GroupID should mails have?';
$lng['serversettings']['vmail_homedir']['title'] = 'Katalog domowy e-maili';
$lng['serversettings']['vmail_homedir']['description'] = 'Gdzie maj<EFBFBD> by<62> sk<73>adowane wiadomo<EFBFBD>ci e-mail?';
$lng['serversettings']['vmail_homedir']['description'] = 'Gdzie maj&#261 by&#263 sk&#322adowane wiadomo&#347ci e-mail?';
$lng['serversettings']['adminmail']['title'] = 'Nadawca';
$lng['serversettings']['adminmail']['description'] = 'Jaki jest adres nadawcy dla wiadomo<EFBFBD>ci wysy<EFBFBD>anych z panelu?';
$lng['serversettings']['adminmail']['description'] = 'Jaki jest adres nadawcy dla wiadomo&#347ci wysy&#322anych z panelu?';
$lng['serversettings']['phpmyadmin_url']['title'] = 'URL do phpMyAdmina';
$lng['serversettings']['phpmyadmin_url']['description'] = 'What\'s the URL to phpMyAdmin? (has to start with http(s)://)';
$lng['serversettings']['webmail_url']['title'] = 'WebMail URL';
$lng['serversettings']['webmail_url']['description'] = 'What\'s the URL to WebMail? (has to start with http(s)://)';
$lng['serversettings']['webftp_url']['title'] = 'WebFTP URL';
$lng['serversettings']['webftp_url']['description'] = 'What\'s the URL to WebFTP? (has to start with http(s)://)';
$lng['serversettings']['language']['description'] = 'What\'s your standard server language?';
$lng['serversettings']['phpmyadmin_url']['description'] = 'Jaki jest adres URL do phpMyAdmina? (Musi si&#281 rozpoczyna&#263 do http(s)://)';
$lng['serversettings']['webmail_url']['title'] = 'URL do WebMaila';
$lng['serversettings']['webmail_url']['description'] = 'Jaki jest adres URL do WebMaila? (Musi si&#281 rozpoczyna&#263 do http(s)://)';
$lng['serversettings']['webftp_url']['title'] = 'URL do WebFTPa';
$lng['serversettings']['webftp_url']['description'] = 'Jaki jest adres URL do WebFTPa? (Musi si&#281 rozpoczyna&#263 do http(s)://)';
$lng['serversettings']['language']['description'] = 'Jaki jest standardowy j&#281zyk serwera?';
$lng['serversettings']['maxloginattempts']['title'] = 'Max Login Attempts';
$lng['serversettings']['maxloginattempts']['description'] = 'Maximum login attempts after which the account gets deactivated.';
$lng['serversettings']['deactivatetime']['title'] = 'Czas zablokowania';
$lng['serversettings']['deactivatetime']['description'] = 'Czas (sek.) zablokowania dost<EFBFBD>pu do konta po nieudanym logowaniu.';
$lng['serversettings']['deactivatetime']['description'] = 'Czas (sek.) zablokowania dost&#281pu do konta po nieudanym logowaniu.';
$lng['serversettings']['pathedit']['title'] = 'Type of path input';
$lng['serversettings']['pathedit']['description'] = 'Should a path be selected by a dropdown menu or by an input field?';
$lng['serversettings']['nameservers']['title'] = 'Serwery Nazw (Nameserwery)';
@@ -381,7 +381,7 @@ $lng['serversettings']['mxservers']['description'] = 'A comma seperated list con
* CHANGED BETWEEN 1.2.12 and 1.2.13
*/
$lng['mysql']['description'] = 'W tym miejscu mo<EFBFBD>esz tworzy<EFBFBD> i zmienia<EFBFBD> Twoje bazy MySQL.<br />The changes are made instantly and the database can be used immediately.<br />At the menu on the left side you find the tool phpMyAdmin with which you can easily administer your database.<br /><br />To use your databases in your own php-scripts use the following settings: (The data in <i>italics</i> have to be changed into the equivalents you typed in!)<br />Hostname: <b><SQL_HOST></b><br />Username: <b><i>Databasename</i></b><br />Password: <b><i>the password you\'ve chosen</i></b><br />Database: <b><i>Databasename</i></b>';
$lng['mysql']['description'] = 'W tym miejscu mo&#380esz tworzy&#263 i zmienia&#263 Twoje bazy MySQL.<br />The changes are made instantly and the database can be used immediately.<br />At the menu on the left side you find the tool phpMyAdmin with which you can easily administer your database.<br /><br />To use your databases in your own php-scripts use the following settings: (The data in <i>italics</i> have to be changed into the equivalents you typed in!)<br />Hostname: <b><SQL_HOST></b><br />Username: <b><i>Databasename</i></b><br />Password: <b><i>the password you\'ve chosen</i></b><br />Database: <b><i>Databasename</i></b>';
/**
* ADDED BETWEEN 1.2.12 and 1.2.13
@@ -395,9 +395,9 @@ $lng['error']['cantdeletesystemip'] = 'You cannot delete the last system IP, eit
$lng['error']['myipaddress'] = '\'IP\'';
$lng['error']['myport'] = '\'Port\'';
$lng['error']['myipdefault'] = 'You need to select an IP/Port combination that should become default.';
$lng['error']['myipnotdouble'] = 'Kombinacja IP/Port ju<EFBFBD> istnieje.';
$lng['error']['myipnotdouble'] = 'Kombinacja IP/Port ju&#380 istnieje.';
$lng['error']['admin_domain_emailsystemhostname'] = 'Sorry. You can not use the Server Hostname as email domain';
$lng['question']['admin_ip_reallydelete'] = 'Czy na pewno chcesz skasowa<EFBFBD> adres IP %s?';
$lng['question']['admin_ip_reallydelete'] = 'Czy na pewno chcesz skasowa&#263 adres IP %s?';
$lng['admin']['ipsandports']['ipsandports'] = 'IP i Porty';
$lng['admin']['ipsandports']['add'] = 'Dodaj IP/Port';
$lng['admin']['ipsandports']['edit'] = 'Edytuj IP/Port';
@@ -533,7 +533,7 @@ $lng['admin']['configfiles']['choosedaemon'] = '-- Wybierz daemona --';
// ADDED IN 1.2.16-svn10
$lng['serversettings']['ftpdomain']['title'] = 'konta FTP @domena';
$lng['serversettings']['ftpdomain']['description'] = 'Klienci mog<EFBFBD> tworzy<EFBFBD> konta FTP uzytkownik@domenaklienta?';
$lng['serversettings']['ftpdomain']['description'] = 'Klienci mog&#261 tworzy&#263 konta FTP uzytkownik@domenaklienta?';
$lng['panel']['back'] = 'Back';
// ADDED IN 1.2.16-svn12
@@ -581,9 +581,9 @@ $lng['admin']['ipsandports']['create_vhostcontainer_servername_statement'] = 'Cr
$lng['admin']['webalizersettings'] = 'Usttawienia Webalizera';
$lng['admin']['webalizer']['normal'] = 'Normalny';
$lng['admin']['webalizer']['quiet'] = 'Cichy';
$lng['admin']['webalizer']['veryquiet'] = 'Bez danych wyj<EFBFBD>cia';
$lng['serversettings']['webalizer_quiet']['title'] = 'Dane wyj<EFBFBD>cia Webalizera';
$lng['serversettings']['webalizer_quiet']['description'] = 'Gadatliwo<EFBFBD><EFBFBD> programu Webalizer';
$lng['admin']['webalizer']['veryquiet'] = 'Bez danych wyj&#347cia';
$lng['serversettings']['webalizer_quiet']['title'] = 'Dane wyj&#347cia Webalizera';
$lng['serversettings']['webalizer_quiet']['description'] = 'Gadatliwo&#347&#263 programu Webalizer';
// ADDED IN 1.2.18-svn3
@@ -596,7 +596,7 @@ $lng['menue']['ticket']['archive'] = 'Archiwum zg&#322osze&#324';
$lng['ticket']['description'] = 'Here you can send help-requests to your responsible administrator.<br />Notifications will be sent via e-mail.';
$lng['ticket']['ticket_new'] = 'Utw<74>rz nowe zg&#322oszenie';
$lng['ticket']['ticket_reply'] = 'Odpowied&#378 na zg&#322oszenie';
$lng['ticket']['ticket_reopen'] = 'Ponownie otw<74>rz zg<EFBFBD>oszenie';
$lng['ticket']['ticket_reopen'] = 'Ponownie otw<74>rz zg&#322oszenie';
$lng['ticket']['ticket_newcateory'] = 'Utw<74>rz now&#261 kategori&#281';
$lng['ticket']['ticket_editcateory'] = 'Edytuj kategori&#281';
$lng['ticket']['ticket_view'] = 'View ticketcourse';
@@ -626,7 +626,7 @@ $lng['ticket']['reopen'] = 'Ponownie otw
$lng['ticket']['archive'] = 'Zarchiwizuj';
$lng['ticket']['ticket_delete'] = 'Kasuj zg&#322oszenie';
$lng['ticket']['lastarchived'] = 'Recently archived tickets';
$lng['ticket']['archivedtime'] = 'Archived';
$lng['ticket']['archivedtime'] = 'Zarchiwizowano';
$lng['ticket']['open'] = 'Otwarte';
$lng['ticket']['wait_reply'] = 'czeka na odpowiedz';
$lng['ticket']['replied'] = 'Replied';
@@ -634,9 +634,9 @@ $lng['ticket']['closed'] = 'Zamkni&#281te';
$lng['ticket']['staff'] = 'Dzia&#322 pomocy technicznej';
$lng['ticket']['customer'] = 'Klient';
$lng['ticket']['old_tickets'] = 'Ticket messages';
$lng['ticket']['search'] = 'Search archive';
$lng['ticket']['search'] = 'Przeszukaj archiwum';
$lng['ticket']['nocustomer'] = 'Nie wybrano';
$lng['ticket']['archivesearch'] = 'Archive searchresults';
$lng['ticket']['archivesearch'] = 'Wynik przeszukiwania archiwum';
$lng['ticket']['noresults'] = 'Nie znaleziono zg&#322osze&#324';
$lng['ticket']['notmorethanxopentickets'] = 'Due to spam-protection you cannot have more than %s open tickets';
$lng['ticket']['supportstatus'] = 'Status wsparcia technicznego';
@@ -689,7 +689,7 @@ $lng['customer']['tickets'] = 'Zg&#322oszenia wsparcia technicznego';
$lng['admin']['domain_nocustomeraddingavailable'] = 'Nie jest mo&#380liwe, by doda&#263 teraz domen&#281. W pierwszej kolejno&#347ci trzeba doda&#263 klienta.';
$lng['serversettings']['ticket']['enable'] = 'Wspracie techniczne w&#322&#261czone';
$lng['serversettings']['ticket']['concurrentlyopen'] = 'Ile zg<EFBFBD>osze<EFBFBD> mo<6D>e by<62> otwartych w jednym czasie?';
$lng['serversettings']['ticket']['concurrentlyopen'] = 'Ile zg&#322osze&#324 mo&#380e by&#263 otwartych w jednym czasie?';
$lng['error']['norepymailiswrong'] = 'The &quot;Noreply-address&quot; is wrong. Only a valid email-address is allowed.';
$lng['error']['tadminmailiswrong'] = 'The &quot;Ticketadmin-address&quot; is wrong. Only a valid email-address is allowed.';
$lng['ticket']['awaitingticketreply'] = 'Masz %s zg&#322osze&#324 do pomocy technicznej';
@@ -765,7 +765,7 @@ $lng['logger']['truncate'] = 'Wyszy&#347&#263 logi';
// ADDED IN 1.2.19-svn7
$lng['serversettings']['ssl']['use_ssl'] = 'U<EFBFBD>yj SSL';
$lng['serversettings']['ssl']['use_ssl'] = 'U&#380yj SSL';
$lng['serversettings']['ssl']['ssl_cert_file'] = 'Gdzie jest zlokalizowany Certyfikat';
$lng['serversettings']['ssl']['openssl_cnf'] = 'Standardowe dane do tworzenia pliku certyfikatu';
$lng['panel']['reseller'] = 'reseller';
@@ -775,7 +775,7 @@ $lng['error']['nomessagetosend'] = 'Nie wprowadzono wiadomo&#347ci.';
$lng['error']['noreceipientsgiven'] = 'Nie wprowadzono &#380adnego odbiorcy';
$lng['admin']['emaildomain'] = 'Emaildomain';
$lng['admin']['email_only'] = 'Only email?';
$lng['admin']['wwwserveralias'] = 'Doda<EFBFBD> &quot;www.&quot; ServerAlias';
$lng['admin']['wwwserveralias'] = 'Doda&#263 &quot;www.&quot; ServerAlias';
$lng['admin']['ipsandports']['enable_ssl'] = 'Is this an SSL Port?';
$lng['admin']['ipsandports']['ssl_cert_file'] = 'Path to the SSL Certificate';
$lng['panel']['send'] = 'send';
@@ -869,8 +869,8 @@ $lng['pwdreminder']['success'] = 'Password reset successfully.<br />You now shou
// ADDED IN 1.2.19-svn18
$lng['serversettings']['allow_preset'] = 'Allow password reset by customers';
$lng['pwdreminder']['notallowed'] = 'Password reset is deactivated';
$lng['serversettings']['allow_preset'] = 'Zezwalaj na resetowanie has&#322a przez klient<6E>w';
$lng['pwdreminder']['notallowed'] = 'Resetowanie has&#322a jest nieaktywne';
// ADDED IN 1.2.19-svn20
@@ -903,18 +903,18 @@ $lng['domains']['topleveldomain'] = 'Top-Level-Domain';
// ADDED IN 1.2.19-svn22
$lng['serversettings']['allow_password_reset']['description'] = 'Customers can reset their password and a new password will be sent to their e-mail address';
$lng['serversettings']['allow_password_reset_admin']['title'] = 'Allow password reset by admins';
$lng['serversettings']['allow_password_reset_admin']['description'] = 'Admins/reseller can reset their password and a new password will be sent to their e-mail address';
$lng['serversettings']['allow_password_reset']['description'] = 'Klienci mog&#261 zresetowa&#263 has&#322o, a nowe has&#322o zostanie wys&#322ane na ich adres e-mail';
$lng['serversettings']['allow_password_reset_admin']['title'] = 'Zezwalaj na resetowanie has&#322a przez administrator<6F>w';
$lng['serversettings']['allow_password_reset_admin']['description'] = 'Administratorzy/Resellerzy mog&#261 resetowa&#263 has&#322o, a nowe has&#322o zostanie wys&#322ane na ich adres e-mail';
// ADDED IN 1.2.19-svn25
$lng['emails']['quota'] = 'Quota';
$lng['emails']['noquota'] = 'No quota';
$lng['emails']['updatequota'] = 'Update Quota';
$lng['serversettings']['mail_quota']['title'] = 'Mailbox-quota';
$lng['serversettings']['mail_quota']['description'] = 'The default quota for a new created mailboxes (MegaByte).';
$lng['serversettings']['mail_quota_enabled']['title'] = 'Use mailbox-quota for customers';
$lng['emails']['noquota'] = 'Brak quoty';
$lng['emails']['updatequota'] = 'Aktualizuj Quot&#281';
$lng['serversettings']['mail_quota']['title'] = 'Quota skrzynki pocztowej';
$lng['serversettings']['mail_quota']['description'] = 'Standardowa quota dla nowoutworzonych skrzynek pocztowych (MegaBajty).';
$lng['serversettings']['mail_quota_enabled']['title'] = 'U&#380yj Quoty skrzynek pocztowych dla klient<6E>w';
$lng['serversettings']['mail_quota_enabled']['description'] = 'Activate to use quotas on mailboxes. Default is <b>No</b> since this requires a special setup.';
$lng['serversettings']['mail_quota_enabled']['removelink'] = 'Click here to wipe all quotas for mail accounts.';
$lng['serversettings']['mail_quota_enabled']['enforcelink'] = 'Click here to enforce default quota to all User mail accounts.';
@@ -949,7 +949,7 @@ $lng['error']['autoresponderalreadyexists'] = 'There is already an autoresponder
$lng['error']['invalidautoresponder'] = 'The given account is invalid.';
$lng['serversettings']['autoresponder_active']['title'] = 'U&#380yj modu&#322u autorespondera';
$lng['serversettings']['autoresponder_active']['description'] = 'Do you want to use the autoresponder module?';
$lng['admin']['security_settings'] = 'Security Options';
$lng['admin']['security_settings'] = 'Opcje bezpiecze&#324stwa';
$lng['admin']['know_what_youre_doing'] = 'Zmie&#324 TYLKO je&#347li wiesz co robisz!';
$lng['admin']['show_version_login']['title'] = 'Pokazuj wersj&#281 Froxlora przy logowaniu';
$lng['admin']['show_version_login']['description'] = 'Pokazuj wersj&#281 Froxlora w stopce struno logowania';
@@ -1144,29 +1144,29 @@ $lng['aps']['allpackages'] = 'All Packages';
$lng['question']['reallyremovepackages'] = '<strong>Do you really want to delete these packages?</strong><br/><br/>Packages with dependencies can only be remove if the corresponding Instances have been removed!<br/><br/>';
$lng['aps']['nopackagesinsystem'] = 'There were no packages installed in the system which could be managed.';
$lng['aps']['packagenameandstatus'] = 'Packagename &amp; Status';
$lng['aps']['activate_aps']['title'] = 'Enable APS Installer';
$lng['aps']['activate_aps']['title'] = 'Instalator aplikacji w&#322&#261czony';
$lng['aps']['activate_aps']['description'] = 'Here the APS Installer can be enabled and disabled globaly.';
$lng['aps']['packages_per_page']['title'] = 'Packages per page';
$lng['aps']['packages_per_page']['title'] = 'Paczek na stronie';
$lng['aps']['packages_per_page']['description'] = 'How many packages should be displayed per page for customers?';
$lng['aps']['upload_fields']['title'] = 'Upload fields per page';
$lng['aps']['upload_fields']['title'] = 'Ilo&#347&#263 p<>l Uploadu na stronie';
$lng['aps']['upload_fields']['description'] = 'How many upload fields should be displayed on the page to install new packages in the system?';
$lng['aps']['exceptions']['title'] = 'Exceptions for Package validation';
$lng['aps']['exceptions']['description'] = 'Some packages need special configuration parameters or modules. The Installer cannot always determine if this options/extensions are available. For this reason you can now define exceptions that packages can be installed in the system. Do only select options which match your real configuration setup. For further information about this problem look into the handbook for this module.';
$lng['aps']['settings_php_extensions'] = 'PHP-Extensions';
$lng['aps']['settings_php_configuration'] = 'PHP-Configuration';
$lng['aps']['settings_webserver_modules'] = 'Webserver modules';
$lng['aps']['settings_php_extensions'] = 'Rozszerzenia PHP';
$lng['aps']['settings_php_configuration'] = 'Konfiguracja PHP';
$lng['aps']['settings_webserver_modules'] = 'Modu&#322y Webserwera';
$lng['aps']['settings_webserver_misc'] = 'Webserver miscellaneous';
$lng['aps']['specialoptions'] = 'Special options';
$lng['aps']['removeunused'] = 'Remove unused packages';
$lng['aps']['removeunused'] = 'Usu&#324 nieuzywane paczki';
$lng['aps']['enablenewest'] = 'Enabled newest version of package, lock others';
$lng['aps']['installations'] = 'Installations';
$lng['aps']['statistics'] = 'Statistics';
$lng['aps']['installations'] = 'Instalacje';
$lng['aps']['statistics'] = 'Statystyki';
$lng['aps']['numerofpackagesinstalled'] = '%s Packages installed<br/>';
$lng['aps']['numerofpackagesenabled'] = '%s Packages enabled<br/>';
$lng['aps']['numerofpackageslocked'] = '%s Packages locked<br/>';
$lng['aps']['numerofinstances'] = '%s Instances installed<br/>';
$lng['question']['reallydoaction'] = '<strong>Do you really want to execute the selected actions?</strong><br/><br/>Data which can be lost by continuing, cannot be restored later.<br/><br/>';
$lng['aps']['linktolicense'] = 'Link to license';
$lng['aps']['linktolicense'] = 'Link do licencji';
$lng['aps']['initerror_customer'] = 'There is currently a problem with this Froxlor extension. Contact your administrator for further information.';
$lng['aps']['numerofinstances'] = '%s Installations at all<br/>';
$lng['aps']['numerofinstancessuccess'] = '%s successful Installations<br/>';
@@ -1191,11 +1191,11 @@ $lng['error']['admindoesntexist'] = 'The admin you have chosen doesn\'t exist.';
$lng['serversettings']['system_realtime_port']['title'] = 'Port for realtime Froxlor';
$lng['serversettings']['system_realtime_port']['description'] = 'Froxlor connects to this port at localhost everytime a new cron task is scheduled. If value is 0 (zero), this feature is disabled.<br />See also: <a href="https://wiki.froxlor.org/contrib/realtime">Make Froxlor work in realtime (Froxlor Wiki)</a>';
$lng['serversettings']['session_allow_multiple_login']['title'] = 'Allow multiple login';
$lng['serversettings']['session_allow_multiple_login']['description'] = 'If activated a user could login multiple times.';
$lng['serversettings']['panel_allow_domain_change_admin']['title'] = 'Allow moving domains between admins';
$lng['serversettings']['session_allow_multiple_login']['title'] = 'Zezwalaj na jednoczesne logowanie';
$lng['serversettings']['session_allow_multiple_login']['description'] = 'Je&#347li jest zaznaczone u&#380ytkownik mo&#380e zalogowa&#263 si&#281 jednocze&#347cie, wiele razy.';
$lng['serversettings']['panel_allow_domain_change_admin']['title'] = 'Zezwalaj na przenoszenie domen pomi&#281dzy administratorami';
$lng['serversettings']['panel_allow_domain_change_admin']['description'] = 'If activated you can change the admin of a domain at domainsettings.<br /><b>Attention:</b> If a customer isn\'t assigned to the same admin as the domain, the admin can see every other domain of that customer!';
$lng['serversettings']['panel_allow_domain_change_customer']['title'] = 'Allow moving domains between customers';
$lng['serversettings']['panel_allow_domain_change_customer']['title'] = 'Zezwalaj na przenoszenie domen pomi&#281dzy klientami';
$lng['serversettings']['panel_allow_domain_change_customer']['description'] = 'If activated you can change the customer of a domain at domainsettings.<br /><b>Attention:</b> Froxlor won\'t change any paths. This could render a domain unusable!';
$lng['domains']['associated_with_domain'] = 'Associated';
$lng['domains']['aliasdomains'] = 'Alias domains';
@@ -1212,17 +1212,17 @@ $lng['serversettings']['mod_fcgid']['maxrequests']['title'] = 'Maximum Requests
$lng['serversettings']['mod_fcgid']['maxrequests']['description'] = 'How many requests should be allowed per domain?';
// fix bug #1124
$lng['admin']['webserver'] = 'Webserver';
$lng['admin']['webserver'] = 'Webserwer';
$lng['error']['admin_domain_emailsystemhostname'] = 'The server-hostname cannot be used as email-domain.';
$lng['aps']['license_link'] = 'Link to the license';
$lng['aps']['license_link'] = 'Link do licencji';
// ADDED IN 1.4.2.1-1
$lng['mysql']['mysql_server'] = 'MySQL-Server';
$lng['mysql']['mysql_server'] = 'Serwer MySQL';
// ADDED IN 1.4.2.1-2
$lng['admin']['ipsandports']['webserverdefaultconfig'] = 'Webserver Default Config';
$lng['admin']['ipsandports']['webserverdefaultconfig'] = 'Domy&#347lna Konfiguracja Webserwera';
$lng['admin']['ipsandports']['webserverdomainconfig'] = 'Webserver Domain Config';
$lng['admin']['ipsandports']['webserverssldomainconfig'] = 'Webserver SSL Config';
$lng['admin']['ipsandports']['ssl_key_file'] = 'Path to the SSL Keyfile';
@@ -1258,7 +1258,8 @@ $lng['panel']['off'] = 'off';
$lng['update']['updateinprogress_onlyadmincanlogin'] = 'A newer version of Froxlor has been installed but not yet set up.<br />Only the administrator can log in and finish the update.';
$lng['update']['update'] = 'Aktualizacja Froxlora';
$lng['update']['proceed'] = 'Proceed';
$lng['update']['update_information'] = 'The Froxlor files have been updated to version <strong>%newversion</strong>. The installed version is <strong>%curversion</strong>.<br /><br />Customers will not be able to log in until the update has been finished.<br /><strong>Proceed?</strong>';
$lng['update']['update_information']['part_a'] = 'The Froxlor files have been updated to version <strong>%newversion</strong>. The installed version is <strong>%curversion</strong>.';
$lng['update']['update_information']['part_b'] = '<br /><br />Customers will not be able to log in until the update has been finished.<br /><strong>Proceed?</strong>';
$lng['update']['noupdatesavail'] = '<strong>You already have the latest Froxlor version.</strong>';
$lng['admin']['cron']['cronsettings'] = 'ustawienia Cronjob';
$lng['cron']['cronname'] = 'cronjob-name';
@@ -1279,13 +1280,13 @@ $lng['crondesc']['cron_ticketarchive'] = 'archiwizowanie starych zg&#322osze&#32
$lng['admin']['specialsettingsforsubdomains'] = 'Apply specialsettings to all subdomains (*.example.com)';
$lng['serversettings']['specialsettingsforsubdomains']['description'] = 'If yes these custom vhost-settings will be added to all subdomains; if no subdomain-specialsettings are being removed.';
$lng['tasks']['outstanding_tasks'] = 'Outstanding cron-tasks';
$lng['tasks']['rebuild_webserverconfig'] = 'Rebuilding webserver-configuration';
$lng['tasks']['adding_customer'] = 'Adding new customer %loginname%';
$lng['tasks']['rebuild_bindconfig'] = 'Rebuilding bind-configuration';
$lng['tasks']['creating_ftpdir'] = 'Creating directory for new ftp-user';
$lng['tasks']['deleting_customerfiles'] = 'Deleting customer-files %loginname%';
$lng['tasks']['noneoutstanding'] = 'There are currently no outstanding tasks for Froxlor';
$lng['ticket']['nonexistingcustomer'] = '(deleted customer)';
$lng['tasks']['rebuild_webserverconfig'] = 'Przebudowanie konfiguracji webserwera';
$lng['tasks']['adding_customer'] = 'Dodanie nowego klienta %loginname%';
$lng['tasks']['rebuild_bindconfig'] = 'Przebudowanie konfiguracji binda';
$lng['tasks']['creating_ftpdir'] = 'Tworzenie katalogu dla nowych u&#380ytkownik<69>w FTP';
$lng['tasks']['deleting_customerfiles'] = 'Kasowanie plik<69>w klienta %loginname%';
$lng['tasks']['noneoutstanding'] = 'Obecnie nie ma zaplanowanych zada&#324 dla Froxlora';
$lng['ticket']['nonexistingcustomer'] = '(usuni&#281ty klient)';
$lng['admin']['ticket_nocustomeraddingavailable'] = 'It\'s not possible to open a new support-ticket currently. You first need to add at least one customer.';
// ADDED IN FROXLOR 0.9.1
@@ -1296,11 +1297,83 @@ $lng['admin']['servicedata'] = 'Service Data';
// ADDED IN FROXLOR 0.9.2
$lng['admin']['newerversionavailable'] = 'There is a newer version of Froxlor available';
$lng['admin']['newerversionavailable'] = 'Jest dost<73>pna nowa wersja Froxlora';
// ADDED IN FROXLOR 0.9.3
$lng['emails']['noemaildomainaddedyet'] = 'You do not have a (email-)domain in your account yet.';
$lng['error']['hiddenfieldvaluechanged'] = 'The value for the hidden field &quot;%s&quot; changed while editing the settings.<br /><br />This is usually not a big problem but the settings could not be saved because of this.';
?>
// ADDED IN FROXLOR 0.9.3-svn1
$lng['serversettings']['panel_password_min_length']['title'] = 'Minimalna d<>ugo<67><6F> has<61>a';
$lng['serversettings']['panel_password_min_length']['description'] = 'Here you can set a minimum length for passwords. \'0\' means: no minimum length required.';
$lng['error']['notrequiredpasswordlength'] = 'The given password is too short. Please enter at least %s characters.';
$lng['serversettings']['system_store_index_file_subs']['title'] = 'Store default index file also to new subfolders';
$lng['serversettings']['system_store_index_file_subs']['description'] = 'If enabled, the default index-file is being stored to every subdomain-path newly created (not if the folder already exists!)';
// ADDED IN FROXLOR 0.9.3-svn2
$lng['serversettings']['adminmail_return']['title'] = 'Reply-To address';
$lng['serversettings']['adminmail_return']['description'] = 'Define an e-mail address as reply-to-address for mails sent by the panel.';
$lng['serversettings']['adminmail_defname'] = 'Panel e-mail sender name';
// ADDED IN FROXLOR 0.9.3-svn3
$lng['dkim']['dkim_algorithm']['title'] = 'Allowed Hash Algorithms';
$lng['dkim']['dkim_algorithm']['description'] = 'Define allowed hash algorithms, chose "All" for all algorithms or one or more from the other available algorithms';
$lng['dkim']['dkim_servicetype'] = 'Service Types';
$lng['dkim']['dkim_keylength']['title'] = 'Key-length';
$lng['dkim']['dkim_keylength']['description'] = 'Attention: If you change this values, you need to delete all the private/public keys in "'.$settings['dkim']['dkim_prefix'].'"';
$lng['dkim']['dkim_notes']['title'] = 'DKIM Notes';
$lng['dkim']['dkim_notes']['description'] = 'Notes that might be of interest to a human, e.g. a URL like http://www.dnswatch.info. No interpretation is made by any program. This tag should be used sparingly due to space limitations in DNS. This is intended for use by administrators, not end users.';
$lng['dkim']['dkim_add_adsp']['title'] = 'Add DKIM ADSP entry';
$lng['dkim']['dkim_add_adsp']['description'] = 'If you don\'t know what this is, leave it "enabled"';
$lng['dkim']['dkim_add_adsppolicy']['title'] = 'ADSP policy';
$lng['dkim']['dkim_add_adsppolicy']['description'] = 'For more information about this setting see <a href="http://wiki.froxlor.org/contrib/dkim-adsp-policies">http://wiki.froxlor.org/contrib/dkim-adsp-policies</a>';
$lng['admin']['cron']['cronsettings'] = 'ustawienia zada<64> cyklicznych';
$lng['cron']['cronname'] = 'cronjob-name';
$lng['cron']['lastrun'] = 'last run';
$lng['cron']['interval'] = 'interval';
$lng['cron']['isactive'] = 'enabled';
$lng['cron']['description'] = 'description';
$lng['crondesc']['cron_unknown_desc'] = 'no description given';
$lng['admin']['cron']['add'] = 'Add cronjob';
$lng['crondesc']['cron_tasks'] = 'przebudowanie plik<69>w konfiguracyjnych';
$lng['crondesc']['cron_legacy'] = 'legacy (old) cronjob';
$lng['crondesc']['cron_apsinstaller'] = 'Instalator aplikacji';
$lng['crondesc']['cron_autoresponder'] = 'e-mail autoresponder';
$lng['crondesc']['cron_apsupdater'] = 'Aktualizacja pakiet<65>w instalatora aplikacji';
$lng['crondesc']['cron_traffic'] = 'obliczanie ruchu';
$lng['crondesc']['cron_ticketsreset'] = 'resetowanie licznik<69>w zg&#322osze&#324';
$lng['crondesc']['cron_ticketarchive'] = 'archiwizowanie starych zg&#322osze&#324';
$lng['cronmgmt']['seconds'] = 'seconds';
$lng['cronmgmt']['minutes'] = 'minutes';
$lng['cronmgmt']['hours'] = 'hours';
$lng['cronmgmt']['days'] = 'days';
$lng['cronmgmt']['weeks'] = 'weeks';
$lng['cronmgmt']['months'] = 'months';
$lng['admin']['cronjob_edit'] = 'Edytuj zadania cykliczne';
$lng['cronjob']['cronjobsettings'] = 'Cronjob settings';
$lng['cronjob']['cronjobinterval'] = 'Runtime interval';
$lng['panel']['options'] = 'options';
$lng['admin']['warning'] = 'WARNING - Please note!';
$lng['cron']['changewarning'] = 'Changing these values can have a negative cause to the behavior of Froxlor and its automated tasks.<br /><br />Please, only change values here if you are *damn sure* you know what you are doing.';
$lng['serversettings']['stdsubdomainhost']['title'] = 'Customer standard subdomain';
$lng['serversettings']['stdsubdomainhost']['description'] = 'What hostname should be used to create standard subdomains for customer. If empty, the system-hostname is used.';
// ADDED IN FROXLOR 0.9.4-svn1
$lng['ftp']['account_edit'] = 'Edit ftp account';
$lng['ftp']['editpassdescription'] = 'Set new password or leave blank for no change.';
$lng['mysql']['sendinfomail'] = 'Send data via email to me';
$lng['customer']['mysql_add']['infomail_subject'] = '[Froxlor] New database created';
$lng['customer']['mysql_add']['infomail_body']['pma'] = "\nYou can access your databases using phpMyAdmin via {URI}\n";
$lng['customer']['mysql_add']['infomail_body']['main'] = "Hello {CUST_NAME},\n\nyou have just added a new database. Here is the entered information:\n\nDatabasename: {DB_NAME}\nPassword: {DB_PASS}\nDescription: {DB_DESC}\nDB-Hostname: {DB_SRV}\n{PMA_URI}\nYours sincerely, the Froxlor-Team";
$lng['error']['domains_cantdeletedomainwithapsinstances'] = 'You cannot delete a domain which is used by an installed APS package. You have to uninstall it first.';
$lng['serversettings']['awstats_path'] = '<27>cie<69>ka do AWStats \'awstats_buildstaticpages.pl\'';
$lng['serversettings']['awstats_conf'] = 'AWStats configuration path';
$lng['error']['overviewsettingoptionisnotavalidfield'] = 'Woops, a field that should be displayed as an option in the settings-overview is not an excepted type. You can blame the developers for this. This should not happen!';
$lng['admin']['configfiles']['compactoverview'] = 'Compact-overview';
?>

View File

@@ -379,7 +379,6 @@ $lng['serversettings']['pathedit']['description'] = 'A escolha do file tem que s
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = 'Ultimo Agendamento';
$lng['serversettings']['paging']['title'] = 'Entradas por pagina';
$lng['serversettings']['paging']['description'] = 'Quantas entradas devem ser mostradas por pagina? (0 = desabilitar paginas)';
$lng['error']['ipstillhasdomains'] = 'O IP/Porta que voce quer deletar ainda possui dominios associados e eles, por favor altere o IP/Porta destes dominios antes de delet&aacute;-los.';
@@ -490,7 +489,6 @@ $lng['admin']['configfiles']['etc'] = 'Outros (Sistema)';
$lng['admin']['configfiles']['choosedistribution'] = 'Escolha uma distribui&ccedil;&atilde;o';
$lng['admin']['configfiles']['chooseservice'] = 'Escolha um servi&ccedil;o';
$lng['admin']['configfiles']['choosedaemon'] = 'Escolha um daemon';
$lng['admin']['trafficlastrun'] = 'C&aacute;lculo do &Uacute;ltimo Tr&aacute;fego';
$lng['serversettings']['ftpdomain']['title'] = 'Contas FTP @dom&iacute;nio';
$lng['serversettings']['ftpdomain']['description'] = 'Clientes podem criar contas de FTP user@dom&iacute;niodocliente?';
$lng['panel']['back'] = 'Volta';
@@ -738,8 +736,6 @@ $lng['error']['cannotuseawstatsandwebalizeratonetime'] = 'Voc&ecirc; n&atilde;o
$lng['serversettings']['webalizer_enabled'] = 'Ativar estat&iacute;sticas webalizer';
$lng['serversettings']['awstats_enabled'] = 'Ativar estat&iacute;sticas awstats';
$lng['admin']['awstatssettings'] = 'Configura&ccedil;&otilde;es Awtats';
$lng['serversettings']['awstats_domain_file']['title'] = 'Awstats diret&oacute;rio de arquivos do dominio';
$lng['serversettings']['awstats_model_file']['title'] = 'Modelo de arquivo Awstats';
$lng['admin']['domain_dns_settings'] = 'Configura&ccedil;&otilde;es de DNS';
$lng['dns']['destinationip'] = 'Dom&iacute;nio IP';
$lng['dns']['standardip'] = 'IP padr&atilde;o do servidor';
@@ -789,13 +785,6 @@ $lng['panel']['default'] = 'Padr&atilde;o';
$lng['panel']['never'] = 'Nunca';
$lng['panel']['active'] = 'Ativo';
$lng['panel']['please_choose'] = 'Por favor escolha';
$lng['panel']['intervalfee_type']['y'] = 'Anos';
$lng['panel']['intervalfee_type']['m'] = 'Meses';
$lng['panel']['intervalfee_type']['d'] = 'Dias';
$lng['panel']['intervalfee_type_one']['y'] = 'Ano';
$lng['panel']['intervalfee_type_one']['m'] = 'Mes';
$lng['panel']['intervalfee_type_one']['d'] = 'Dia';
$lng['panel']['service_still_active'] = 'Servi&ccedil;o ainda ativo';
$lng['panel']['allow_modifications'] = 'Aceita altera&ccedil;oes';
$lng['domains']['add_date'] = 'Adicionado no Froxlor';
$lng['domains']['registration_date'] = 'Adicionado no Registro';
@@ -803,46 +792,9 @@ $lng['domains']['topleveldomain'] = 'Top-Level-Domain';
$lng['admin']['accountdata'] = 'Data da Conta';
$lng['admin']['contactdata'] = 'Data de Contato';
$lng['admin']['servicedata'] = 'Data de Servi&ccedil;o';
$lng['customer']['taxid'] = 'ID de Taxa';
$lng['customer']['calc_tax'] = 'Calcular Taxa';
$lng['customer']['create_contract'] = 'Criar contrato';
$lng['customer']['contract_date'] = 'Data de contrato';
$lng['customer']['contract_number'] = 'Descri&ccedil;&atilde;o/N&uacute;mero de contrato';
$lng['customer']['additional_service_description'] = 'Descri&ccedil;&atilde;o adicional de servi&ccedil;o';
$lng['customer']['contract_details'] = 'Detalhes do contrato';
$lng['customer']['included_domains'] = 'Dom&iacute;nios Inclu&iacute;dos';
$lng['customer']['additional_traffic'] = 'Tr&aacute;fego Adicional';
$lng['customer']['additional_diskspace'] = 'Espaco Web Adicional';
$lng['customer']['term_of_payment'] = 'Termo de Pagamento (dias)';
$lng['customer']['payment_every'] = 'Pagamento todo';
$lng['customer']['payment_method'] = 'M&eacute;todo de Pagamento';
$lng['admin']['customer_categories_once'] = 'Incluir configura&ccedil;&otilde;es de taxas de clientes';
$lng['admin']['customer_categories_period'] = 'Incluir intervalo de tavas de clientes';
$lng['customer']['bankaccount_holder'] = 'Propriet&aacute;rio da conta';
$lng['customer']['bankaccount_number'] = 'N&uacute;mero da conta';
$lng['customer']['bankaccount_blz'] = 'N&uacute;mero da ag&ecirc;ncia';
$lng['customer']['bankaccount_bank'] = 'Nome do banco';
$lng['service']['quantity'] = 'Quantidade';
$lng['service']['interval_fee'] = 'Pausa de TAXA';
$lng['service']['interval_length'] = 'Pausa de Tempo';
$lng['service']['interval_payment'] = 'Pausa de Pagamento';
$lng['service']['interval_payment_prepaid'] = 'Pr&eacute; Pago';
$lng['service']['interval_payment_postpaid'] = 'P&oacute;s Pago';
$lng['service']['setup_fee'] = 'Configurar Taxa';
$lng['service']['active'] = 'Ativa Servi&ccedil;o';
$lng['service']['start_date'] = 'Activado desde';
$lng['service']['end_date'] = 'Inativo desde';
$lng['service']['valid_from'] = 'V&aacute;lido de';
$lng['service']['valid_to'] = 'V&aacute;lido para';
$lng['serversettings']['allow_password_reset']['description'] = 'Os clientes podem redefinir sua senha e ser&atilde;o enviadas para seu endere&ccedil;o de e-mail';
$lng['serversettings']['allow_password_reset_admin']['title'] = 'Ativa reset de senhas pelos administradores';
$lng['serversettings']['allow_password_reset_admin']['description'] = 'Admins / Revendedor pode redefinir sua senha e a nova senha ser&aacute; enviada para seu endere&ccedil;o de e-mail';
$lng['emails']['quota_type']['byte'] = 'B';
$lng['emails']['quota_type']['kilobyte'] = 'KB';
$lng['emails']['quota_type']['megabyte'] = 'MB';
$lng['emails']['quota_type']['gigabyte'] = 'GB';
$lng['emails']['quota_type']['terabyte'] = 'TB';
$lng['emails']['quota_type']['petabyte'] = 'PB';
$lng['panel']['not_supported'] = 'N&atilde;o suportado em:';
$lng['menue']['email']['autoresponder'] = 'Auto-Responder';
$lng['autoresponder']['active'] = 'Ativar';

View File

@@ -1160,8 +1160,6 @@ $lng['mysql']['description'] = '&#1047;&#1076;&#1077;&#1089;&#1100; &#1074;&#109
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = '&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1081; &#1082;&#1088;&#1086;&#1085; (cron)';
// Last Cron
$lng['serversettings']['paging']['title'] = '&#1050;&#1086;&#1083;-&#1074;&#1086; &#1079;&#1072;&#1087;&#1080;&#1089;&#1077;&#1081; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;';

View File

@@ -381,7 +381,6 @@ $lng['mysql']['description'] = 'Tu m
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = 'Posledn<64> Cron';
$lng['serversettings']['paging']['title'] = 'Z<>znamov na str<74>nku';
$lng['serversettings']['paging']['description'] = 'Ko<4B>ko z<>znamov bude zobrazen<65>ch na jednej str<74>nke? (0 = zak<61>zan<61> str<74>nkovanie)';
$lng['error']['ipstillhasdomains'] = 'IP/Port kombin<69>cia ktor<6F> chcete zmaza<7A> m<> st<73>le priraden<65> domen<65>ny. Pred zmazan<61>m tejto IP/Port kombin<69>cie pros<6F>m znovu prira<72>te tieto k ostatn<74>m IP/Port kombin<69>ciam.';

View File

@@ -376,7 +376,6 @@ $lng['serversettings']['pathedit']['description'] = 'Prefiere seleccionar un tra
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = '&Uacute;ltimo Cron';
$lng['serversettings']['paging']['title'] = 'Entradas por p&aacute;gina';
$lng['serversettings']['paging']['description'] = '&iquest;Cuantas entradas deben ser mostradas en una p&aacute;gina? (0=desactivar paginaci&oacute;n)';
$lng['error']['ipstillhasdomains'] = 'La combinaci&oacute;n IP/Puerto que Usted quiere eliminar todav&iacute;a tiene dominios asignados, por favor vuelva a reasignar estas combinaciones IP/Puerto antes de eliminar esta combinaci&oacute;n IP/Puerto.';

View File

@@ -387,7 +387,6 @@ $lng['mysql']['description'] = 'H
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = 'Konfigurerinsfilerna skapades sist';
$lng['serversettings']['paging']['title'] = 'Antal rader per sida';
$lng['serversettings']['paging']['description'] = 'Hur m<>nga rader skall det vara p<> en sida? (0 = St<53>ng av sidbrytning)';
$lng['error']['ipstillhasdomains'] = 'IP/Port kombinationen som du vill radera har fortfarande dom<6F>ner anslutna till sig, Flytta dessa till n<>gon annan IP/Port kombination innan du raderar denna IP/Port kombination.';
@@ -529,7 +528,6 @@ $lng['admin']['configfiles']['etc'] = 'Others (System)';
$lng['admin']['configfiles']['choosedistribution'] = '-- Choose a distribution --';
$lng['admin']['configfiles']['chooseservice'] = '-- Choose a service --';
$lng['admin']['configfiles']['choosedaemon'] = '-- Choose a daemon --';
$lng['admin']['trafficlastrun'] = 'Senaste trafikber<65>kningen gjordes';
// ADDED IN 1.2.16-svn10

View File

@@ -379,7 +379,6 @@ $lng['serversettings']['pathedit']['description'] = '&#36335;&#24452;&#26159;&#3
* ADDED BETWEEN 1.2.12 and 1.2.13
*/
$lng['admin']['cronlastrun'] = '&#23450;&#26102;&#25191;&#34892;&#31243;&#24207;&#30340;&#26368;&#21518;&#19968;&#27425;&#25191;&#34892;';
$lng['serversettings']['paging']['title'] = '&#27599;&#39029;&#36827;&#20837;&#27425;&#25968;';
$lng['serversettings']['paging']['description'] = '&#19968;&#39029;&#19978;&#24212;&#35813;&#26174;&#31034;&#22810;&#23569;&#27425; &#36827;&#20837;?(0 =&#26080;&#25928;&#20998;&#39029;)';
$lng['error']['ipstillhasdomains'] = '&#20320;&#24819;&#35201;&#21024;&#38500;&#30340;IP/ &#31471;&#21475;&#36830;&#25509;&#20173;&#28982;&#21344;&#26377;&#20998; &#37197;&#32473;&#20182;&#30340;&#22495;,&#22312;&#21024;&#38500;&#27492;IP/&#31471;&#21475;&#36830;&#25509;&#20043;&#21069;&#65292;&#35831;&#25226;&#36825;&#20123;&#22495;&#20998;&#37197;&#32473;&#20854;&#20182;IP/&#31471;&#21475;&#36830;&#25509;.';

View File

@@ -80,7 +80,7 @@ if($db->num_rows($result) > 0)
$path = $row['homedir'] . $row['maildir'] . "new/";
if(!is_dir($paht) || !is_readable($path))
if(!is_dir($path) || !is_readable($path))
{
$cronlog->logAction(CRON_ACTION, LOG_WARNING, "Error accessing maildir: " . $path);
continue;

View File

@@ -137,7 +137,7 @@ class bind
fclose($bindconf_file_handler);
fwrite($this->debugHandler, ' cron_tasks: Task4 - froxlor_bind.conf written' . "\n");
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'froxlor_bind.conf written');
safe_exec($this->settings['system']['bindreload_command']);
safe_exec(escapeshellcmd($this->settings['system']['bindreload_command']));
fwrite($this->debugHandler, ' cron_tasks: Task4 - Bind9 reloaded' . "\n");
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'Bind9 reloaded');
$domains_dir = makeCorrectDir($this->settings['system']['bindconf_directory'] . '/domains/');
@@ -149,10 +149,13 @@ class bind
while(false !== ($domain_filename = readdir($domain_file_dirhandle)))
{
$full_filename = makeCorrectFile($domains_dir . '/' . $domain_filename);
if($domain_filename != '.'
&& $domain_filename != '..'
&& !in_array($domain_filename, $known_filenames)
&& file_exists(makeCorrectFile($domains_dir . '/' . $domain_filename)))
&& is_file($full_filename)
&& file_exists($full_filename))
{
fwrite($this->debugHandler, ' cron_tasks: Task4 - unlinking ' . $domain_filename . "\n");
$this->logger->logAction(CRON_ACTION, LOG_WARNING, 'Deleting ' . $domain_filename);
@@ -207,7 +210,14 @@ class bind
if(count($this->mxservers) == 0)
{
$zonefile.= '@ IN MX 10 mail' . "\n" . 'mail IN ' . $ip_a_record . "\n";
$zonefile.= '@ IN MX 10 mail' . "\n";
$zonefile.= 'mail IN ' . $ip_a_record . "\n";
if($domain['iswildcarddomain'] != '1')
{
$zonefile.= 'imap IN ' . $ip_a_record . "\n";
$zonefile.= 'smtp IN ' . $ip_a_record . "\n";
$zonefile.= 'pop3 IN ' . $ip_a_record . "\n";
}
}
else
{
@@ -418,8 +428,12 @@ class bind
$dkimkeys_file_handler = fopen($dkimkeys_filename, "w");
fwrite($dkimkeys_file_handler, $dkimkeys);
fclose($dkimkeys_file_handler);
safe_exec(escapeshellcmd($this->settings['dkim']['dkimrestart_command']));
fwrite($this->debugHandler, ' cron_tasks: Task4 - Dkim-milter reloaded' . "\n");
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'Dkim-milter reloaded');
}
}
}
?>
?>

View File

@@ -59,7 +59,7 @@ class apache
{
fwrite($this->debugHandler, ' apache::reload: reloading apache' . "\n");
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'reloading apache');
safe_exec($this->settings['system']['apachereload_command']);
safe_exec(escapeshellcmd($this->settings['system']['apachereload_command']));
}
/**
@@ -341,7 +341,6 @@ class apache
{
if($this->settings['system']['awstats_enabled'] == '1')
{
// @TODO see if this is correct for awstats
$stats_text.= ' Alias /awstats "' . makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['domain']) . '"' . "\n";
}
else
@@ -353,7 +352,6 @@ class apache
{
if($this->settings['system']['awstats_enabled'] == '1')
{
// @TODO see if this is correct for awstats
$stats_text.= ' Alias /awstats "' . makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['parentdomain']) . '"' . "\n";
}
else
@@ -495,13 +493,22 @@ class apache
protected function getVhostFilename($domain, $ssl_vhost = false)
{
if($ssl_vhost === true)
if((int)$domain['parentdomainid'] == 0)
{
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/20_froxlor_ssl_vhost_' . $domain['domain'] . '.conf');
$vhost_no = '21';
}
else
{
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/20_froxlor_normal_vhost_' . $domain['domain'] . '.conf');
$vhost_no = '20';
}
if($ssl_vhost === true)
{
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/'.$vhost_no.'_froxlor_ssl_vhost_' . $domain['domain'] . '.conf');
}
else
{
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/'.$vhost_no.'_froxlor_normal_vhost_' . $domain['domain'] . '.conf');
}
return $vhost_filename;
@@ -629,7 +636,7 @@ class apache
public function createVirtualHosts()
{
$result_domains = $this->db->query("SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`, `d`.`phpsettingid`, `c`.`adminid`, `c`.`guid`, `c`.`email`, `c`.`documentroot` AS `customerroot`, `c`.`deactivated`, `c`.`phpenabled` AS `phpenabled`, `d`.`mod_fcgid_starter`, `d`.`mod_fcgid_maxrequests` FROM `" . TABLE_PANEL_DOMAINS . "` `d` LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`) " . "LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON (`pd`.`id` = `d`.`parentdomainid`) " . "WHERE `d`.`aliasdomain` IS NULL ORDER BY `d`.`iswildcarddomain`, `d`.`domain` ASC");
$result_domains = $this->db->query("SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`, `d`.`phpsettingid`, `c`.`adminid`, `c`.`guid`, `c`.`email`, `c`.`documentroot` AS `customerroot`, `c`.`deactivated`, `c`.`phpenabled` AS `phpenabled`, `d`.`mod_fcgid_starter`, `d`.`mod_fcgid_maxrequests` FROM `" . TABLE_PANEL_DOMAINS . "` `d` LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`) " . "LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON (`pd`.`id` = `d`.`parentdomainid`) " . "WHERE `d`.`aliasdomain` IS NULL ORDER BY `d`.`parentdomainid` DESC, `d`.`iswildcarddomain`, `d`.`domain` ASC");
while($domain = $this->db->fetch_array($result_domains))
{
@@ -952,7 +959,7 @@ class apache
if($vhost_filename != '.'
&& $vhost_filename != '..'
&& !in_array($vhost_filename, $this->known_vhostfilenames)
&& preg_match('/^(05|10|20|30)_(froxlor|syscp)_(dirfix|ipandport|normal_vhost|wildcard_vhost|ssl_vhost)_(.+)\.conf$/', $vhost_filename)
&& preg_match('/^(05|10|20|21|30|50|51)_(froxlor|syscp)_(dirfix|ipandport|normal_vhost|wildcard_vhost|ssl_vhost)_(.+)\.conf$/', $vhost_filename)
&& file_exists(makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/' . $vhost_filename)))
{
fwrite($this->debugHandler, ' apache::wipeOutOldVhostConfigs: unlinking ' . $vhost_filename . "\n");

View File

@@ -63,7 +63,7 @@ class lighttpd
{
fwrite($this->debugHandler, ' lighttpd::reload: reloading lighttpd' . "\n");
$this->logger->logAction(CRON_ACTION, LOG_INFO, 'reloading lighttpd');
safe_exec($this->settings['system']['apachereload_command']);
safe_exec(escapeshellcmd($this->settings['system']['apachereload_command']));
}
public function createIpPort()
@@ -141,6 +141,9 @@ class lighttpd
$vhosts = $this->createLighttpdHosts($row_ipsandports['ip'], $row_ipsandports['port'], $row_ipsandports['ssl'], $vhost_filename);
if($vhosts !== null && is_array($vhosts) && isset($vhosts[0]))
{
// sort vhosts by number (subdomains first!)
sort($vhosts);
foreach($vhosts as $vhost) {
$this->lighttpd_data[$vhost_filename].= ' include "'.$vhost.'"'."\n";
}
@@ -230,11 +233,11 @@ class lighttpd
if($ssl == '0')
{
$query2 = "SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`, `c`.`guid`, `c`.`email`, `c`.`documentroot` AS `customerroot`, `c`.`deactivated`, `c`.`phpenabled` AS `phpenabled` FROM `" . TABLE_PANEL_DOMAINS . "` `d` LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`) LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON (`pd`.`id` = `d`.`parentdomainid`) WHERE `d`.`ipandport`='" . $ipandport['id'] . "' AND `d`.`aliasdomain` IS NULL ORDER BY `d`.`iswildcarddomain`, `d`.`domain` ASC";
$query2 = "SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`, `c`.`guid`, `c`.`email`, `c`.`documentroot` AS `customerroot`, `c`.`deactivated`, `c`.`phpenabled` AS `phpenabled` FROM `" . TABLE_PANEL_DOMAINS . "` `d` LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`) LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON (`pd`.`id` = `d`.`parentdomainid`) WHERE `d`.`ipandport`='" . $ipandport['id'] . "' AND `d`.`aliasdomain` IS NULL ORDER BY `d`.`parentdomainid` DESC, `d`.`iswildcarddomain`, `d`.`domain` ASC";
}
else
{
$query2 = "SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`, `c`.`guid`, `c`.`email`, `c`.`documentroot` AS `customerroot`, `c`.`deactivated`, `c`.`phpenabled` AS `phpenabled` FROM `" . TABLE_PANEL_DOMAINS . "` `d` LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`) LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON (`pd`.`id` = `d`.`parentdomainid`) WHERE `d`.`ssl_ipandport`='" . $ipandport['id'] . "' AND `d`.`aliasdomain` IS NULL ORDER BY `d`.`iswildcarddomain`, `d`.`domain` ASC";
$query2 = "SELECT `d`.*, `pd`.`domain` AS `parentdomain`, `c`.`loginname`, `c`.`guid`, `c`.`email`, `c`.`documentroot` AS `customerroot`, `c`.`deactivated`, `c`.`phpenabled` AS `phpenabled` FROM `" . TABLE_PANEL_DOMAINS . "` `d` LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`) LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON (`pd`.`id` = `d`.`parentdomainid`) WHERE `d`.`ssl_ipandport`='" . $ipandport['id'] . "' AND `d`.`aliasdomain` IS NULL ORDER BY `d`.`parentdomainid` DESC, `d`.`iswildcarddomain`, `d`.`domain` ASC";
}
$included_vhosts = array();
@@ -252,8 +255,18 @@ class lighttpd
$_tmp_path = substr(makeCorrectDir($this->settings['system']['apacheconf_vhost']), 0, -1);
$_pos = strrpos($_tmp_path, '/');
$_inc_path = substr($_tmp_path, $_pos+1);
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'].'/vhosts/50_'.$domain['domain'].'.conf');
$included_vhosts[] = $_inc_path.'/vhosts/50_'.$domain['domain'].'.conf';
if((int)$domain['parentdomainid'] == 0)
{
$vhost_no = '51';
}
else
{
$vhost_no = '50';
}
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'].'/vhosts/'.$vhost_no.'_'.$domain['domain'].'.conf');
$included_vhosts[] = $_inc_path.'/vhosts/'.$vhost_no.'_'.$domain['domain'].'.conf';
}
if(!isset($this->lighttpd_data[$vhost_filename]))
{
@@ -459,27 +472,26 @@ class lighttpd
{
if(!empty($row['error404path']))
{
$error_string.= ' server.error-handler-404 = "' . makeCorrectFile($row['documentroot'] . '/' . $row['error404path']) . '"' . "\n";
$error_string.= ' server.error-handler-404 = "' . makeCorrectFile($domain['documentroot'] . '/' . $row['error404path']) . '"' . "\n\n";
}
if($row['options_indexes'] != '0')
{
$path = makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1));
mkDirWithCorrectOwnership($domain['documentroot'], $row['path'], $domain['guid'], $domain['guid']);
// We need to remove the last slash, otherwise the regex wouldn't work
$path = substr($path, 0, -1);
$path_options.= '$HTTP["url"] =~ "^' . $path . '($|/)" {' . "\n";
$path_options.= "\t" . 'dir-listing.activate = "enable"' . "\n";
if(!empty($error_string))
{
$path_options.= $error_string;
// reset $error_string here to prevent duplicate entries
$error_string = '';
}
$path_options.= '}' . "\n";
$path = makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1));
mkDirWithCorrectOwnership($domain['documentroot'], $row['path'], $domain['guid'], $domain['guid']);
// We need to remove the last slash, otherwise the regex wouldn't work
$path = substr($path, 0, -1);
$path_options.= ' $HTTP["url"] =~ "^' . $path . '($|/)" {' . "\n";
$path_options.= "\t" . 'dir-listing.activate = "enable"' . "\n";
$path_options.= ' }' . "\n\n";
}
else
{
@@ -492,7 +504,7 @@ class lighttpd
protected function getDirOptions($domain)
{
$query = "SELECT * FROM " . TABLE_PANEL_HTPASSWDS . " WHERE `customerid`='" . $domain[customerid] . "'";
$query = "SELECT * FROM " . TABLE_PANEL_HTPASSWDS . " WHERE `customerid`='" . $domain['customerid'] . "'";
$result = $this->db->query($query);
while($row_htpasswds = $this->db->fetch_array($result))
@@ -725,6 +737,7 @@ class lighttpd
if(!isConfigDir($this->settings['system']['apacheconf_vhost']))
{
// Save one big file
$vhosts_file = '';
foreach($this->lighttpd_data as $vhosts_filename => $vhost_content)
{
@@ -805,7 +818,7 @@ class lighttpd
if($vhost_filename != '.'
&& $vhost_filename != '..'
&& !in_array($vhost_filename, $this->known_filenames)
&& preg_match('/^(05|10|20|30)_(froxlor|syscp)_(dirfix|ipandport|normal_vhost|wildcard_vhost|ssl_vhost)_(.+)\.conf$/', $vhost_filename)
&& preg_match('/^(05|10|20|21|30|50|51)_(froxlor|syscp)_(dirfix|ipandport|normal_vhost|wildcard_vhost|ssl_vhost)_(.+)\.conf$/', $vhost_filename)
&& file_exists(makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/' . $vhost_filename)))
{
fwrite($this->debugHandler, ' lighttpd::wipeOutOldConfigs: unlinking ' . $vhost_filename . "\n");

View File

@@ -66,7 +66,7 @@ class lighttpd_fcgid extends lighttpd
$phpconfig = $this->getPhpConfig((int)$domain['phpsettingid']);
$php_options_text = 'fastcgi.server = ( '."\n";
$php_options_text = ' fastcgi.server = ( '."\n";
$file_extensions = explode(' ', $phpconfig['file_extensions']);
foreach($file_extensions as $f_extension)
{
@@ -109,10 +109,10 @@ class lighttpd_fcgid extends lighttpd
$php_options_text.= "\t\t".')'."\n";
$php_options_text.= "\t".')'."\n";
$php_options_text.= "".')'."\n";
$php_options_text.= "\t".')'."\n";
} // foreach extension
$php_options_text.= "".')'."\n";
$php_options_text.= ' )'."\n";
// create starter

View File

@@ -54,6 +54,7 @@ while($row = $db->fetch_array($result_tasks))
if ($settings['system']['awstats_enabled'] == '1')
{
$awstatsclean['header'] = "## GENERATED BY FROXLOR\n";
$awstatsclean['headerold'] = "## GENERATED BY SYSCP\n";
$awstatsclean['path'] = '/etc/awstats';
/**
@@ -74,7 +75,8 @@ while($row = $db->fetch_array($result_tasks))
$awstatsclean['fh'] = fopen($awstatsclean['fullentry'], 'r');
$awstatsclean['headerRead'] = fgets($awstatsclean['fh'], strlen($awstatsclean['header'])+1);
fclose($awstatsclean['fh']);
if($awstatsclean['headerRead'] == $awstatsclean['header']) {
if($awstatsclean['headerRead'] == $awstatsclean['header'] || $awstatsclean['headerRead'] ==
$awstatsclean['headerold']) {
$cronlog->logAction(CRON_ACTION, LOG_INFO, "Removing awstats configuration ".$awstatsclean['fullentry']." for re-creation");
@unlink($awstatsclean['fullentry']);
}

View File

@@ -19,10 +19,10 @@
function awstatsDoSingleDomain($domain, $outputdir)
{
global $cronlog;
global $cronlog, $settings;
$returnval = 0;
$domainconfig = '/etc/awstats/awstats.' . $domain . '.conf';
$domainconfig = makeCorrectFile($settings['system']['awstats_conf'].'/awstats.' . $domain . '.conf');
if(file_exists($domainconfig))
{
$outputdir = makeCorrectDir($outputdir . '/' . $domain);
@@ -33,20 +33,13 @@ function awstatsDoSingleDomain($domain, $outputdir)
}
/**
* check for correct paths of awstats_buildstaticpages.pl
* check for correct path of awstats_buildstaticpages.pl
*/
$awbsp = '/usr/bin/awstats_buildstaticpages.pl';
/**
* debian...pffff, #87
*/
if (!file_exists($awbsp)) {
$awbsp = '/usr/lib/cgi-bin/awstats_buildstaticpages.pl';
}
$awbsp = makeCorrectFile($settings['system']['awstats_path'].'/awstats_buildstaticpages.pl');
if (!file_exists($awbsp)) {
echo "WANRING: Necessary awstats_buildstaticpages.pl script could not be found, no traffic is being calculated and no stats are generated";
$cronlog->logAction(CRON_ACTION, LOG_WARNING, "Necessary awstats_buildstaticpages.pl script could not be found, no traffic is being calculated and no stats are generated");
echo "WANRING: Necessary awstats_buildstaticpages.pl script could not be found, no traffic is being calculated and no stats are generated. Please check your AWStats-Path setting";
$cronlog->logAction(CRON_ACTION, LOG_WARNING, "Necessary awstats_buildstaticpages.pl script could not be found, no traffic is being calculated and no stats are generated. Please check your AWStats-Path setting");
exit;
}
@@ -120,6 +113,12 @@ function callAwstatsGetTraffic($domain, $outputdir, $caption, $usersdomainlist)
// model-config-file.
$returnval += awstatsDoSingleDomain($singledomain, $outputdir);
}
/**
* as of #124, awstats traffic is saved in bytes instead
* of kilobytes (like webalizer does)
*/
$returnval = floatval($returnval / 1024);
/**
* now, because this traffic is being saved daily, we have to
@@ -198,8 +197,16 @@ function callWebalizerGetTraffic($logfile, $outputdir, $caption, $usersdomainlis
$verbosity = '-Q';
}
$we = '/usr/bin/webalizer';
// FreeBSD uses other paths, #140
if(!file_exists($we))
{
$we = '/usr/local/bin/webalizer';
}
$cronlog->logAction(CRON_ACTION, LOG_INFO, "Running webalizer for domain '".$caption."'");
safe_exec('webalizer ' . $verbosity . ' -p -o ' . escapeshellarg($outputdir) . ' -n ' . escapeshellarg($caption) . $domainargs . ' ' . escapeshellarg($settings['system']['logfiles_directory'] . $logfile . '-access.log'));
safe_exec($we . ' ' . $verbosity . ' -p -o ' . escapeshellarg($outputdir) . ' -n ' . escapeshellarg($caption) . $domainargs . ' ' . escapeshellarg($settings['system']['logfiles_directory'] . $logfile . '-access.log'));
/**
* Format of webalizer.hist-files:

View File

@@ -167,7 +167,7 @@ while($row = $db->fetch_array($result))
if($settings['system']['awstats_enabled'] == '1')
{
$httptraffic+= floatval(callAwstatsGetTraffic($domain, $row['documentroot'] . '/webalizer/' . $domain . '/', $domain, $domainlist[$row['customerid']]));
$httptraffic+= floatval(callAwstatsGetTraffic($domain, $row['documentroot'] . '/awstats/', $domain, $domainlist[$row['customerid']]));
}
else
{

View File

@@ -22,7 +22,7 @@ $header
<td class="field_display">{$lng['customer']['mysqls']}<br />{$lng['customer']['ftps']}</td>
<td class="field_display">{$lng['customer']['emails']}<br />{$lng['customer']['subdomains']}</td>
<td class="field_display">{$lng['customer']['accounts']}<br />{$lng['customer']['forwarders']}</td>
<td class="field_display">{$lng['admin']['deactivated']}</td>
<td class="field_display">{$lng['admin']['deactivated']}<br />{$lng['admin']['lastlogin_succ']}</td>
<td class="field_display_search">{$sortcode}</td>
</tr>
$customers

View File

@@ -1,5 +1,5 @@
<tr>
<td class="field_name_border_left"><a href="$filename?s=$s&amp;page=$page&amp;action=su&amp;id={$row['customerid']}" target="_blank">{$row['loginname']}</a></td>
<td class="field_name_border_left"{$column_style}><a href="$filename?s=$s&amp;page=$page&amp;action=su&amp;id={$row['customerid']}" target="_blank">{$row['loginname']}</a></td>
<td class="field_name">{$row['adminname']}</td>
<td class="field_name"><if $row['name'] != '' && $row['firstname'] != ''>{$row['name']}<br />{$row['firstname']}</if><if ($row['name'] == '' || $row['firstname'] == '') && $row['company'] != ''>{$row['company']}</if></td>
<td class="field_name"><if $row['domains'] != 0><a href="admin_domains.php?s=$s&amp;page=domains&amp;searchfield=c.loginname&amp;searchtext={$row['loginname']}">{$row['domains']}</a><else>{$row['domains']}</if></td>
@@ -12,6 +12,6 @@
<td class="field_name"><b><font color="green">{$row['mysqls_used']}</font></b>/<b><font color="#FD6204">{$row['mysqls']}</font></b><br /><b><font color="green">{$row['ftps_used']}</font></b>/<b><font color="#FD6204">{$row['ftps']}</font></b></td>
<td class="field_name"><b><font color="green">{$row['emails_used']}</font></b>/<b><font color="#FD6204">{$row['emails']}</font></b><br /><b><font color="green">{$row['subdomains_used']}</font></b>/<b><font color="#FD6204">{$row['subdomains']}</font></b></td>
<td class="field_name"><b><font color="green">{$row['email_accounts_used']}</font></b>/<b><font color="#FD6204">{$row['email_accounts']}</font></b><br /><b><font color="green">{$row['email_forwarders_used']}</font></b>/<b><font color="#FD6204">{$row['email_forwarders']}</font></b></td>
<td class="field_name" style=" text-align: center; "><if $row['deactivated'] == '1'>{$lng['panel']['yes']}<else>{$lng['panel']['no']}</if></td>
<td class="field_name" style=" text-align: center; "><if $row['deactivated'] == '1'>{$lng['panel']['yes']}<else>{$lng['panel']['no']}</if><br />{$last_login}</td>
<td class="field_name"><a href="$filename?s=$s&amp;page=$page&amp;action=edit&amp;id={$row['customerid']}">{$lng['panel']['edit']}</a><br /><a href="$filename?s=$s&amp;page=$page&amp;action=delete&amp;id={$row['customerid']}">{$lng['panel']['delete']}</a></td>
</tr>

View File

@@ -3,5 +3,14 @@
<td class="field_name"><font size="-1">{$row['ipandport']}</font></td>
<td class="field_name"><font size="-1">{$row['customername']} (<a href="admin_customers.php?s=$s&amp;page=customers&amp;action=su&amp;id={$row['customerid']}" target="_blank">{$row['loginname']}</a>)</font></td>
<td class="field_name"><a href="$filename?s=$s&amp;page=$page&amp;action=edit&amp;id={$row['id']}">{$lng['panel']['edit']}</a></td>
<td class="field_name"><if !(isset($row['domainaliasid']) && $row['domainaliasid'] != 0)><a href="$filename?s=$s&amp;page=$page&amp;action=delete&amp;id={$row['id']}">{$lng['panel']['delete']}</a></if><if isset($row['domainaliasid']) && $row['domainaliasid'] != 0><a href="$filename?s=$s&amp;page=$page&amp;searchfield=d.aliasdomain&amp;searchtext={$row['id']}">{$lng['domains']['hasaliasdomains']}</a></if></td>
<td class="field_name">
<if !(isset($row['domainaliasid']) && $row['domainaliasid'] != 0)>
<if !(isset($row['standardsubdomain']) && $row['standardsubdomain'] == $row['id'])>
<a href="$filename?s=$s&amp;page=$page&amp;action=delete&amp;id={$row['id']}">{$lng['panel']['delete']}</a>
</if>
</if>
<if isset($row['domainaliasid']) && $row['domainaliasid'] != 0>
<a href="$filename?s=$s&amp;page=$page&amp;searchfield=d.aliasdomain&amp;searchtext={$row['id']}">{$lng['domains']['hasaliasdomains']}</a>
</if>
</td>
</tr>

View File

@@ -1,12 +1,7 @@
$header
<form method="post" action="$filename">
<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" />
<table cellpadding="5" cellspacing="4" border="0" align="center" class="maintable">
<tr>
<td class="maintitle" colspan="2"><b><img src="images/title.gif" alt="" />&nbsp;{$lng['admin']['serversettings']}</b></td>
<td class="maintitle" colspan="2"><b><img src="images/title.gif" alt="" />&nbsp;{$lng['admin']['serversettings']}</b>
[<a href="$filename?page=overview&amp;part=&amp;s=$s">{$lng['admin']['configfiles']['compactoverview']}</a>]</td>
</tr>
$fields
<tr>
@@ -15,7 +10,3 @@ $header
</td>
</tr>
</table>
</form>
<br />
<br />
$footer

View File

@@ -0,0 +1,6 @@
$header
<form method="post" action="$filename">
<input type="hidden" name="send" value="send" />
<input type="hidden" name="s" value="$s" />
<input type="hidden" name="page" value="$page" />
<input type="hidden" name="action" value="$action" />

View File

@@ -0,0 +1,7 @@
<if $_part != ''>
<input type="hidden" name="part" value="{$_part}" />
</if>
</form>
<br />
<br />
$footer

View File

@@ -0,0 +1,14 @@
<table cellpadding="5" cellspacing="4" border="0" align="center" class="maintable_60">
<tr>
<td class="maintitle" align="center" colspan="3">
<b><img src="images/title.gif" alt="" />&nbsp;{$lng['admin']['configfiles']['serverconfiguration']}</b>
[<a href="$filename?page=overview&amp;part=all&amp;s=$s">{$lng['admin']['configfiles']['overview']}</a>]
</td>
</tr>
$fields
<tr>
<td class="maintitle_apply_right" nowrap="nowrap" colspan="3">
<input class="bottom" type="reset" value="{$lng['panel']['reset']}" />&nbsp;<input class="bottom" type="submit" value="{$lng['panel']['save']}" />
</td>
</tr>
</table>

View File

@@ -0,0 +1,11 @@
<tr>
<td class="maintitle_apply_left">
<b><img src="images/title.gif" alt="" />&nbsp;{$title}</b>
</td>
<td class="main_field_display_small" nowrap="nowrap">{$option}</td>
<td class="main_field_display_small" nowrap="nowrap">
<if $activated == 1>
<a href="$filename?page=overview&amp;part=$part&amp;s=$s">{$lng['admin']['configfiles']['serverconfiguration']}</a>
</if>
</td>
</tr>

View File

@@ -12,6 +12,10 @@ $header
<td class="main_field_name">{$lng['domains']['domainname']}:</td>
<td class="main_field_display" nowrap="nowrap">{$result['domain']}</td>
</tr>
<tr>
<td class="main_field_name">{$lng['dns']['destinationip']}:</td>
<td class="main_field_display" nowrap="nowrap">{$domainip}</td>
</tr>
<if $alias_check == '0'><tr>
<td class="main_field_name">{$lng['domains']['aliasdomain']}:</td>
<td class="main_field_display" nowrap="nowrap"><select class="tendina_nobordo" name="alias">$domains</select></td>

View File

@@ -1,6 +1,6 @@
<tr class="" onmouseover="this.className='RowOverSelected';" onmouseout="this.className='';">
<td class="field_name_border_left">{$row['username']}</td>
<td class="field_name">{$row['documentroot']}</td>
<td class="field_name"><a href="$filename?page=accounts&amp;action=edit&amp;id={$row['id']}&amp;s=$s">{$lng['menue']['main']['changepassword']}</a></td>
<td class="field_name"><a href="$filename?page=accounts&amp;action=edit&amp;id={$row['id']}&amp;s=$s">{$lng['panel']['edit']}</a></td>
<td class="field_name"><a href="$filename?page=accounts&amp;action=delete&amp;id={$row['id']}&amp;s=$s">{$lng['panel']['delete']}</a></td>
</tr>

View File

@@ -6,18 +6,32 @@ $header
<input type="hidden" name="id" value="$id" />
<table cellpadding="5" cellspacing="4" border="0" align="center" class="maintable_60">
<tr>
<td class="maintitle" colspan="2"><b><img src="images/title.gif" alt="" />&nbsp;{$lng['menue']['main']['changepassword']}</b></td>
<td class="maintitle" colspan="2"><b><img src="images/title.gif" alt="" />&nbsp;{$lng['ftp']['account_edit']}</b></td>
</tr>
<tr>
<td class="main_field_name">{$lng['login']['username']}:</td>
<td class="main_field_display" nowrap="nowrap">{$result['username']}</td>
</tr>
<if $settings['customer']['ftpatdomain'] == '1'>
<tr>
<td class="main_field_name">{$lng['login']['password']}:</td>
<td class="main_field_name">{$lng['login']['username']}:</td>
<td class="main_field_display" nowrap="nowrap"><input type="text" class="text" name="ftp_username" size="30" /></td>
</tr>
<tr>
<td class="main_field_name">{$lng['domains']['domainname']}:</td>
<td class="main_field_display" nowrap="nowrap"><select class="dropdown_noborder" name="ftp_domain">$domains</select></td>
</tr>
</if>
<tr>
<td class="main_field_name">{$lng['panel']['path']}:<if $settings['panel']['pathedit'] != 'Dropdown'><br /><font size="1">{$lng['panel']['pathDescription']}</font></if></td>
<td class="main_field_display" nowrap="nowrap">{$pathSelect}</td>
</tr>
<tr>
<td class="main_field_name">{$lng['login']['password']}:<br /><font size="1">{$lng['ftp']['editpassdescription']}</font></td>
<td class="main_field_display" nowrap="nowrap"><input type="password" name="ftp_password" maxlength="50" /></td>
</tr>
<tr>
<td class="main_field_confirm" colspan="2"><input type="hidden" name="send" value="send" /><input type="submit" class="bottom" value="{$lng['menue']['main']['changepassword']}" /></td>
<td class="main_field_confirm" colspan="2"><input type="hidden" name="send" value="send" /><input type="submit" class="bottom" value="{$lng['panel']['save']}" /></td>
</tr>
</table>
</form>

View File

@@ -21,6 +21,10 @@ $header
<td class="main_field_name">{$lng['login']['password']}:</td>
<td class="main_field_display" nowrap="nowrap"><input type="password" name="mysql_password" maxlength="50" /></td>
</tr>
<tr>
<td class="main_field_name">{$lng['mysql']['sendinfomail']}:</td>
<td class="main_field_display" nowrap="nowrap">{$sendinfomail}</td>
</tr>
<tr>
<td class="main_field_confirm" colspan="2"><input type="hidden" name="send" value="send" /><input type="submit" class="bottom" value="{$lng['mysql']['database_create']}" /></td>
</tr>

View File

@@ -449,3 +449,12 @@ TR.RowOverSelected {
text-align: left;
}
.preconfig
{
text-align: left;
margin-top: 20px;
margin-bottom: 5px;
margin-right: 15px;
margin-left: 15px;
}

View File

@@ -7,4 +7,4 @@ HostAliases="{HOST_ALIASES}"
DirData="{CUSTOMER_DOCROOT}"
# Include local configuration options identical for all virtual hosts
Include "/etc/awstats/awstats.model.conf"
Include "{AWSTATS_CONF}awstats.model.conf"

View File

@@ -7,4 +7,4 @@ HostAliases="{HOST_ALIASES}"
DirData="{CUSTOMER_DOCROOT}"
# Include local configuration options identical for all virtual hosts
Include "/etc/awstats/awstats.model.conf"
Include "{AWSTATS_CONF}awstats.model.conf"

View File

@@ -0,0 +1,25 @@
#
# ATTENTION - this is not the full postfix-main.cf file
#
# it only provides additional configuration-entries!
#
#
# look for the follow statement
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
#
# and extend it with the following line
# so it looks like this
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
check_recipient_mx_access cidr:/etc/postfix/mx_access

View File

@@ -0,0 +1,9 @@
0.0.0.0/8 REJECT Domain MX in broadcast network
10.0.0.0/8 REJECT Domain MX in RFC 1918 private network
169.254.0.0/16 REJECT Domain MX in link local network
172.16.0.0/12 REJECT Domain MX in RFC 1918 private network
192.0.2.0/24 REJECT Domain MX in TEST-NET network
192.168.0.0/16 REJECT Domain MX in RFC 1918 private network
224.0.0.0/4 REJECT Domain MX in class D multicast network
240.0.0.0/5 REJECT Domain MX in class E reserved network
248.0.0.0/5 REJECT Domain MX in reserved network

View File

@@ -0,0 +1,25 @@
#
# ATTENTION - this is not the full postfix-main.cf file
#
# it only provides additional configuration-entries!
#
#
# look for the follow statement
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
#
# and extend it with the following line
# so it looks like this
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
check_recipient_mx_access cidr:/etc/postfix/mx_access

View File

@@ -0,0 +1,9 @@
0.0.0.0/8 REJECT Domain MX in broadcast network
10.0.0.0/8 REJECT Domain MX in RFC 1918 private network
169.254.0.0/16 REJECT Domain MX in link local network
172.16.0.0/12 REJECT Domain MX in RFC 1918 private network
192.0.2.0/24 REJECT Domain MX in TEST-NET network
192.168.0.0/16 REJECT Domain MX in RFC 1918 private network
224.0.0.0/4 REJECT Domain MX in class D multicast network
240.0.0.0/5 REJECT Domain MX in class E reserved network
248.0.0.0/5 REJECT Domain MX in reserved network

View File

@@ -0,0 +1,19 @@
# for Froxlor and AWStats to work together
# you have to comment out the following
# variables
# look for
LogFile=""
LogType=""
LogFormat=""
LogSeparator=""
SiteDomain=""
DirData="/some/folder/"
# and comment this out with a hash (#)
#LogFile=""
#LogType=""
#LogFormat=""
#LogSeparator=""
#SiteDomain=""
#DirData="/some/folder/"

View File

@@ -0,0 +1,25 @@
#
# ATTENTION - this is not the full postfix-main.cf file
#
# it only provides additional configuration-entries!
#
#
# look for the follow statement
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
#
# and extend it with the following line
# so it looks like this
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
check_recipient_mx_access cidr:/usr/local/etc/postfix/mx_access

View File

@@ -0,0 +1,9 @@
0.0.0.0/8 REJECT Domain MX in broadcast network
10.0.0.0/8 REJECT Domain MX in RFC 1918 private network
169.254.0.0/16 REJECT Domain MX in link local network
172.16.0.0/12 REJECT Domain MX in RFC 1918 private network
192.0.2.0/24 REJECT Domain MX in TEST-NET network
192.168.0.0/16 REJECT Domain MX in RFC 1918 private network
224.0.0.0/4 REJECT Domain MX in class D multicast network
240.0.0.0/5 REJECT Domain MX in class E reserved network
248.0.0.0/5 REJECT Domain MX in reserved network

View File

@@ -0,0 +1,25 @@
#
# ATTENTION - this is not the full postfix-main.cf file
#
# it only provides additional configuration-entries!
#
#
# look for the follow statement
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
#
# and extend it with the following line
# so it looks like this
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
check_recipient_mx_access cidr:/etc/postfix/mx_access

View File

@@ -0,0 +1,9 @@
0.0.0.0/8 REJECT Domain MX in broadcast network
10.0.0.0/8 REJECT Domain MX in RFC 1918 private network
169.254.0.0/16 REJECT Domain MX in link local network
172.16.0.0/12 REJECT Domain MX in RFC 1918 private network
192.0.2.0/24 REJECT Domain MX in TEST-NET network
192.168.0.0/16 REJECT Domain MX in RFC 1918 private network
224.0.0.0/4 REJECT Domain MX in class D multicast network
240.0.0.0/5 REJECT Domain MX in class E reserved network
248.0.0.0/5 REJECT Domain MX in reserved network

View File

@@ -0,0 +1,25 @@
#
# ATTENTION - this is not the full postfix-main.cf file
#
# it only provides additional configuration-entries!
#
#
# look for the follow statement
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
#
# and extend it with the following line
# so it looks like this
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
check_recipient_mx_access cidr:/etc/postfix/mx_access

View File

@@ -0,0 +1,9 @@
0.0.0.0/8 REJECT Domain MX in broadcast network
10.0.0.0/8 REJECT Domain MX in RFC 1918 private network
169.254.0.0/16 REJECT Domain MX in link local network
172.16.0.0/12 REJECT Domain MX in RFC 1918 private network
192.0.2.0/24 REJECT Domain MX in TEST-NET network
192.168.0.0/16 REJECT Domain MX in RFC 1918 private network
224.0.0.0/4 REJECT Domain MX in class D multicast network
240.0.0.0/5 REJECT Domain MX in class E reserved network
248.0.0.0/5 REJECT Domain MX in reserved network

View File

@@ -0,0 +1,25 @@
#
# ATTENTION - this is not the full postfix-main.cf file
#
# it only provides additional configuration-entries!
#
#
# look for the follow statement
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient
#
# and extend it with the following line
# so it looks like this
#
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unauth_pipelining,
reject_non_fqdn_recipient,
check_recipient_mx_access cidr:/etc/postfix/mx_access

View File

@@ -0,0 +1,9 @@
0.0.0.0/8 REJECT Domain MX in broadcast network
10.0.0.0/8 REJECT Domain MX in RFC 1918 private network
169.254.0.0/16 REJECT Domain MX in link local network
172.16.0.0/12 REJECT Domain MX in RFC 1918 private network
192.0.2.0/24 REJECT Domain MX in TEST-NET network
192.168.0.0/16 REJECT Domain MX in RFC 1918 private network
224.0.0.0/4 REJECT Domain MX in class D multicast network
240.0.0.0/5 REJECT Domain MX in class E reserved network
248.0.0.0/5 REJECT Domain MX in reserved network