Merge branch 'master' of git://github.com/Froxlor/Froxlor
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,6 +1,4 @@
|
||||
packages/*
|
||||
lib/classes/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/*/
|
||||
temp/*
|
||||
templates/*
|
||||
install/update.log
|
||||
.buildpath
|
||||
|
||||
@@ -85,21 +85,6 @@ return array(
|
||||
'default' => 100,
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_autoresponder_enabled' => array(
|
||||
'label' => $lng['serversettings']['autoresponder_active'],
|
||||
'settinggroup' => 'autoresponder',
|
||||
'varname' => 'autoresponder_active',
|
||||
'type' => 'bool',
|
||||
'default' => false,
|
||||
'cronmodule' => 'froxlor/autoresponder',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_last_autoresponder_run' => array(
|
||||
'settinggroup' => 'autoresponder',
|
||||
'varname' => 'last_autoresponder_run',
|
||||
'type' => 'hidden',
|
||||
'default' => 0,
|
||||
),
|
||||
'system_catchall_enabled' => array(
|
||||
'label' => $lng['serversettings']['catchall_enabled'],
|
||||
'settinggroup' => 'catchall',
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Settings
|
||||
*
|
||||
*/
|
||||
|
||||
return array(
|
||||
'groups' => array(
|
||||
'aps' => array(
|
||||
'title' => $lng['admin']['aps'],
|
||||
'fields' => array(
|
||||
'aps_enable' => array(
|
||||
'label' => $lng['aps']['activate_aps'],
|
||||
'settinggroup' => 'aps',
|
||||
'varname' => 'aps_active',
|
||||
'type' => 'bool',
|
||||
'default' => false,
|
||||
'cronmodule' => 'froxlor/aps',
|
||||
'save_method' => 'storeSettingField',
|
||||
'overview_option' => true
|
||||
),
|
||||
'aps_items_per_page' => array(
|
||||
'label' => $lng['aps']['packages_per_page'],
|
||||
'settinggroup' => 'aps',
|
||||
'varname' => 'items_per_page',
|
||||
'type' => 'int',
|
||||
'default' => 20,
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'aps_upload_fields' => array(
|
||||
'label' => $lng['aps']['upload_fields'],
|
||||
'settinggroup' => 'aps',
|
||||
'varname' => 'upload_fields',
|
||||
'type' => 'int',
|
||||
'default' => 5,
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'aps_exceptions' => array(
|
||||
'label' => $lng['aps']['exceptions'],
|
||||
'type' => 'label',
|
||||
),
|
||||
'aps_php-extension' => array(
|
||||
'label' => $lng['aps']['settings_php_extensions'],
|
||||
'settinggroup' => 'aps',
|
||||
'varname' => 'php-extension',
|
||||
'type' => 'option',
|
||||
'default' => '',
|
||||
'option_mode' => 'multiple',
|
||||
'option_options' => array('gd' => 'GD Library', 'pcre' => 'PCRE', 'ioncube' => 'ionCube', 'ioncube loader' => 'ionCube Loader', 'curl' => 'curl', 'mcrypt' => 'mcrypt', 'imap' => 'imap', 'json' => 'json', 'ldap' => 'LDAP', 'hash' => 'hash', 'mbstring' => 'mbstring', 'Zend Optimizer' => 'Zend Guard'),
|
||||
'save_method' => 'storeSettingApsPhpExtensions',
|
||||
),
|
||||
'aps_php-function' => array(
|
||||
'settinggroup' => 'aps',
|
||||
'varname' => 'php-function',
|
||||
'type' => 'hidden',
|
||||
'default' => '',
|
||||
),
|
||||
'aps_php-configuration' => array(
|
||||
'label' => $lng['aps']['settings_php_configuration'],
|
||||
'settinggroup' => 'aps',
|
||||
'varname' => 'php-configuration',
|
||||
'type' => 'option',
|
||||
'default' => '',
|
||||
'option_mode' => 'multiple',
|
||||
'option_options' => array('short_open_tag' => 'short_open_tag', 'file_uploads' => 'file_uploads', 'magic_quotes_gpc' => 'magic_quotes_gpc', 'register_globals' => 'register_globals', 'allow_url_fopen' => 'allow_url_fopen', 'safe_mode' => 'safe_mode', 'post_max_size' => 'post_max_size', 'memory_limit' => 'memory_limit', 'max_execution_time' => 'max_execution_time'),
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'aps_webserver-module' => array(
|
||||
'label' => $lng['aps']['settings_webserver_modules'],
|
||||
'settinggroup' => 'aps',
|
||||
'varname' => 'webserver-module',
|
||||
'type' => 'option',
|
||||
'default' => '',
|
||||
'option_mode' => 'multiple',
|
||||
'option_options' => array('mod_perl' => 'mod_perl', 'mod_rewrite' => 'mod_rewrite', 'mod_access' => 'mod_access', 'fcgid-any' => 'FastCGI/mod_fcgid', 'htaccess' => '.htaccess'),
|
||||
'save_method' => 'storeSettingApsWebserverModules',
|
||||
),
|
||||
'aps_webserver-htaccess' => array(
|
||||
'settinggroup' => 'aps',
|
||||
'varname' => 'webserver-htaccess',
|
||||
'type' => 'hidden',
|
||||
'default' => '',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
?>
|
||||
@@ -1,118 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Settings
|
||||
*
|
||||
*/
|
||||
|
||||
return array(
|
||||
'groups' => array(
|
||||
'backup' => array(
|
||||
'title' => $lng['backup'],
|
||||
'fields' => array(
|
||||
'backup_enabled' => array(
|
||||
'label' => $lng['serversettings']['backup_enabled'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_enabled',
|
||||
'type' => 'bool',
|
||||
'default' => false,
|
||||
'cronmodule' => 'froxlor/backup',
|
||||
'save_method' => 'storeSettingField',
|
||||
'overview_option' => true
|
||||
),
|
||||
'backup_dir' => array(
|
||||
'label' => $lng['serversettings']['backupdir']['description'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_dir',
|
||||
'type' => 'string',
|
||||
'string_type' => 'dir',
|
||||
'default' => '/var/customers/backups/',
|
||||
'string_regexp' => '#^/.*/$#',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'backup_mysqldump_path' => array(
|
||||
'label' => $lng['serversettings']['mysqldump_path']['description'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_mysqldump_path',
|
||||
'type' => 'string',
|
||||
'default' => '/usr/bin/mysqldump',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'backup_count' => array(
|
||||
'label' => $lng['serversettings']['backup_count'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_count',
|
||||
'type' => 'bool',
|
||||
'default' => 'true',
|
||||
'save_method' => 'storeSettingField',
|
||||
'overview_option' => false
|
||||
),
|
||||
'backup_bigfile' => array(
|
||||
'label' => $lng['serversettings']['backup_bigfile'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_bigfile',
|
||||
'type' => 'bool',
|
||||
'default' => false,
|
||||
'save_method' => 'storeSettingField',
|
||||
'overview_option' => false
|
||||
),
|
||||
'backup_ftp_enabled_' => array(
|
||||
'label' => $lng['serversettings']['backup_ftp_enabled'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_ftp_enabled',
|
||||
'type' => 'bool',
|
||||
'default' => false,
|
||||
'save_method' => 'storeSettingField',
|
||||
'overview_option' => false
|
||||
),
|
||||
'backup_server' => array(
|
||||
'label' => $lng['serversettings']['backup_ftp_server'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_ftp_server',
|
||||
'type' => 'string',
|
||||
'default' => '',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'backup_user' => array(
|
||||
'label' => $lng['serversettings']['backup_ftp_user'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_ftp_user',
|
||||
'type' => 'string',
|
||||
'default' => '',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'backup_pass' => array(
|
||||
'label' => $lng['serversettings']['backup_ftp_pass'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_ftp_pass',
|
||||
'type' => 'hiddenstring',
|
||||
'default' => '',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'backup_passive_mode' => array(
|
||||
'label' => $lng['serversettings']['backup_ftp_passive_mode'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'backup_ftp_passive',
|
||||
'type' => 'bool',
|
||||
'default' => true,
|
||||
'save_method' => 'storeSettingField',
|
||||
'overview_option' => false,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
?>
|
||||
@@ -81,7 +81,7 @@ if ($page == 'admins'
|
||||
$traffic_doublepercent = 0;
|
||||
}
|
||||
|
||||
$row = str_replace_array('-1', 'UL', $row, 'customers domains diskspace traffic mysqls emails email_accounts email_forwarders email_quota email_autoresponder ftps subdomains tickets');
|
||||
$row = str_replace_array('-1', 'UL', $row, 'customers domains diskspace traffic mysqls emails email_accounts email_forwarders email_quota ftps subdomains tickets');
|
||||
$row = htmlentities_array($row);
|
||||
eval("\$admins.=\"" . getTemplate("admins/admins_admin") . "\";");
|
||||
$count++;
|
||||
@@ -233,16 +233,6 @@ if ($page == 'admins'
|
||||
$email_quota = - 1;
|
||||
}
|
||||
|
||||
if ($settings['autoresponder']['autoresponder_active'] == '1') {
|
||||
|
||||
$email_autoresponder = intval_ressource($_POST['email_autoresponder']);
|
||||
if (isset($_POST['email_autoresponder_ul'])) {
|
||||
$email_autoresponder = - 1;
|
||||
}
|
||||
} else {
|
||||
$email_autoresponder = 0;
|
||||
}
|
||||
|
||||
$ftps = intval_ressource($_POST['ftps']);
|
||||
if (isset($_POST['ftps_ul'])) {
|
||||
$ftps = - 1;
|
||||
@@ -263,19 +253,6 @@ if ($page == 'admins'
|
||||
$mysqls = - 1;
|
||||
}
|
||||
|
||||
if ($settings['aps']['aps_active'] == '1') {
|
||||
|
||||
$number_of_aps_packages = intval_ressource($_POST['number_of_aps_packages']);
|
||||
if (isset($_POST['number_of_aps_packages_ul'])) {
|
||||
$number_of_aps_packages = - 1;
|
||||
}
|
||||
$can_manage_aps_packages = isset($_POST['can_manage_aps_packages']) ? 1 : 0;
|
||||
|
||||
} else {
|
||||
$number_of_aps_packages = 0;
|
||||
$can_manage_aps_packages = 0;
|
||||
}
|
||||
|
||||
$customers_see_all = 0;
|
||||
if (isset($_POST['customers_see_all'])) {
|
||||
$customers_see_all = intval($_POST['customers_see_all']);
|
||||
@@ -401,9 +378,6 @@ if ($page == 'admins'
|
||||
'tickets_see_all' => $tickets_see_all,
|
||||
'mysqls' => $mysqls,
|
||||
'ip' => $ipaddress,
|
||||
'can_manage_aps_packages' => $can_manage_aps_packages,
|
||||
'aps_packages' => $number_of_aps_packages,
|
||||
'autoresponder' => $email_autoresponder,
|
||||
'theme' => $_theme
|
||||
);
|
||||
|
||||
@@ -432,9 +406,6 @@ if ($page == 'admins'
|
||||
`tickets_see_all` = :tickets_see_all,
|
||||
`mysqls` = :mysqls,
|
||||
`ip` = :ip,
|
||||
`can_manage_aps_packages` = :can_manage_aps_packages,
|
||||
`aps_packages` = :aps_packages,
|
||||
`email_autoresponder` = :autoresponder,
|
||||
`theme` = :theme
|
||||
");
|
||||
Database::pexecute($ins_stmt, $ins_data);
|
||||
@@ -476,11 +447,9 @@ if ($page == 'admins'
|
||||
$email_accounts_ul = makecheckbox('email_accounts_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$email_forwarders_ul = makecheckbox('email_forwarders_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$email_quota_ul = makecheckbox('email_quota_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$email_autoresponder_ul = makecheckbox('email_autoresponder_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$ftps_ul = makecheckbox('ftps_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$tickets_ul = makecheckbox('tickets_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$mysqls_ul = makecheckbox('mysqls_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$number_of_aps_packages_ul = makecheckbox('number_of_aps_packages_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
|
||||
$admin_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/admin/formfield.admin_add.php';
|
||||
$admin_add_form = htmlform::genHTMLForm($admin_add_data);
|
||||
@@ -520,7 +489,6 @@ if ($page == 'admins'
|
||||
$email_accounts = $result['email_accounts'];
|
||||
$email_forwarders = $result['email_forwarders'];
|
||||
$email_quota = $result['email_quota'];
|
||||
$email_autoresponder = $result['email_autoresponder'];
|
||||
$ftps = $result['ftps'];
|
||||
$tickets = $result['tickets'];
|
||||
$mysqls = $result['mysqls'];
|
||||
@@ -532,8 +500,6 @@ if ($page == 'admins'
|
||||
$diskspace = $result['diskspace'];
|
||||
$traffic = $result['traffic'];
|
||||
$ipaddress = $result['ip'];
|
||||
$can_manage_aps_packages = $result['can_manage_aps_packages'];
|
||||
$number_of_aps_packages = $result['aps_packages'];
|
||||
|
||||
} else {
|
||||
|
||||
@@ -580,15 +546,6 @@ if ($page == 'admins'
|
||||
$email_quota = -1;
|
||||
}
|
||||
|
||||
if ($settings['autoresponder']['autoresponder_active'] == '1') {
|
||||
$email_autoresponder = intval_ressource($_POST['email_autoresponder']);
|
||||
if (isset($_POST['email_autoresponder_ul'])) {
|
||||
$email_autoresponder = -1;
|
||||
}
|
||||
} else {
|
||||
$email_autoresponder = 0;
|
||||
}
|
||||
|
||||
$ftps = intval_ressource($_POST['ftps']);
|
||||
if (isset($_POST['ftps_ul'])) {
|
||||
$ftps = -1;
|
||||
@@ -608,16 +565,6 @@ if ($page == 'admins'
|
||||
$mysqls = - 1;
|
||||
}
|
||||
|
||||
if ($settings['aps']['aps_active'] == '1') {
|
||||
$number_of_aps_packages = intval_ressource($_POST['number_of_aps_packages']);
|
||||
if (isset($_POST['number_of_aps_packages_ul'])) {
|
||||
$number_of_aps_packages = -1;
|
||||
}
|
||||
$can_manage_aps_packages = isset($_POST['can_manage_aps_packages']) ? 1 : 0;
|
||||
} else {
|
||||
$number_of_aps_packages = 0;
|
||||
}
|
||||
|
||||
$customers_see_all = 0;
|
||||
if (isset($_POST['customers_see_all'])) {
|
||||
$customers_see_all = intval($_POST['customers_see_all']);
|
||||
@@ -723,9 +670,6 @@ if ($page == 'admins'
|
||||
if ($email_quota != $result['email_quota'] && $email_quota < $result['email_quota_used']) {
|
||||
$res_warning .= sprintf($lng['error']['setlessthanalreadyused'], 'email quota');
|
||||
}
|
||||
if ($email_autoresponder != $result['email_autoresponder'] && $email_autoresponder < $result['email_autoresponder_used']) {
|
||||
$res_warning .= sprintf($lng['error']['setlessthanalreadyused'], 'email autoresponder');
|
||||
}
|
||||
if ($ftps != $result['ftps'] && $ftps < $result['ftps_used']) {
|
||||
$res_warning .= sprintf($lng['error']['setlessthanalreadyused'], 'ftps');
|
||||
}
|
||||
@@ -735,9 +679,6 @@ if ($page == 'admins'
|
||||
if ($mysqls != $result['mysqls'] && $mysqls < $result['mysqls_used']) {
|
||||
$res_warning .= sprintf($lng['error']['setlessthanalreadyused'], 'mysqls');
|
||||
}
|
||||
if ($number_of_aps_packages != $result['aps_packages'] && $number_of_aps_packages < $result['aps_packages_used']) {
|
||||
$res_warning .= sprintf($lng['error']['setlessthanalreadyused'], 'aps packages');
|
||||
}
|
||||
|
||||
if ($res_warning != "") {
|
||||
$link = '';
|
||||
@@ -770,9 +711,6 @@ if ($page == 'admins'
|
||||
'mysqls' => $mysqls,
|
||||
'ip' => $ipaddress,
|
||||
'deactivated' => $deactivated,
|
||||
'can_manage_aps_packages' => $can_manage_aps_packages,
|
||||
'aps_packages' => $number_of_aps_packages,
|
||||
'autoresponder' => $email_autoresponder,
|
||||
'adminid' => $id
|
||||
);
|
||||
|
||||
@@ -800,10 +738,7 @@ if ($page == 'admins'
|
||||
`tickets_see_all` = :tickets_see_all,
|
||||
`mysqls` = :mysqls,
|
||||
`ip` = :ip,
|
||||
`deactivated` = :deactivated,
|
||||
`can_manage_aps_packages` = :can_manage_aps_packages,
|
||||
`aps_packages` = :aps_packages,
|
||||
`email_autoresponder` = :autoresponder
|
||||
`deactivated` = :deactivated
|
||||
WHERE `adminid` = :adminid
|
||||
");
|
||||
Database::pexecute($upd_stmt, $upd_data);
|
||||
@@ -863,11 +798,6 @@ if ($page == 'admins'
|
||||
$result['email_quota'] = '';
|
||||
}
|
||||
|
||||
$email_autoresponder_ul = makecheckbox('email_autoresponder_ul', $lng['customer']['unlimited'], '-1', false, $result['email_autoresponder'], true, true);
|
||||
if ($result['email_autoresponder'] == '-1') {
|
||||
$result['email_autoresponder'] = '';
|
||||
}
|
||||
|
||||
$ftps_ul = makecheckbox('ftps_ul', $lng['customer']['unlimited'], '-1', false, $result['ftps'], true, true);
|
||||
if ($result['ftps'] == '-1') {
|
||||
$result['ftps'] = '';
|
||||
@@ -883,11 +813,6 @@ if ($page == 'admins'
|
||||
$result['mysqls'] = '';
|
||||
}
|
||||
|
||||
$number_of_aps_packages_ul = makecheckbox('number_of_aps_packages_ul', $lng['customer']['unlimited'], '-1', false, $result['aps_packages'], true, true);
|
||||
if ($result['aps_packages'] == '-1') {
|
||||
$result['aps_packages'] = '';
|
||||
}
|
||||
|
||||
$language_options = '';
|
||||
while (list($language_file, $language_name) = each($languages)) {
|
||||
$language_options.= makeoption($language_name, $language_file, $result['def_language'], true);
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Panel
|
||||
*
|
||||
*/
|
||||
|
||||
// Required code
|
||||
|
||||
define('AREA', 'admin');
|
||||
require './lib/init.php';
|
||||
$Id = 0;
|
||||
|
||||
if(isset($_GET['id']))$Id = (int)$_GET['id'];
|
||||
|
||||
if(isset($_POST['id']))$Id = (int)$_POST['id'];
|
||||
eval("echo \"" . getTemplate("aps/header") . "\";");
|
||||
$Aps = new ApsParser($userinfo, $settings);
|
||||
$Aps->MainHandler($action);
|
||||
eval("echo \"" . getTemplate("aps/footer") . "\";");
|
||||
|
||||
@@ -47,10 +47,6 @@ if ($page == 'customers'
|
||||
'c.traffic_used' => $lng['customer']['traffic'] . ' (' . $lng['panel']['used'] . ')'
|
||||
);
|
||||
|
||||
if ($settings['system']['backup_enabled'] == '1') {
|
||||
$field['c.backup_allowed'] = $lng['backup_allowed'];
|
||||
}
|
||||
|
||||
$paging = new paging($userinfo, TABLE_PANEL_CUSTOMERS, $fields, $settings['panel']['paging'], $settings['panel']['natsorting']);
|
||||
$customers = '';
|
||||
$result_stmt = Database::prepare("
|
||||
@@ -120,7 +116,7 @@ if ($page == 'customers'
|
||||
$islocked = 1;
|
||||
}
|
||||
|
||||
$row = str_replace_array('-1', 'UL', $row, 'diskspace traffic mysqls emails email_accounts email_forwarders ftps tickets subdomains email_autoresponder');
|
||||
$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") . "\";");
|
||||
$count++;
|
||||
@@ -247,36 +243,20 @@ if ($page == 'customers'
|
||||
Database::needRoot(true);
|
||||
$last_dbserver = 0;
|
||||
|
||||
$dbm = new DbManager($settings);
|
||||
|
||||
while ($row_database = $databases_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
|
||||
if ($last_dbserver != $row_database['dbserver']) {
|
||||
Database::needRoot(true, $row_database['dbserver']);
|
||||
Database::query('FLUSH PRIVILEGES;');
|
||||
$dbm->getManager()->flushPrivileges();
|
||||
$last_dbserver = $row_database['dbserver'];
|
||||
}
|
||||
|
||||
if (Database::getAttribute(PDO::ATTR_SERVER_VERSION) < '5.0.2') {
|
||||
// failsafe if user has been deleted manually (requires MySQL 4.1.2+)
|
||||
$stmt = Database::prepare("REVOKE ALL PRIVILEGES, GRANT OPTION FROM `".$row_database['databasename']."`");
|
||||
Database::pexecute($stmt, array(), false);
|
||||
}
|
||||
|
||||
$host_res_stmt = Database::prepare("
|
||||
SELECT `Host` FROM `mysql`.`user`
|
||||
WHERE `User` = :dbname"
|
||||
);
|
||||
Database::pexecute($host_res_stmt, array('dbname' => $row_database['databasename']));
|
||||
while ($host = $host_res_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
// as of MySQL 5.0.2 this also revokes privileges. (requires MySQL 4.1.2+)
|
||||
$drop_stmt = Database::prepare("DROP USER :dbname@:host");
|
||||
Database::pexecute($drop_stmt, array(':dbname' => $row_database['databasename'], ':host' => $host['Host']), false);
|
||||
}
|
||||
|
||||
$drop_stmt = Database::prepare("DROP DATABASE IF EXISTS `".$row_database['databasename']."`");
|
||||
Database::pexecute($drop_stmt);
|
||||
$dbm->getManager()->deleteDatabase($row_database['databasename']);
|
||||
}
|
||||
|
||||
Database::query('FLUSH PRIVILEGES;');
|
||||
$dbm->getManager()->flushPrivileges();
|
||||
Database::needRoot(false);
|
||||
$stmt = Database::prepare("DELETE FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `customerid` = :id");
|
||||
Database::pexecute($stmt, array('id' => $id));
|
||||
@@ -307,8 +287,6 @@ if ($page == 'customers'
|
||||
Database::pexecute($stmt, array('id' => $id));
|
||||
$stmt = Database::prepare("DELETE FROM `" . TABLE_FTP_USERS . "` WHERE `customerid` = :id");
|
||||
Database::pexecute($stmt, array('id' => $id));
|
||||
$stmt = Database::prepare("DELETE FROM `" . TABLE_MAIL_AUTORESPONDER . "` WHERE `customerid` = :id");
|
||||
Database::pexecute($stmt, array('id' => $id));
|
||||
|
||||
// Delete all waiting "create user" -tasks for this user, #276
|
||||
// Note: the WHERE selects part of a serialized array, but it should be safe this way
|
||||
@@ -318,26 +296,6 @@ if ($page == 'customers'
|
||||
);
|
||||
Database::pexecute($del_stmt, array(':loginname' => "%:{$result['loginname']};%"));
|
||||
|
||||
// remove everything APS-related, #216
|
||||
$apsresult_stmt = Database::prepare("SELECT `ID` FROM `".TABLE_APS_INSTANCES."` WHERE `CustomerID` = :id");
|
||||
Database::pexecute($apsresult_stmt, array('id' => $id));
|
||||
|
||||
while ($apsrow = $apsresult_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
// remove all package related settings
|
||||
$del_stmt = Database::prepare("DELETE FROM `".TABLE_APS_SETTINGS."` WHERE `InstanceID` = :iid");
|
||||
Database::pexecute($del_stmt, array('iid' => $apsrow['ID']));
|
||||
// maybe some leftovers in the tasks
|
||||
$del_stmt = Database::prepare("DELETE FROM `".TABLE_APS_TASKS."` WHERE `InstanceID` = :iid");
|
||||
Database::pexecute($del_stmt, array('iid' => $apsrow['ID']));
|
||||
}
|
||||
// now remove all user instances
|
||||
$stmt = Database::prepare("DELETE FROM `".TABLE_APS_INSTANCES."` WHERE `CustomerID` = :id'");
|
||||
Database::pexecute($stmt, array('id' => $id));
|
||||
// eventually some temp-setting-leftovers
|
||||
$stmt = Database::prepare("DELETE FROM `".TABLE_APS_TEMP_SETTINGS."` WHERE `CustomerID` = :id");
|
||||
Database::pexecute($stmt, array('id' => $id));
|
||||
// eof APS-related removings, #216
|
||||
|
||||
$admin_update_query = "UPDATE `" . TABLE_PANEL_ADMINS . "` SET `customers_used` = `customers_used` - 1 ";
|
||||
$admin_update_query.= ", `domains_used` = `domains_used` - 0" . (int)($domains_deleted - $result['subdomains_used']);
|
||||
|
||||
@@ -361,10 +319,6 @@ if ($page == 'customers'
|
||||
$admin_update_query.= ", `email_quota_used` = `email_quota_used` - 0" . (int)$result['email_quota'];
|
||||
}
|
||||
|
||||
if ($result['email_autoresponder'] != '-1') {
|
||||
$admin_update_query.= ", `email_autoresponder_used` = `email_autoresponder_used` - 0" . (int)$result['email_autoresponder'];
|
||||
}
|
||||
|
||||
if ($result['subdomains'] != '-1') {
|
||||
$admin_update_query.= ", `subdomains_used` = `subdomains_used` - 0" . (int)$result['subdomains'];
|
||||
}
|
||||
@@ -377,10 +331,6 @@ if ($page == 'customers'
|
||||
$admin_update_query.= ", `tickets_used` = `tickets_used` - 0" . (int)$result['tickets'];
|
||||
}
|
||||
|
||||
if ($result['aps_packages'] != '-1') {
|
||||
$admin_update_query.= ", `aps_packages_used` = `aps_packages_used` - 0" . (int)$result['aps_packages'];
|
||||
}
|
||||
|
||||
if (($result['diskspace'] / 1024) != '-1') {
|
||||
$admin_update_query.= ", `diskspace_used` = `diskspace_used` - 0" . (int)$result['diskspace'];
|
||||
}
|
||||
@@ -485,15 +435,6 @@ if ($page == 'customers'
|
||||
$email_quota = - 1;
|
||||
}
|
||||
|
||||
if ($settings['autoresponder']['autoresponder_active'] == '1') {
|
||||
$email_autoresponder = intval_ressource($_POST['email_autoresponder']);
|
||||
if (isset($_POST['email_autoresponder_ul'])) {
|
||||
$email_autoresponder = - 1;
|
||||
}
|
||||
} else {
|
||||
$email_autoresponder = 0;
|
||||
}
|
||||
|
||||
$email_imap = 0;
|
||||
if (isset($_POST['email_imap'])) {
|
||||
$email_imap = intval_ressource($_POST['email_imap']);
|
||||
@@ -524,15 +465,6 @@ if ($page == 'customers'
|
||||
$mysqls = - 1;
|
||||
}
|
||||
|
||||
if ($settings['aps']['aps_active'] == '1') {
|
||||
$number_of_aps_packages = intval_ressource($_POST['number_of_aps_packages']);
|
||||
if (isset($_POST['number_of_aps_packages_ul'])) {
|
||||
$number_of_aps_packages = - 1;
|
||||
}
|
||||
} else {
|
||||
$number_of_aps_packages = 0;
|
||||
}
|
||||
|
||||
$createstdsubdomain = 0;
|
||||
if(isset($_POST['createstdsubdomain'])) {
|
||||
$createstdsubdomain = intval($_POST['createstdsubdomain']);
|
||||
@@ -545,15 +477,6 @@ if ($page == 'customers'
|
||||
$password = validatePassword($password);
|
||||
}
|
||||
|
||||
$backup_allowed = 0;
|
||||
if (isset($_POST['backup_allowed'])) {
|
||||
$backup_allowed = intval($_POST['backup_allowed']);
|
||||
}
|
||||
|
||||
if ($backup_allowed != 0) {
|
||||
$backup_allowed = 1;
|
||||
}
|
||||
|
||||
// gender out of range? [0,2]
|
||||
if ($gender < 0 || $gender > 2) {
|
||||
$gender = 0;
|
||||
@@ -588,22 +511,18 @@ if ($page == 'customers'
|
||||
|| ((($userinfo['email_accounts_used'] + $email_accounts) > $userinfo['email_accounts']) && $userinfo['email_accounts'] != '-1')
|
||||
|| ((($userinfo['email_forwarders_used'] + $email_forwarders) > $userinfo['email_forwarders']) && $userinfo['email_forwarders'] != '-1')
|
||||
|| ((($userinfo['email_quota_used'] + $email_quota) > $userinfo['email_quota']) && $userinfo['email_quota'] != '-1' && $settings['system']['mail_quota_enabled'] == '1')
|
||||
|| ((($userinfo['email_autoresponder_used'] + $email_autoresponder) > $userinfo['email_autoresponder']) && $userinfo['email_autoresponder'] != '-1' && $settings['autoresponder']['autoresponder_active'] == '1')
|
||||
|| ((($userinfo['ftps_used'] + $ftps) > $userinfo['ftps']) && $userinfo['ftps'] != '-1')
|
||||
|| ((($userinfo['tickets_used'] + $tickets) > $userinfo['tickets']) && $userinfo['tickets'] != '-1')
|
||||
|| ((($userinfo['subdomains_used'] + $subdomains) > $userinfo['subdomains']) && $userinfo['subdomains'] != '-1')
|
||||
|| ((($userinfo['aps_packages_used'] + $number_of_aps_packages) > $userinfo['aps_packages']) && $userinfo['aps_packages'] != '-1' && $settings['aps']['aps_active'] == '1')
|
||||
|| (($diskspace / 1024) == '-1' && ($userinfo['diskspace'] / 1024) != '-1')
|
||||
|| ($mysqls == '-1' && $userinfo['mysqls'] != '-1')
|
||||
|| ($emails == '-1' && $userinfo['emails'] != '-1')
|
||||
|| ($email_accounts == '-1' && $userinfo['email_accounts'] != '-1')
|
||||
|| ($email_forwarders == '-1' && $userinfo['email_forwarders'] != '-1')
|
||||
|| ($email_quota == '-1' && $userinfo['email_quota'] != '-1' && $settings['system']['mail_quota_enabled'] == '1')
|
||||
|| ($email_autoresponder == '-1' && $userinfo['email_autoresponder'] != '-1' && $settings['autoresponder']['autoresponder_active'] == '1')
|
||||
|| ($ftps == '-1' && $userinfo['ftps'] != '-1')
|
||||
|| ($tickets == '-1' && $userinfo['tickets'] != '-1')
|
||||
|| ($subdomains == '-1' && $userinfo['subdomains'] != '-1')
|
||||
|| ($number_of_aps_packages == '-1' && $userinfo['aps_packages'] != '-1')
|
||||
) {
|
||||
standard_error('youcantallocatemorethanyouhave');
|
||||
exit;
|
||||
@@ -728,10 +647,7 @@ if ($page == 'customers'
|
||||
'phpenabled' => $phpenabled,
|
||||
'imap' => $email_imap,
|
||||
'pop3' => $email_pop3,
|
||||
'aps' => $number_of_aps_packages,
|
||||
'perlenabled' => $perlenabled,
|
||||
'email_autoresponder' => $email_autoresponder,
|
||||
'backup_allowed' => $backup_allowed,
|
||||
'theme' => $theme
|
||||
);
|
||||
|
||||
@@ -768,10 +684,7 @@ if ($page == 'customers'
|
||||
`phpenabled` = :phpenabled,
|
||||
`imap` = :imap,
|
||||
`pop3` = :pop3,
|
||||
`aps_packages` = :aps,
|
||||
`perlenabled` = :perlenabled,
|
||||
`email_autoresponder` = :email_autoresponder,
|
||||
`backup_allowed` = :backup_allowed,
|
||||
`theme` = :theme"
|
||||
);
|
||||
Database::pexecute($ins_stmt, $ins_data);
|
||||
@@ -800,12 +713,6 @@ if ($page == 'customers'
|
||||
$admin_update_query.= ", `email_quota_used` = `email_quota_used` + 0" . (int)$email_quota;
|
||||
}
|
||||
|
||||
if ($email_autoresponder != '-1'
|
||||
&& $settings['autoresponder']['autoresponder_active'] == 1
|
||||
) {
|
||||
$admin_update_query.= ", `email_autoresponder_used` = `email_autoresponder_used` + 0" . (int)$email_autoresponder;
|
||||
}
|
||||
|
||||
if ($subdomains != '-1') {
|
||||
$admin_update_query.= ", `subdomains_used` = `subdomains_used` + 0" . (int)$subdomains;
|
||||
}
|
||||
@@ -824,10 +731,6 @@ if ($page == 'customers'
|
||||
$admin_update_query.= ", `diskspace_used` = `diskspace_used` + 0" . (int)$diskspace;
|
||||
}
|
||||
|
||||
if ($number_of_aps_packages != '-1') {
|
||||
$admin_update_query.= ", `aps_packages_used` = `aps_packages_used` + 0" . (int)$number_of_aps_packages;
|
||||
}
|
||||
|
||||
$admin_update_query.= " WHERE `adminid` = '" . (int)$userinfo['adminid'] . "'";
|
||||
Database::query($admin_update_query);
|
||||
|
||||
@@ -917,6 +820,8 @@ if ($page == 'customers'
|
||||
Database::pexecute($ins_stmt, array('name' => $loginname));
|
||||
$log->logAction(ADM_ACTION, LOG_NOTICE, "automatically added ftp-account for user '" . $loginname . "'");
|
||||
|
||||
$_stdsubdomain = '';
|
||||
|
||||
if ($createstdsubdomain == '1') {
|
||||
|
||||
if (isset($settings['system']['stdsubdomain'])
|
||||
@@ -968,13 +873,28 @@ if ($page == 'customers'
|
||||
|
||||
if ($sendpassword == '1') {
|
||||
|
||||
$srv_hostname = $settings['system']['hostname'];
|
||||
if ($settings['system']['froxlordirectlyviahostname'] == '0') {
|
||||
$srv_hostname .= '/froxlor';
|
||||
}
|
||||
|
||||
$srv_ip_stmt = Database::prepare("
|
||||
SELECT ip, port FROM `".TABLE_PANEL_IPSANDPORTS."`
|
||||
WHERE `id` = :defaultip
|
||||
");
|
||||
$srv_ip = Database::pexecute_first($srv_ip_stmt, array('defaultip' => $settings['system']['defaultip']));
|
||||
|
||||
$replace_arr = array(
|
||||
'FIRSTNAME' => $firstname,
|
||||
'NAME' => $name,
|
||||
'COMPANY' => $company,
|
||||
'SALUTATION' => getCorrectUserSalutation(array('firstname' => $firstname, 'name' => $name, 'company' => $company)),
|
||||
'USERNAME' => $loginname,
|
||||
'PASSWORD' => $password
|
||||
'PASSWORD' => $password,
|
||||
'SERVER_HOSTNAME' => $srv_hostname,
|
||||
'SERVER_IP' => isset($srv_ip['ip']) ? $srv_ip['ip'] : '',
|
||||
'SERVER_PORT' => isset($srv_ip['port']) ? $srv_ip['port'] : '',
|
||||
'DOMAINNAME' => $_stdsubdomain
|
||||
);
|
||||
|
||||
// Get mail templates from database; the ones from 'admin' are fetched for fallback
|
||||
@@ -1032,11 +952,9 @@ if ($page == 'customers'
|
||||
$email_accounts_ul = makecheckbox('email_accounts_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$email_forwarders_ul = makecheckbox('email_forwarders_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$email_quota_ul = makecheckbox('email_quota_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$email_autoresponder_ul = makecheckbox('email_autoresponder_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$ftps_ul = makecheckbox('ftps_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$tickets_ul = makecheckbox('tickets_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$mysqls_ul = makecheckbox('mysqls_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
$number_of_aps_packages_ul = makecheckbox('number_of_aps_packages_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
|
||||
|
||||
$gender_options = makeoption($lng['gender']['undef'], 0, true, true, true);
|
||||
$gender_options .= makeoption($lng['gender']['male'], 1, null, true, true);
|
||||
@@ -1125,15 +1043,6 @@ if ($page == 'customers'
|
||||
$email_quota = - 1;
|
||||
}
|
||||
|
||||
if ($settings['autoresponder']['autoresponder_active'] == '1') {
|
||||
$email_autoresponder = intval_ressource($_POST['email_autoresponder']);
|
||||
if (isset($_POST['email_autoresponder_ul'])) {
|
||||
$email_autoresponder = - 1;
|
||||
}
|
||||
} else {
|
||||
$email_autoresponder = 0;
|
||||
}
|
||||
|
||||
$email_imap = 0;
|
||||
if (isset($_POST['email_imap'])) {
|
||||
$email_imap = intval_ressource($_POST['email_imap']);
|
||||
@@ -1159,14 +1068,6 @@ if ($page == 'customers'
|
||||
$tickets = - 1;
|
||||
}
|
||||
|
||||
$backup_allowed = 0;
|
||||
if (isset($_POST['backup_allowed'])) {
|
||||
$backup_allowed = intval($_POST['backup_allowed']);
|
||||
}
|
||||
if ($backup_allowed != '0') {
|
||||
$backup_allowed = 1;
|
||||
}
|
||||
|
||||
// gender out of range? [0,2]
|
||||
if ($gender < 0 || $gender > 2) {
|
||||
$gender = 0;
|
||||
@@ -1180,15 +1081,6 @@ if ($page == 'customers'
|
||||
$mysqls = - 1;
|
||||
}
|
||||
|
||||
if ($settings['aps']['aps_active'] == '1') {
|
||||
$number_of_aps_packages = intval_ressource($_POST['number_of_aps_packages']);
|
||||
if (isset($_POST['number_of_aps_packages_ul'])) {
|
||||
$number_of_aps_packages = - 1;
|
||||
}
|
||||
} else {
|
||||
$number_of_aps_packages = 0;
|
||||
}
|
||||
|
||||
$createstdsubdomain = 0;
|
||||
if (isset($_POST['createstdsubdomain'])) {
|
||||
$createstdsubdomain = intval($_POST['createstdsubdomain']);
|
||||
@@ -1218,22 +1110,18 @@ if ($page == 'customers'
|
||||
|| ((($userinfo['email_accounts_used'] + $email_accounts - $result['email_accounts']) > $userinfo['email_accounts']) && $userinfo['email_accounts'] != '-1')
|
||||
|| ((($userinfo['email_forwarders_used'] + $email_forwarders - $result['email_forwarders']) > $userinfo['email_forwarders']) && $userinfo['email_forwarders'] != '-1')
|
||||
|| ((($userinfo['email_quota_used'] + $email_quota - $result['email_quota']) > $userinfo['email_quota']) && $userinfo['email_quota'] != '-1' && $settings['system']['mail_quota_enabled'] == '1')
|
||||
|| ((($userinfo['email_autoresponder_used'] + $email_autoresponder - $result['email_autoresponder']) > $userinfo['email_autoresponder']) && $userinfo['email_autoresponder'] != '-1' && $settings['autoresponder']['autoresponder_active'] == '1')
|
||||
|| ((($userinfo['ftps_used'] + $ftps - $result['ftps']) > $userinfo['ftps']) && $userinfo['ftps'] != '-1')
|
||||
|| ((($userinfo['tickets_used'] + $tickets - $result['tickets']) > $userinfo['tickets']) && $userinfo['tickets'] != '-1')
|
||||
|| ((($userinfo['subdomains_used'] + $subdomains - $result['subdomains']) > $userinfo['subdomains']) && $userinfo['subdomains'] != '-1')
|
||||
|| (($diskspace / 1024) == '-1' && ($userinfo['diskspace'] / 1024) != '-1')
|
||||
|| ((($userinfo['aps_packages'] + $number_of_aps_packages - $result['aps_packages']) > $userinfo['aps_packages']) && $userinfo['aps_packages'] != '-1' && $settings['aps']['aps_active'] == '1')
|
||||
|| ($mysqls == '-1' && $userinfo['mysqls'] != '-1')
|
||||
|| ($emails == '-1' && $userinfo['emails'] != '-1')
|
||||
|| ($email_accounts == '-1' && $userinfo['email_accounts'] != '-1')
|
||||
|| ($email_forwarders == '-1' && $userinfo['email_forwarders'] != '-1')
|
||||
|| ($email_quota == '-1' && $userinfo['email_quota'] != '-1' && $settings['system']['mail_quota_enabled'] == '1')
|
||||
|| ($email_autoresponder == '-1' && $userinfo['email_autoresponder'] != '-1' && $settings['autoresponder']['autoresponder_active'] == '1')
|
||||
|| ($ftps == '-1' && $userinfo['ftps'] != '-1')
|
||||
|| ($tickets == '-1' && $userinfo['tickets'] != '-1')
|
||||
|| ($subdomains == '-1' && $userinfo['subdomains'] != '-1')
|
||||
|| ($number_of_aps_packages == '-1' && $userinfo['aps_packages'] != '-1')
|
||||
) {
|
||||
standard_error('youcantallocatemorethanyouhave');
|
||||
exit;
|
||||
@@ -1376,11 +1264,14 @@ if ($page == 'customers'
|
||||
|
||||
Database::needRoot(true);
|
||||
$last_dbserver = 0;
|
||||
|
||||
$dbm = new DbManager($settings);
|
||||
|
||||
// For each of them
|
||||
while ($row_database = $databases_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
|
||||
if ($last_dbserver != $row_database['dbserver']) {
|
||||
Database::query('FLUSH PRIVILEGES;');
|
||||
$dbm->getManager()->flushPrivileges();
|
||||
Database::needRoot(true, $row_database['dbserver']);
|
||||
$last_dbserver = $row_database['dbserver'];
|
||||
}
|
||||
@@ -1391,19 +1282,16 @@ if ($page == 'customers'
|
||||
// Prevent access, if deactivated
|
||||
if ($deactivated) {
|
||||
// failsafe if user has been deleted manually (requires MySQL 4.1.2+)
|
||||
$stmt = Database::prepare("REVOKE ALL PRIVILEGES, GRANT OPTION FROM `".$row_database['databasename']."`");
|
||||
Database::pexecute($stmt, array(), false);
|
||||
|
||||
$dbm->getManager()->disableUser($row_database['databasename'], $mysql_access_host);
|
||||
} else {
|
||||
// Otherwise grant access
|
||||
Database::query('GRANT ALL PRIVILEGES ON `' . $row_database['databasename'] .'`.* TO `' . $row_database['databasename'] . '`@`' . $mysql_access_host . '`');
|
||||
Database::query('GRANT ALL PRIVILEGES ON `' . str_replace('_', '\_', $row_database['databasename']) . '` . * TO `' . $row_database['databasename'] . '`@`' . $mysql_access_host . '`');
|
||||
$dbm->getManager()->enableUser($row_database['databasename'], $mysql_access_host);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* At last flush the new privileges */
|
||||
Database::query('FLUSH PRIVILEGES;');
|
||||
// At last flush the new privileges
|
||||
$dbm->getManager()->flushPrivileges();
|
||||
Database::needRoot(false);
|
||||
|
||||
$log->logAction(ADM_ACTION, LOG_INFO, "deactivated user '" . $result['loginname'] . "'");
|
||||
@@ -1451,10 +1339,7 @@ if ($page == 'customers'
|
||||
'phpenabled' => $phpenabled,
|
||||
'imap' => $email_imap,
|
||||
'pop3' => $email_pop3,
|
||||
'aps' => $number_of_aps_packages,
|
||||
'perlenabled' => $perlenabled,
|
||||
'email_autoresponder' => $email_autoresponder,
|
||||
'backup_allowed' => $backup_allowed
|
||||
'perlenabled' => $perlenabled
|
||||
);
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET
|
||||
@@ -1485,10 +1370,7 @@ if ($page == 'customers'
|
||||
`email_quota` = :email_quota,
|
||||
`imap` = :imap,
|
||||
`pop3` = :pop3,
|
||||
`aps_packages` = :aps,
|
||||
`perlenabled` = :perlenabled,
|
||||
`email_autoresponder` = :email_autoresponder,
|
||||
`backup_allowed` = :backup_allowed
|
||||
`perlenabled` = :perlenabled
|
||||
WHERE `customerid` = :customerid"
|
||||
);
|
||||
Database::pexecute($upd_stmt, $upd_data);
|
||||
@@ -1553,17 +1435,6 @@ if ($page == 'customers'
|
||||
}
|
||||
}
|
||||
|
||||
if ($email_autoresponder != '-1' || $result['email_autoresponder'] != '-1') {
|
||||
$admin_update_query.= ", `email_autoresponder_used` = `email_autoresponder_used` ";
|
||||
|
||||
if ($email_autoresponder != '-1') {
|
||||
$admin_update_query.= " + 0" . (int)$email_autoresponder . " ";
|
||||
}
|
||||
if ($result['email_autoresponder'] != '-1') {
|
||||
$admin_update_query.= " - 0" . (int)$result['email_autoresponder'] . " ";
|
||||
}
|
||||
}
|
||||
|
||||
if ($subdomains != '-1' || $result['subdomains'] != '-1') {
|
||||
$admin_update_query.= ", `subdomains_used` = `subdomains_used` ";
|
||||
|
||||
@@ -1608,17 +1479,6 @@ if ($page == 'customers'
|
||||
}
|
||||
}
|
||||
|
||||
if ($number_of_aps_packages != '-1' || $result['aps_packages'] != '-1') {
|
||||
$admin_update_query.= ", `aps_packages_used` = `aps_packages_used` ";
|
||||
|
||||
if ($number_of_aps_packages != '-1') {
|
||||
$admin_update_query.= " + 0" . (int)$number_of_aps_packages . " ";
|
||||
}
|
||||
if ($result['aps_packages'] != '-1') {
|
||||
$admin_update_query.= " - 0" . (int)$result['aps_packages'] . " ";
|
||||
}
|
||||
}
|
||||
|
||||
$admin_update_query.= " WHERE `adminid` = '" . (int)$result['adminid'] . "'";
|
||||
Database::query($admin_update_query);
|
||||
$log->logAction(ADM_ACTION, LOG_INFO, "edited user '" . $result['loginname'] . "'");
|
||||
@@ -1676,11 +1536,6 @@ if ($page == 'customers'
|
||||
$result['email_quota'] = '';
|
||||
}
|
||||
|
||||
$email_autoresponder_ul = makecheckbox('email_autoresponder_ul', $lng['customer']['unlimited'], '-1', false, $result['email_autoresponder'], true, true);
|
||||
if ($result['email_autoresponder'] == '-1') {
|
||||
$result['email_autoresponder'] = '';
|
||||
}
|
||||
|
||||
$ftps_ul = makecheckbox('ftps_ul', $lng['customer']['unlimited'], '-1', false, $result['ftps'], true, true);
|
||||
if ($result['ftps'] == '-1') {
|
||||
$result['ftps'] = '';
|
||||
@@ -1696,11 +1551,6 @@ if ($page == 'customers'
|
||||
$result['mysqls'] = '';
|
||||
}
|
||||
|
||||
$number_of_aps_packages_ul = makecheckbox('number_of_aps_packages_ul', $lng['customer']['unlimited'], '-1', false, $result['aps_packages'], true, true);
|
||||
if ($result['aps_packages'] == '-1') {
|
||||
$result['aps_packages'] = '';
|
||||
}
|
||||
|
||||
$result = htmlentities_array($result);
|
||||
|
||||
$gender_options = makeoption($lng['gender']['undef'], 0, ($result['gender'] == '0' ? true : false), true, true);
|
||||
|
||||
@@ -179,11 +179,6 @@ 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');
|
||||
}
|
||||
|
||||
// check for deletion of main-domains which are logically subdomains, #329
|
||||
$rsd_sql = '';
|
||||
$remove_subbutmain_domains = isset($_POST['delete_userfiles']) ? 1 : 0;
|
||||
|
||||
@@ -60,12 +60,10 @@ if ($page == 'overview') {
|
||||
SUM(`email_accounts_used`) AS `email_accounts_used`,
|
||||
SUM(`email_forwarders_used`) AS `email_forwarders_used`,
|
||||
SUM(`email_quota_used`) AS `email_quota_used`,
|
||||
SUM(`email_autoresponder_used`) AS `email_autoresponder_used`,
|
||||
SUM(`ftps_used`) AS `ftps_used`,
|
||||
SUM(`tickets_used`) AS `tickets_used`,
|
||||
SUM(`subdomains_used`) AS `subdomains_used`,
|
||||
SUM(`traffic_used`) AS `traffic_used`,
|
||||
SUM(`aps_packages_used`) AS `aps_packages_used`
|
||||
SUM(`traffic_used`) AS `traffic_used`
|
||||
FROM `" . TABLE_PANEL_CUSTOMERS . "`" . ($userinfo['customers_see_all'] ? '' : " WHERE `adminid` = :adminid "));
|
||||
$overview = Database::pexecute_first($overview_stmt, array('adminid' => $userinfo['adminid']));
|
||||
|
||||
@@ -133,7 +131,7 @@ if ($page == 'overview') {
|
||||
$userinfo['diskspace_used'] = round($userinfo['diskspace_used'] / 1024, $settings['panel']['decimal_places']);
|
||||
$userinfo['traffic'] = round($userinfo['traffic'] / (1024 * 1024), $settings['panel']['decimal_places']);
|
||||
$userinfo['traffic_used'] = round($userinfo['traffic_used'] / (1024 * 1024), $settings['panel']['decimal_places']);
|
||||
$userinfo = str_replace_array('-1', $lng['customer']['unlimited'], $userinfo, 'customers domains diskspace traffic mysqls emails email_accounts email_forwarders email_quota email_autoresponder ftps tickets subdomains aps_packages');
|
||||
$userinfo = str_replace_array('-1', $lng['customer']['unlimited'], $userinfo, 'customers domains diskspace traffic mysqls emails email_accounts email_forwarders email_quota ftps tickets subdomains');
|
||||
|
||||
$cron_last_runs = getCronjobsLastRun();
|
||||
$outstanding_tasks = getOutstandingTasks();
|
||||
|
||||
@@ -153,7 +153,7 @@ if ($page == 'ipsandports'
|
||||
$docroot = validate($_POST['docroot'], 'docroot');
|
||||
|
||||
if ((int)$settings['system']['use_ssl'] == 1) {
|
||||
$ssl = intval($_POST['ssl']);
|
||||
$ssl = isset($_POST['ssl']) ? intval($_POST['ssl']) : 0;
|
||||
$ssl_cert_file = validate($_POST['ssl_cert_file'], 'ssl_cert_file');
|
||||
$ssl_key_file = validate($_POST['ssl_key_file'], 'ssl_key_file');
|
||||
$ssl_ca_file = validate($_POST['ssl_ca_file'], 'ssl_ca_file');
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Panel
|
||||
*
|
||||
*/
|
||||
|
||||
define('AREA', 'customer');
|
||||
require './lib/init.php';
|
||||
|
||||
$Id = 0;
|
||||
if (isset($_GET['id'])) {
|
||||
$Id = (int)$_GET['id'];
|
||||
}
|
||||
if (isset($_POST['id'])) {
|
||||
$Id = (int)$_POST['id'];
|
||||
}
|
||||
|
||||
eval("echo \"" . getTemplate('aps/header') . "\";");
|
||||
$Aps = new ApsParser($userinfo, $settings);
|
||||
$Aps->MainHandler($action);
|
||||
eval("echo \"" . getTemplate('aps/footer') . "\";");
|
||||
@@ -1,323 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Panel
|
||||
*
|
||||
*/
|
||||
|
||||
define('AREA', 'customer');
|
||||
require './lib/init.php';
|
||||
|
||||
if ($action == 'add') {
|
||||
// Create new autoresponder
|
||||
if (isset($_POST['send'])
|
||||
&& $_POST['send'] == 'send'
|
||||
) {
|
||||
$account = trim($_POST['account']);
|
||||
$subject = trim($_POST['subject']);
|
||||
$message = trim($_POST['message']);
|
||||
|
||||
$date_from_off = isset($_POST['date_from_off']) ? -1 : 0;
|
||||
$date_until_off = isset($_POST['date_until_off']) ? -1 : 0;
|
||||
|
||||
/*
|
||||
* @TODO validate date (DD-MM-YYYY)
|
||||
*/
|
||||
$ts_from = -1;
|
||||
$ts_until = -1;
|
||||
|
||||
if ($date_from_off > -1) {
|
||||
$date_from = $_POST['date_from'];
|
||||
$ts_from = mktime(0, 0, 0, substr($date_from, 3, 2), substr($date_from, 0, 2), substr($date_from, 6, 4));
|
||||
}
|
||||
if ($date_until_off > -1) {
|
||||
$date_until = $_POST['date_until'];
|
||||
$ts_until = mktime(0, 0, 0, substr($date_until, 3, 2), substr($date_until, 0, 2), substr($date_until, 6, 4));
|
||||
}
|
||||
|
||||
if (empty($account)
|
||||
|| empty($subject)
|
||||
|| empty($message)
|
||||
) {
|
||||
standard_error('missingfields');
|
||||
}
|
||||
|
||||
// Does account exist?
|
||||
$stmt = Database::prepare("SELECT `email` FROM `" . TABLE_MAIL_USERS . "`
|
||||
WHERE `customerid` = :customerid
|
||||
AND `email` = :account
|
||||
LIMIT 0,1"
|
||||
);
|
||||
Database::pexecute($stmt, array("account" => $account, "customerid" => $userinfo['customerid']));
|
||||
if (Database::num_rows() == 0) {
|
||||
standard_error('accountnotexisting');
|
||||
}
|
||||
|
||||
// Does autoresponder exist?
|
||||
$stmt = Database::prepare("SELECT `email` FROM `" . TABLE_MAIL_AUTORESPONDER . "`
|
||||
WHERE `customerid` = :customerid
|
||||
AND `email` = :account
|
||||
LIMIT 0,1"
|
||||
);
|
||||
Database::pexecute($stmt, array("account" => $account, "customerid" => $userinfo['customerid']));
|
||||
if (Database::num_rows() == 1) {
|
||||
standard_error('autoresponderalreadyexists');
|
||||
}
|
||||
|
||||
// Create autoresponder
|
||||
$stmt = Database::prepare("INSERT INTO `" . TABLE_MAIL_AUTORESPONDER . "`
|
||||
SET `email` = :account,
|
||||
`message` = :message,
|
||||
`enabled` = :enabled,
|
||||
`date_from` = :date_from,
|
||||
`date_until` = :date_until,
|
||||
`subject` = :subject,
|
||||
`customerid` = :customerid"
|
||||
);
|
||||
$params = array(
|
||||
"account" => $account,
|
||||
"message" => $message,
|
||||
"enabled" => $_POST['active'],
|
||||
"date_from" => $ts_from,
|
||||
"date_until" => $ts_until,
|
||||
"subject" => $subject,
|
||||
"customerid" => $userinfo['customerid']
|
||||
);
|
||||
Database::pexecute($stmt, $params);
|
||||
|
||||
// Update email_autoresponder_used count
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_CUSTOMERS . "`
|
||||
SET `email_autoresponder_used` = `email_autoresponder_used` + 1
|
||||
WHERE `customerid` = :customerid"
|
||||
);
|
||||
Database::pexecute($stmt, array("customerid" => $userinfo['customerid']));
|
||||
redirectTo($filename, Array('s' => $s));
|
||||
}
|
||||
|
||||
// Get accounts
|
||||
$params = array("customerid" => $userinfo['customerid']);
|
||||
$acc_stmt = Database::prepare("SELECT `email` FROM `" . TABLE_MAIL_USERS . "`
|
||||
WHERE `customerid` = :customerid
|
||||
AND `email` NOT IN (SELECT `email` FROM `" . TABLE_MAIL_AUTORESPONDER . "`)
|
||||
ORDER BY email ASC"
|
||||
);
|
||||
Database::pexecute($acc_stmt, $params);
|
||||
if (Database::num_rows() == 0) {
|
||||
standard_error('noemailaccount');
|
||||
}
|
||||
|
||||
$accounts = '';
|
||||
while ($row = $acc_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$accounts .= '<option value="' . $row['email'] . '">' . $row['email'] . '</option>';
|
||||
}
|
||||
|
||||
$date_from_off = makecheckbox('date_from_off', $lng['panel']['not_activated'], '-1', false, '-1', true, true);
|
||||
$date_until_off = makecheckbox('date_until_off', $lng['panel']['not_activated'], '-1', false, '-1', true, true);
|
||||
|
||||
//$isactive = makeyesno('active', '1', '0', '1');
|
||||
|
||||
$autoresponder_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/autoresponder/formfield.autoresponder_add.php';
|
||||
$autoresponder_add_form = htmlform::genHTMLForm($autoresponder_add_data);
|
||||
|
||||
$title = $autoresponder_add_data['autoresponder_add']['title'];
|
||||
$image = $autoresponder_add_data['autoresponder_add']['image'];
|
||||
|
||||
eval("echo \"" . getTemplate('autoresponder/autoresponder_add') . "\";");
|
||||
} elseif ($action == 'edit') {
|
||||
// Edit autoresponder
|
||||
if (isset($_POST['send'])
|
||||
&& $_POST['send'] == 'send'
|
||||
) {
|
||||
$account = trim($_POST['account']);
|
||||
$subject = trim($_POST['subject']);
|
||||
$message = trim($_POST['message']);
|
||||
|
||||
$date_from_off = isset($_POST['date_from_off']) ? -1 : 0;
|
||||
$date_until_off = isset($_POST['date_until_off']) ? -1 : 0;
|
||||
|
||||
/*
|
||||
* @TODO validate date (DD-MM-YYYY)
|
||||
*/
|
||||
$ts_from = -1;
|
||||
$ts_until = -1;
|
||||
|
||||
if ($date_from_off > -1) {
|
||||
$date_from = $_POST['date_from'];
|
||||
$ts_from = mktime(0, 0, 0, substr($date_from, 3, 2), substr($date_from, 0, 2), substr($date_from, 6, 4));
|
||||
}
|
||||
if ($date_until_off > -1) {
|
||||
$date_until = $_POST['date_until'];
|
||||
$ts_until = mktime(0, 0, 0, substr($date_until, 3, 2), substr($date_until, 0, 2), substr($date_until, 6, 4));
|
||||
}
|
||||
|
||||
if (empty($account)
|
||||
|| empty($subject)
|
||||
|| empty($message)
|
||||
) {
|
||||
standard_error('missingfields');
|
||||
}
|
||||
|
||||
// Does account exist?
|
||||
$stmt = Database::prepare("SELECT `email` FROM `" . TABLE_MAIL_USERS . "`
|
||||
WHERE `customerid` = :customerid
|
||||
AND `email` = :account
|
||||
LIMIT 0,1"
|
||||
);
|
||||
Database::pexecute($stmt, array("account" => $account, "customerid" => $userinfo['customerid']));
|
||||
if (Database::num_rows() == 0) {
|
||||
standard_error('accountnotexisting');
|
||||
}
|
||||
|
||||
// Does autoresponder exist?
|
||||
$stmt = Database::prepare("SELECT `email` FROM `" . TABLE_MAIL_AUTORESPONDER . "`
|
||||
WHERE `customerid` = :customerid
|
||||
AND `email` = :account
|
||||
LIMIT 0,1"
|
||||
);
|
||||
Database::pexecute($stmt, array("account" => $account, "customerid" => $userinfo['customerid']));
|
||||
if (Database::num_rows() == 0) {
|
||||
standard_error('invalidautoresponder');
|
||||
}
|
||||
|
||||
// Update autoresponder
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_MAIL_AUTORESPONDER . "`
|
||||
SET `message` = :message,
|
||||
`enabled` = :enabled,
|
||||
`date_from` = :date_from,
|
||||
`date_until` = :date_until,
|
||||
`subject` = :subject
|
||||
WHERE `email` = :account
|
||||
AND `customerid` = :customerid"
|
||||
);
|
||||
$params = array(
|
||||
"account" => $account,
|
||||
"message" => $message,
|
||||
"enabled" => $_POST['active'],
|
||||
"date_from" => $ts_from,
|
||||
"date_until" => $ts_until,
|
||||
"subject" => $subject,
|
||||
"customerid" => $userinfo['customerid']
|
||||
);
|
||||
Database::pexecute($stmt, $params);
|
||||
redirectTo($filename, Array('s' => $s));
|
||||
}
|
||||
|
||||
$email = trim(htmlspecialchars($_GET['email']));
|
||||
|
||||
// Get account data
|
||||
$acc_stmt = Database::prepare("SELECT * FROM `" . TABLE_MAIL_AUTORESPONDER . "`
|
||||
WHERE `customerid` = :customerid
|
||||
AND `email` = :account
|
||||
LIMIT 0,1"
|
||||
);
|
||||
Database::pexecute($acc_stmt, array("account" => $email, "customerid" => $userinfo['customerid']));
|
||||
if (Database::num_rows() == 0) {
|
||||
standard_error('invalidautoresponder');
|
||||
}
|
||||
|
||||
$row = $acc_stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$subject = htmlspecialchars($row['subject']);
|
||||
$message = htmlspecialchars($row['message']);
|
||||
|
||||
$date_from = (int)$row['date_from'];
|
||||
$date_until = (int)$row['date_until'];
|
||||
|
||||
if ($date_from == -1) {
|
||||
$deactivated = '-1';
|
||||
$date_from = '';
|
||||
} else {
|
||||
$deactivated = '0';
|
||||
$date_from = date('d-m-Y', $date_from);
|
||||
}
|
||||
$date_from_off = makecheckbox('date_from_off', $lng['panel']['not_activated'], '-1', false, $deactivated, true, true);
|
||||
|
||||
if ($date_until == -1) {
|
||||
$deactivated = '-1';
|
||||
$date_until = '';
|
||||
} else {
|
||||
$deactivated = '0';
|
||||
$date_until = date('d-m-Y', $date_until);
|
||||
}
|
||||
$date_until_off = makecheckbox('date_until_off', $lng['panel']['not_activated'], '-1', false, $deactivated, true, true);
|
||||
|
||||
//$isactive = makeyesno('active', '1', '0', $row['enabled']);
|
||||
|
||||
$autoresponder_edit_data = include_once dirname(__FILE__).'/lib/formfields/customer/autoresponder/formfield.autoresponder_edit.php';
|
||||
$autoresponder_edit_form = htmlform::genHTMLForm($autoresponder_edit_data);
|
||||
|
||||
$title = $autoresponder_edit_data['autoresponder_edit']['title'];
|
||||
$image = $autoresponder_edit_data['autoresponder_edit']['image'];
|
||||
|
||||
eval("echo \"" . getTemplate('autoresponder/autoresponder_edit') . "\";");
|
||||
} elseif ($action == 'delete') {
|
||||
// Delete autoresponder
|
||||
if (isset($_POST['send']) && $_POST['send'] == 'send') {
|
||||
$account = trim($_POST['account']);
|
||||
|
||||
// Does autoresponder exist?
|
||||
$stmt = Database::prepare("SELECT `email` FROM `" . TABLE_MAIL_AUTORESPONDER . "`
|
||||
WHERE `customerid` = :customerid
|
||||
AND `email` = :account
|
||||
LIMIT 0,1"
|
||||
);
|
||||
Database::pexecute($stmt, array("account" => $account, "customerid" => $userinfo['customerid']));
|
||||
if (Database::num_rows() == 0) {
|
||||
standard_error('invalidautoresponder');
|
||||
}
|
||||
|
||||
// Delete autoresponder
|
||||
$stmt = Database::prepare("DELETE FROM `" . TABLE_MAIL_AUTORESPONDER . "`
|
||||
WHERE `email` = :account
|
||||
AND `customerid` = :customerid"
|
||||
);
|
||||
Database::pexecute($stmt, array("account" => $account, "customerid" => $userinfo['customerid']));
|
||||
|
||||
// Update email_autoresponder_used count
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_CUSTOMERS . "`
|
||||
SET `email_autoresponder_used` = `email_autoresponder_used` - 1
|
||||
WHERE `customerid` = :customerid"
|
||||
);
|
||||
Database::pexecute($stmt, array("customerid" => $userinfo['customerid']));
|
||||
redirectTo($filename, Array('s' => $s));
|
||||
}
|
||||
|
||||
$email = trim(htmlspecialchars($_GET['email']));
|
||||
ask_yesno('autoresponderdelete', $filename, array('action' => $action, 'account' => $email));
|
||||
} else {
|
||||
// List existing autoresponders
|
||||
$autoresponder = '';
|
||||
$count = 0;
|
||||
$stmt = Database::prepare("SELECT * FROM `" . TABLE_MAIL_AUTORESPONDER . "`
|
||||
WHERE `customerid` = :customerid
|
||||
ORDER BY email ASC"
|
||||
);
|
||||
Database::pexecute($stmt, array("customerid" => $userinfo['customerid']));
|
||||
|
||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
if ($row['date_from'] == -1 && $row['date_until'] == -1) {
|
||||
$activated_date = $lng['panel']['not_activated'];
|
||||
} elseif($row['date_from'] == -1 && $row['date_until'] != -1) {
|
||||
$activated_date = $lng['autoresponder']['date_until'].': '.date('d-m-Y', $row['date_until']);
|
||||
} elseif($row['date_from'] != -1 && $row['date_until'] == -1) {
|
||||
$activated_date = $lng['autoresponder']['date_from'].': '.date('d-m-Y', $row['date_from']);
|
||||
} else {
|
||||
$activated_date = date('d-m-Y', $row['date_from']) . ' - ' . date('d-m-Y', $row['date_until']);
|
||||
}
|
||||
eval("\$autoresponder.=\"" . getTemplate('autoresponder/autoresponder_autoresponder') . "\";");
|
||||
$count++;
|
||||
}
|
||||
|
||||
eval("echo \"" . getTemplate('autoresponder/autoresponder') . "\";");
|
||||
}
|
||||
@@ -177,13 +177,6 @@ if($page == 'overview') {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 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']) . "'");
|
||||
$stmt = Database::prepare("DELETE FROM `" . TABLE_PANEL_DOMAINS . "` WHERE
|
||||
`customerid` = :customerid
|
||||
|
||||
@@ -29,36 +29,6 @@ if(isset($_POST['id'])) {
|
||||
if($page == 'overview') {
|
||||
$log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_extras");
|
||||
eval("echo \"" . getTemplate("extras/extras") . "\";");
|
||||
} elseif($page == 'backup') {
|
||||
$log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_extras_backup");
|
||||
|
||||
$result_stmt = Database::prepare("SELECT `backup_enabled` FROM `" . TABLE_PANEL_CUSTOMERS . "`
|
||||
WHERE `customerid`= :customerid"
|
||||
);
|
||||
Database::pexecute($result_stmt, array("customerid" => $userinfo['customerid']));
|
||||
$row = $result_stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
$backup_enabled = makeyesno('backup_enabled', '1', '0', $row['backup_enabled']);
|
||||
|
||||
if(isset($_POST['send']) && $_POST['send'] == 'send') {
|
||||
$backup_enabled = ($_POST['backup_enabled'] == '1' ? '1' : '0');
|
||||
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_CUSTOMERS . "`
|
||||
SET `backup_enabled`= :backupenabled
|
||||
WHERE `customerid`= :customerid"
|
||||
);
|
||||
Database::pexecute($stmt, array("backupenabled" => $backup_enabled, "customerid" => $userinfo['customerid']));
|
||||
|
||||
redirectTo($filename, Array('page' => $page, 's' => $s));
|
||||
}
|
||||
|
||||
$backup_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.backup.php';
|
||||
$backup_form = htmlform::genHTMLForm($backup_data);
|
||||
|
||||
$title = $backup_data['backup']['title'];
|
||||
$image = $backup_data['backup']['image'];
|
||||
|
||||
eval("echo \"" . getTemplate("extras/backup") . "\";");
|
||||
} elseif($page == 'htpasswds') {
|
||||
if($action == '') {
|
||||
$log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_extras::htpasswds");
|
||||
@@ -67,7 +37,7 @@ if($page == 'overview') {
|
||||
'path' => $lng['panel']['path']
|
||||
);
|
||||
$paging = new paging($userinfo, TABLE_PANEL_HTPASSWDS, $fields, $settings['panel']['paging'], $settings['panel']['natsorting']);
|
||||
$result_stmt = Database::prepare("SELECT * FROM `" . TABLE_PANEL_HTPASSWDS . "`
|
||||
$result_stmt = Database::prepare("SELECT * FROM `" . TABLE_PANEL_HTPASSWDS . "`
|
||||
WHERE `customerid`= :customerid " . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit()
|
||||
);
|
||||
Database::pexecute($result_stmt, array("customerid" => $userinfo['customerid']));
|
||||
@@ -110,7 +80,7 @@ if($page == 'overview') {
|
||||
AND `id`= :id"
|
||||
);
|
||||
Database::pexecute($stmt, array("customerid" => $userinfo['customerid'], "id" => $id));
|
||||
|
||||
|
||||
$log->logAction(USR_ACTION, LOG_INFO, "deleted htpasswd for '" . $result['username'] . " (" . $result['path'] . ")'");
|
||||
inserttask('1');
|
||||
redirectTo($filename, Array('page' => $page, 's' => $s));
|
||||
@@ -130,7 +100,7 @@ if($page == 'overview') {
|
||||
$username = validate($_POST['username'], 'username', '/^[a-zA-Z0-9][a-zA-Z0-9\-_]+\$?$/');
|
||||
$authname = validate($_POST['directory_authname'], 'directory_authname', '/^[a-zA-Z0-9][a-zA-Z0-9\-_ ]+\$?$/');
|
||||
validate($_POST['directory_password'], 'password');
|
||||
|
||||
|
||||
$username_path_check_stmt = Database::prepare("SELECT `id`, `username`, `path` FROM `" . TABLE_PANEL_HTPASSWDS . "`
|
||||
WHERE `username`= :username
|
||||
AND `path`= :path
|
||||
@@ -213,18 +183,18 @@ if($page == 'overview') {
|
||||
} else {
|
||||
$password = crypt($_POST['directory_password']);
|
||||
}
|
||||
|
||||
|
||||
$params = array(
|
||||
"customerid" => $userinfo['customerid'],
|
||||
"id" => $id
|
||||
);
|
||||
|
||||
|
||||
$pwd_sql = '';
|
||||
if($_POST['directory_password'] != '') {
|
||||
$pwd_sql = "`password`= :password ";
|
||||
$params["password"] = $password;
|
||||
}
|
||||
|
||||
|
||||
$auth_sql = '';
|
||||
if($authname != $result['authname']) {
|
||||
$auth_sql = "`authname`= :authname ";
|
||||
@@ -344,7 +314,7 @@ if($page == 'overview') {
|
||||
);
|
||||
Database::pexecute($path_dupe_check_stmt, array("path" => $path, "customerid" => $userinfo['customerid']));
|
||||
$path_dupe_check = $path_dupe_check_stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
|
||||
if(!$_POST['path']) {
|
||||
standard_error('invalidpath');
|
||||
}
|
||||
@@ -353,18 +323,18 @@ if($page == 'overview') {
|
||||
$options_cgi = '1';
|
||||
} else {
|
||||
$options_cgi = '0';
|
||||
}
|
||||
}
|
||||
|
||||
$error404path = '';
|
||||
if (isset($_POST['error404path'])) {
|
||||
$error404path = correctErrorDocument($_POST['error404path']);
|
||||
}
|
||||
|
||||
|
||||
$error403path = '';
|
||||
if (isset($_POST['error403path'])) {
|
||||
$error403path = correctErrorDocument($_POST['error403path']);
|
||||
}
|
||||
|
||||
|
||||
$error500path = '';
|
||||
if (isset($_POST['error500path'])) {
|
||||
$error500path = correctErrorDocument($_POST['error500path']);
|
||||
@@ -402,10 +372,6 @@ if($page == 'overview') {
|
||||
} else {
|
||||
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']);
|
||||
$cperlenabled = customerHasPerlEnabled($userinfo['customerid']);
|
||||
/*
|
||||
$options_indexes = makeyesno('options_indexes', '1', '0', '0');
|
||||
$options_cgi = makeyesno('options_cgi', '1', '0', '0');
|
||||
*/
|
||||
|
||||
$htaccess_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.htaccess_add.php';
|
||||
$htaccess_add_form = htmlform::genHTMLForm($htaccess_add_data);
|
||||
@@ -417,7 +383,7 @@ if($page == 'overview') {
|
||||
}
|
||||
} elseif(($action == 'edit') && ($id != 0)) {
|
||||
$result_stmt = Database::prepare("SELECT * FROM `" . TABLE_PANEL_HTACCESS . "`
|
||||
WHERE `customerid` = :customerid
|
||||
WHERE `customerid` = :customerid
|
||||
AND `id` = :id"
|
||||
);
|
||||
Database::pexecute($result_stmt, array("customerid" => $userinfo['customerid'], "id" => $id));
|
||||
@@ -444,8 +410,9 @@ if($page == 'overview') {
|
||||
|| ($error404path != $result['error404path'])
|
||||
|| ($error403path != $result['error403path'])
|
||||
|| ($error500path != $result['error500path'])
|
||||
|| ($options_cgi != $result['options_cgi'])) {
|
||||
|
||||
|| ($options_cgi != $result['options_cgi'])
|
||||
) {
|
||||
|
||||
inserttask('1');
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_HTACCESS . "`
|
||||
SET `options_indexes` = :options_indexes,
|
||||
@@ -489,7 +456,7 @@ if($page == 'overview') {
|
||||
|
||||
$htaccess_edit_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.htaccess_edit.php';
|
||||
$htaccess_edit_form = htmlform::genHTMLForm($htaccess_edit_data);
|
||||
|
||||
|
||||
$title = $htaccess_edit_data['htaccess_edit']['title'];
|
||||
$image = $htaccess_edit_data['htaccess_edit']['image'];
|
||||
|
||||
@@ -498,5 +465,3 @@ if($page == 'overview') {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -40,8 +40,7 @@ if ($page == 'overview') {
|
||||
$paging = new paging($userinfo, TABLE_FTP_USERS, $fields, $settings['panel']['paging'], $settings['panel']['natsorting']);
|
||||
|
||||
$result_stmt = Database::prepare("SELECT `id`, `username`, `homedir` FROM `" . TABLE_FTP_USERS . "`
|
||||
WHERE `customerid`= :customerid
|
||||
AND `username` NOT LIKE '%_backup'" . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit()
|
||||
WHERE `customerid`= :customerid " . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit()
|
||||
);
|
||||
Database::pexecute($result_stmt, array("customerid" => $userinfo['customerid']));
|
||||
$ftps_count = Database::num_rows();
|
||||
@@ -370,21 +369,6 @@ if ($page == 'overview') {
|
||||
AND `id` = :id"
|
||||
);
|
||||
Database::pexecute($stmt, array("customerid" => $userinfo['customerid'], "id" => $id, "password" => $cryptPassword));
|
||||
|
||||
// also update customers backup user password if password of main ftp user is changed
|
||||
if(!preg_match('/' . $settings['customer']['ftpprefix'] . '/', $result['username'])) {
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_FTP_USERS . "`
|
||||
SET `password` = :password
|
||||
WHERE `customerid` = :customerid
|
||||
AND `username` = :username"
|
||||
);
|
||||
$params = array(
|
||||
"password" => $cryptPassword,
|
||||
"customerid" => $userinfo['customerid'],
|
||||
"username" => $result['username'] . "_backup"
|
||||
);
|
||||
Database::pexecute($stmt, $params);
|
||||
}
|
||||
}
|
||||
|
||||
if ($path != '') {
|
||||
|
||||
@@ -38,21 +38,21 @@ if ($action == 'logout') {
|
||||
);
|
||||
}
|
||||
Database::pexecute($stmt, $params);
|
||||
|
||||
|
||||
redirectTo('index.php');
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($page == 'overview') {
|
||||
$log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_index");
|
||||
|
||||
|
||||
$domain_stmt = Database::prepare("SELECT `domain` FROM `" . TABLE_PANEL_DOMAINS . "`
|
||||
WHERE `customerid` = :customerid
|
||||
AND `parentdomainid` = '0'
|
||||
AND `id` <> :standardsubdomain
|
||||
");
|
||||
Database::pexecute($domain_stmt, array("customerid" => $userinfo['customerid'], "standardsubdomain" => $userinfo['standardsubdomain']));
|
||||
|
||||
|
||||
$domains = '';
|
||||
$domainArray = array();
|
||||
|
||||
@@ -83,7 +83,7 @@ if ($page == 'overview') {
|
||||
$userinfo['diskspace_used'] = round($userinfo['diskspace_used'] / 1024, $settings['panel']['decimal_places']);
|
||||
$userinfo['traffic'] = round($userinfo['traffic'] / (1024 * 1024), $settings['panel']['decimal_places']);
|
||||
$userinfo['traffic_used'] = round($userinfo['traffic_used'] / (1024 * 1024), $settings['panel']['decimal_places']);
|
||||
$userinfo = str_replace_array('-1', $lng['customer']['unlimited'], $userinfo, 'diskspace traffic mysqls emails email_accounts email_forwarders email_quota email_autoresponder ftps tickets subdomains aps_packages');
|
||||
$userinfo = str_replace_array('-1', $lng['customer']['unlimited'], $userinfo, 'diskspace traffic mysqls emails email_accounts email_forwarders email_quota ftps tickets subdomains');
|
||||
|
||||
$services_enabled = "";
|
||||
$se = array();
|
||||
@@ -91,7 +91,6 @@ if ($page == 'overview') {
|
||||
if ($userinfo['pop3'] == '1') $se[] = "POP3";
|
||||
if ($userinfo['phpenabled'] == '1') $se[] = "PHP";
|
||||
if ($userinfo['perlenabled'] == '1') $se[] = "Perl/CGI";
|
||||
if ($userinfo['backup_enabled'] == '1' && $userinfo['backup_allowed'] == '1') $se[] = "Backup";
|
||||
$services_enabled = implode(", ", $se);
|
||||
|
||||
eval("echo \"" . getTemplate('index/index') . "\";");
|
||||
@@ -154,7 +153,7 @@ if ($page == 'overview') {
|
||||
} else {
|
||||
$new_webalizer_password = crypt($new_password);
|
||||
}
|
||||
|
||||
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_HTPASSWDS . "`
|
||||
SET `password` = :password
|
||||
WHERE `customerid` = :customerid
|
||||
@@ -182,20 +181,20 @@ if ($page == 'overview') {
|
||||
WHERE `customerid` = :customerid"
|
||||
);
|
||||
Database::pexecute($stmt, array("lang" => $def_language, "customerid" => $userinfo['customerid']));
|
||||
|
||||
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_SESSIONS . "`
|
||||
SET `language` = :lang
|
||||
WHERE `hash` = :hash"
|
||||
);
|
||||
Database::pexecute($stmt, array("lang" => $def_language, "hash" => $s));
|
||||
|
||||
|
||||
$log->logAction(USR_ACTION, LOG_NOTICE, "changed default language to '" . $def_language . "'");
|
||||
}
|
||||
|
||||
redirectTo($filename, Array('s' => $s));
|
||||
} else {
|
||||
$default_lang = $settings['panel']['standardlanguage'];
|
||||
if ($userinfo['def_language'] != '') {
|
||||
if ($userinfo['def_language'] != '') {
|
||||
$default_lang = $userinfo['def_language'];
|
||||
}
|
||||
|
||||
@@ -209,19 +208,19 @@ if ($page == 'overview') {
|
||||
} elseif ($page == 'change_theme') {
|
||||
if (isset($_POST['send']) && $_POST['send'] == 'send') {
|
||||
$theme = validate($_POST['theme'], 'theme');
|
||||
|
||||
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_CUSTOMERS . "`
|
||||
SET `theme` = :theme
|
||||
WHERE `customerid` = :customerid"
|
||||
);
|
||||
Database::pexecute($stmt, array("theme" => $theme, "customerid" => $userinfo['customerid']));
|
||||
|
||||
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_SESSIONS . "`
|
||||
SET `theme` = :theme
|
||||
WHERE `hash` = :hash"
|
||||
);
|
||||
Database::pexecute($stmt, array("theme" => $theme, "hash" => $s));
|
||||
|
||||
|
||||
$log->logAction(USR_ACTION, LOG_NOTICE, "changed default theme to '" . $theme . "'");
|
||||
redirectTo($filename, Array('s' => $s));
|
||||
} else {
|
||||
|
||||
@@ -109,28 +109,9 @@ if ($page == 'overview') {
|
||||
if (isset($_POST['send']) && $_POST['send'] == 'send') {
|
||||
// Begin root-session
|
||||
Database::needRoot(true, $result['dbserver']);
|
||||
$dbm = new DbManager($settings);
|
||||
$dbm->getManager()->deleteDatabase($result['databasename']);
|
||||
$log->logAction(USR_ACTION, LOG_INFO, "deleted database '" . $result['databasename'] . "'");
|
||||
if (Database::getAttribute(PDO::ATTR_SERVER_VERSION) < '5.0.2') {
|
||||
// Revoke privileges (only required for MySQL 4.1.2 - 5.0.1)
|
||||
$stmt = Database::prepare("REVOKE ALL PRIVILEGES, GRANT OPTION FROM :databasename");
|
||||
Database::pexecute($stmt, array("databasename" => $result['databasename']));
|
||||
}
|
||||
|
||||
$host_res_stmt = Database::prepare("SELECT `Host` FROM `mysql`.`user`
|
||||
WHERE `User`= :databasename"
|
||||
);
|
||||
Database::pexecute($host_res_stmt, array("databasename" => $result['databasename']));
|
||||
|
||||
while ($host = $host_res_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
// as of MySQL 5.0.2 this also revokes privileges. (requires MySQL 4.1.2+)
|
||||
$stmt = Database::prepare("DROP USER :databasename@:host");
|
||||
Database::pexecute($stmt, array("databasename" => $result['databasename'], "host" => $host['Host']));
|
||||
}
|
||||
|
||||
$stmt = Database::prepare("DROP DATABASE IF EXISTS `" . $result['databasename'] . "`");
|
||||
Database::pexecute($stmt, array(), false);
|
||||
$stmt = Database::prepare("FLUSH PRIVILEGES");
|
||||
Database::pexecute($stmt);
|
||||
Database::needRoot(false);
|
||||
// End root-session
|
||||
|
||||
@@ -189,40 +170,13 @@ if ($page == 'overview') {
|
||||
// validate description before actual adding the database, #1052
|
||||
$databasedescription = validate(trim($_POST['description']), 'description');
|
||||
|
||||
// Begin root-session
|
||||
Database::needRoot(true);
|
||||
if (strtoupper($settings['customer']['mysqlprefix']) == 'RANDOM') {
|
||||
$result_stmt = Database::prepare('SELECT `User` FROM mysql.user');
|
||||
Database::pexecute($result_stmt);
|
||||
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$allsqlusers[] = $row[User];
|
||||
}
|
||||
$username = $userinfo['loginname'] . '-' . substr(md5(uniqid(microtime(), 1)), 20, 3);
|
||||
while (in_array($username , $allsqlusers)) {
|
||||
$username = $userinfo['loginname'] . '-' . substr(md5(uniqid(microtime(), 1)), 20, 3);
|
||||
}
|
||||
} else {
|
||||
$username = $userinfo['loginname'] . $settings['customer']['mysqlprefix'] . (intval($userinfo['mysql_lastaccountnumber']) + 1);
|
||||
}
|
||||
|
||||
$stmt = Database::prepare("CREATE DATABASE `" . $username . "`");
|
||||
Database::pexecute($stmt);
|
||||
$log->logAction(USR_ACTION, LOG_INFO, "created database '" . $username . "'");
|
||||
foreach (array_map('trim', explode(',', $settings['system']['mysql_access_host'])) as $mysql_access_host) {
|
||||
$stmt = Database::prepare("GRANT ALL PRIVILEGES ON `" . $username . "`.*
|
||||
TO :username@:host
|
||||
IDENTIFIED BY 'password'"
|
||||
);
|
||||
Database::pexecute($stmt, array("username" => $username, "host" => $mysql_access_host));
|
||||
$stmt = Database::prepare("SET PASSWORD FOR :username@:host = PASSWORD(:password)");
|
||||
Database::pexecute($stmt, array("username" => $username, "host" => $mysql_access_host, "password" => $password));
|
||||
$log->logAction(USR_ACTION, LOG_NOTICE, "grant all privileges for '" . $username . "'@'" . $mysql_access_host . "'");
|
||||
}
|
||||
|
||||
$stmt = Database::prepare("FLUSH PRIVILEGES");
|
||||
Database::pexecute($stmt);
|
||||
Database::needRoot(false);
|
||||
// End root-session
|
||||
// create database, user, set permissions, etc.pp.
|
||||
$dbm = new DbManager($settings);
|
||||
$username = $dbm->createDatabase(
|
||||
$userinfo['loginname'],
|
||||
$password,
|
||||
$userinfo['mysql_lastaccountnumber']
|
||||
);
|
||||
|
||||
// Statement modified for Database description -- PH 2004-11-29
|
||||
$stmt = Database::prepare('INSERT INTO `' . TABLE_PANEL_DATABASES . '`
|
||||
|
||||
@@ -128,11 +128,6 @@ CREATE TABLE `panel_admins` (
|
||||
`lastlogin_fail` int(11) unsigned NOT NULL default '0',
|
||||
`loginfail_count` int(11) unsigned NOT NULL default '0',
|
||||
`reportsent` tinyint(4) unsigned NOT NULL default '0',
|
||||
`can_manage_aps_packages` tinyint(1) NOT NULL default '1',
|
||||
`aps_packages` int(5) NOT NULL default '0',
|
||||
`aps_packages_used` int(5) NOT NULL default '0',
|
||||
`email_autoresponder` int(5) NOT NULL default '0',
|
||||
`email_autoresponder_used` int(5) NOT NULL default '0',
|
||||
`theme` varchar(255) NOT NULL default 'Sparkle',
|
||||
PRIMARY KEY (`adminid`),
|
||||
UNIQUE KEY `loginname` (`loginname`)
|
||||
@@ -191,14 +186,8 @@ CREATE TABLE `panel_customers` (
|
||||
`reportsent` tinyint(4) unsigned NOT NULL default '0',
|
||||
`pop3` tinyint(1) NOT NULL default '1',
|
||||
`imap` tinyint(1) NOT NULL default '1',
|
||||
`aps_packages` int(5) NOT NULL default '0',
|
||||
`aps_packages_used` int(5) NOT NULL default '0',
|
||||
`perlenabled` tinyint(1) NOT NULL default '0',
|
||||
`email_autoresponder` int(5) NOT NULL default '0',
|
||||
`email_autoresponder_used` int(5) NOT NULL default '0',
|
||||
`theme` varchar(255) NOT NULL default 'Sparkle',
|
||||
`backup_allowed` TINYINT( 1 ) NOT NULL DEFAULT '1',
|
||||
`backup_enabled` TINYINT( 1 ) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`customerid`),
|
||||
UNIQUE KEY `loginname` (`loginname`)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
@@ -212,7 +201,6 @@ CREATE TABLE `panel_databases` (
|
||||
`databasename` varchar(255) NOT NULL default '',
|
||||
`description` varchar(255) NOT NULL default '',
|
||||
`dbserver` int(11) unsigned NOT NULL default '0',
|
||||
`apsdb` tinyint(1) NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `customerid` (`customerid`)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
@@ -374,18 +362,8 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
|
||||
('dkim', 'dkim_domains', 'domains'),
|
||||
('dkim', 'dkim_dkimkeys', 'dkim-keys.conf'),
|
||||
('dkim', 'dkimrestart_command', '/etc/init.d/dkim-filter restart'),
|
||||
('autoresponder', 'autoresponder_active', '0'),
|
||||
('autoresponder', 'last_autoresponder_run', '0'),
|
||||
('admin', 'show_version_login', '0'),
|
||||
('admin', 'show_version_footer', '0'),
|
||||
('aps', 'items_per_page', '20'),
|
||||
('aps', 'upload_fields', '5'),
|
||||
('aps', 'aps_active', '0'),
|
||||
('aps', 'php-extension', ''),
|
||||
('aps', 'php-configuration', ''),
|
||||
('aps', 'webserver-htaccess', ''),
|
||||
('aps', 'php-function', ''),
|
||||
('aps', 'webserver-module', ''),
|
||||
('spf', 'use_spf', '0'),
|
||||
('spf', 'spf_entry', '@ IN TXT "v=spf1 a mx -all"'),
|
||||
('dkim', 'dkim_algorithm', 'all'),
|
||||
@@ -491,16 +469,6 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
|
||||
('system', 'report_webmax', '90'),
|
||||
('system', 'report_trafficmax', '90'),
|
||||
('system', 'validate_domain', '1'),
|
||||
('system', 'backup_enabled', '0'),
|
||||
('system', 'backup_dir', '/var/customers/backups/'),
|
||||
('system', 'backup_mysqldump_path', '/usr/bin/mysqldump'),
|
||||
('system', 'backup_count', '1'),
|
||||
('system', 'backup_bigfile', '1'),
|
||||
('system', 'backup_ftp_enabled', '0'),
|
||||
('system', 'backup_ftp_server', ''),
|
||||
('system', 'backup_ftp_user', ''),
|
||||
('system', 'backup_ftp_pass', ''),
|
||||
('system', 'backup_ftp_passive', '1'),
|
||||
('system', 'diskquota_enabled', '0'),
|
||||
('system', 'diskquota_repquota_path', '/usr/sbin/repquota'),
|
||||
('system', 'diskquota_quotatool_path', '/usr/bin/quotatool'),
|
||||
@@ -552,7 +520,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
|
||||
('panel', 'phpconfigs_hidestdsubdomain', '0'),
|
||||
('panel', 'allow_theme_change_admin', '1'),
|
||||
('panel', 'allow_theme_change_customer', '1'),
|
||||
('panel', 'version', '0.9.31-rc1');
|
||||
('panel', 'version', '0.9.31-rc99');
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `panel_tasks`;
|
||||
@@ -727,23 +695,6 @@ CREATE TABLE IF NOT EXISTS `panel_syslog` (
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `mail_autoresponder`;
|
||||
CREATE TABLE `mail_autoresponder` (
|
||||
`email` varchar(255) NOT NULL default '',
|
||||
`message` text NOT NULL,
|
||||
`enabled` tinyint(1) NOT NULL default '0',
|
||||
`date_from` int(15) NOT NULL default '-1',
|
||||
`date_until` int(15) NOT NULL default '-1',
|
||||
`subject` varchar(255) NOT NULL default '',
|
||||
`customerid` int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (`email`),
|
||||
KEY `customerid` (`customerid`),
|
||||
FULLTEXT KEY `message` (`message`)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `panel_phpconfigs`;
|
||||
CREATE TABLE `panel_phpconfigs` (
|
||||
`id` int(11) unsigned NOT NULL auto_increment,
|
||||
@@ -765,63 +716,6 @@ INSERT INTO `panel_phpconfigs` (`id`, `description`, `binary`, `file_extensions`
|
||||
(1, 'Default Config', '/usr/bin/php-cgi', 'php', '-1', '-1', 'allow_call_time_pass_reference = Off\r\nallow_url_fopen = Off\r\nasp_tags = Off\r\ndisable_classes =\r\ndisable_functions = curl_exec,curl_multi_exec,exec,parse_ini_file,passthru,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,system\r\ndisplay_errors = Off\r\ndisplay_startup_errors = Off\r\nenable_dl = Off\r\nerror_reporting = E_ALL & ~E_NOTICE\r\nexpose_php = Off\r\nfile_uploads = On\r\ncgi.force_redirect = 1\r\ngpc_order = "GPC"\r\nhtml_errors = Off\r\nignore_repeated_errors = Off\r\nignore_repeated_source = Off\r\ninclude_path = ".:{PEAR_DIR}"\r\nlog_errors = On\r\nlog_errors_max_len = 1024\r\nmagic_quotes_gpc = Off\r\nmagic_quotes_runtime = Off\r\nmagic_quotes_sybase = Off\r\nmax_execution_time = 30\r\nmax_input_time = 60\r\nmemory_limit = 16M\r\n{OPEN_BASEDIR_C}open_basedir = "{OPEN_BASEDIR}"\r\noutput_buffering = 4096\r\npost_max_size = 16M\r\nprecision = 14\r\nregister_argc_argv = Off\r\nregister_globals = Off\r\nreport_memleaks = On\r\nsendmail_path = "/usr/sbin/sendmail -t -i -f {CUSTOMER_EMAIL}"\r\nsession.auto_start = 0\r\nsession.bug_compat_42 = 0\r\nsession.bug_compat_warn = 1\r\nsession.cache_expire = 180\r\nsession.cache_limiter = nocache\r\nsession.cookie_domain =\r\nsession.cookie_lifetime = 0\r\nsession.cookie_path = /\r\nsession.entropy_file = /dev/urandom\r\nsession.entropy_length = 16\r\nsession.gc_divisor = 1000\r\nsession.gc_maxlifetime = 1440\r\nsession.gc_probability = 1\r\nsession.name = PHPSESSID\r\nsession.referer_check =\r\nsession.save_handler = files\r\nsession.save_path = "{TMP_DIR}"\r\nsession.serialize_handler = php\r\nsession.use_cookies = 1\r\nsession.use_trans_sid = 0\r\nshort_open_tag = On\r\nsuhosin.mail.protect = 1\r\nsuhosin.simulation = Off\r\ntrack_errors = Off\r\nupload_max_filesize = 32M\r\nupload_tmp_dir = "{TMP_DIR}"\r\nvariables_order = "GPCS"\r\n');
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `aps_instances`;
|
||||
CREATE TABLE IF NOT EXISTS `aps_instances` (
|
||||
`ID` int(4) NOT NULL auto_increment,
|
||||
`CustomerID` int(4) NOT NULL,
|
||||
`PackageID` int(4) NOT NULL,
|
||||
`Status` int(4) NOT NULL,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `aps_packages`;
|
||||
CREATE TABLE IF NOT EXISTS `aps_packages` (
|
||||
`ID` int(4) NOT NULL auto_increment,
|
||||
`Path` varchar(500) NOT NULL,
|
||||
`Name` varchar(500) NOT NULL,
|
||||
`Version` varchar(20) NOT NULL,
|
||||
`Release` int(4) NOT NULL,
|
||||
`Status` int(1) NOT NULL default '1',
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `aps_settings`;
|
||||
CREATE TABLE IF NOT EXISTS `aps_settings` (
|
||||
`ID` int(4) NOT NULL auto_increment,
|
||||
`InstanceID` int(4) NOT NULL,
|
||||
`Name` varchar(250) NOT NULL,
|
||||
`Value` varchar(250) NOT NULL,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `aps_tasks`;
|
||||
CREATE TABLE IF NOT EXISTS `aps_tasks` (
|
||||
`ID` int(4) NOT NULL auto_increment,
|
||||
`InstanceID` int(4) NOT NULL,
|
||||
`Task` int(4) NOT NULL,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `aps_temp_settings`;
|
||||
CREATE TABLE IF NOT EXISTS `aps_temp_settings` (
|
||||
`ID` int(4) NOT NULL auto_increment,
|
||||
`PackageID` int(4) NOT NULL,
|
||||
`CustomerID` int(4) NOT NULL,
|
||||
`Name` varchar(250) NOT NULL,
|
||||
`Value` varchar(250) NOT NULL,
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `cronjobs_run`;
|
||||
CREATE TABLE IF NOT EXISTS `cronjobs_run` (
|
||||
`id` bigint(20) NOT NULL auto_increment,
|
||||
@@ -835,18 +729,13 @@ CREATE TABLE IF NOT EXISTS `cronjobs_run` (
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
|
||||
|
||||
|
||||
INSERT INTO `cronjobs_run` (`id`, `module`, `cronfile`, `interval`, `isactive`, `desc_lng_key`) VALUES
|
||||
(1, 'froxlor/core', 'cron_tasks.php', '5 MINUTE', '1', 'cron_tasks'),
|
||||
(2, 'froxlor/aps', 'cron_apsinstaller.php', '5 MINUTE', '0', 'cron_apsinstaller'),
|
||||
(3, 'froxlor/autoresponder', 'cron_autoresponder.php', '5 MINUTE', '0', 'cron_autoresponder'),
|
||||
(4, 'froxlor/aps', 'cron_apsupdater.php', '1 HOUR', '0', 'cron_apsupdater'),
|
||||
(5, 'froxlor/core', 'cron_traffic.php', '1 DAY', '1', 'cron_traffic'),
|
||||
(6, 'froxlor/ticket', 'cron_used_tickets_reset.php', '1 DAY', '1', 'cron_ticketsreset'),
|
||||
(7, 'froxlor/ticket', 'cron_ticketarchive.php', '1 MONTH', '1', 'cron_ticketarchive'),
|
||||
(8, 'froxlor/reports', 'cron_usage_report.php', '1 DAY', '1', 'cron_usage_report'),
|
||||
(9, 'froxlor/backup', 'cron_backup.php', '1 DAY', '1', 'cron_backup'),
|
||||
(10, 'froxlor/core', 'cron_mailboxsize.php', '6 HOUR', '1', 'cron_mailboxsize');
|
||||
(2, 'froxlor/core', 'cron_traffic.php', '1 DAY', '1', 'cron_traffic'),
|
||||
(3, 'froxlor/ticket', 'cron_used_tickets_reset.php', '1 DAY', '1', 'cron_ticketsreset'),
|
||||
(4, 'froxlor/ticket', 'cron_ticketarchive.php', '1 MONTH', '1', 'cron_ticketarchive'),
|
||||
(5, 'froxlor/reports', 'cron_usage_report.php', '1 DAY', '1', 'cron_usage_report'),
|
||||
(6, 'froxlor/core', 'cron_mailboxsize.php', '6 HOUR', '1', 'cron_mailboxsize');
|
||||
|
||||
|
||||
|
||||
@@ -931,3 +820,4 @@ CREATE TABLE IF NOT EXISTS `panel_domaintoip` (
|
||||
`id_ipandports` int(11) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id_domain`,`id_ipandports`)
|
||||
) ENGINE=MyISAM CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
|
||||
|
||||
@@ -398,10 +398,7 @@ class FroxlorInstall {
|
||||
`tickets` = -1,
|
||||
`tickets_see_all` = 1,
|
||||
`subdomains` = -1,
|
||||
`traffic` = -1048576,
|
||||
`can_manage_aps_packages` = 1,
|
||||
`aps_packages` = -1,
|
||||
`email_autoresponder` = -1
|
||||
`traffic` = -1048576
|
||||
");
|
||||
|
||||
$ins_stmt->execute($ins_data);
|
||||
|
||||
@@ -2519,3 +2519,52 @@ if (isFroxlorVersion('0.9.31-dev6')) {
|
||||
lastStepStatus(0);
|
||||
updateToVersion('0.9.31-rc1');
|
||||
}
|
||||
|
||||
if (isFroxlorVersion('0.9.31-rc1')) {
|
||||
showUpdateStep("Updating from 0.9.31-rc1 to 0.9.31-rc99");
|
||||
lastStepStatus(0);
|
||||
|
||||
showUpdateStep("Removing APS-module (deprecated)");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `settinggroup` = 'aps';");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_ADMINS."` DROP `can_manage_aps_packages`;");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_ADMINS."` DROP `aps_packages`;");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_ADMINS."` DROP `aps_packages_used`;");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` DROP `aps_packages`;");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` DROP `aps_packages_used`;");
|
||||
// FIXME what to do with APS-databases? (before dropping the field)
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_DATABASES."` DROP `apsdb`;");
|
||||
Database::query("DROP TABLE IF EXISTS `aps_packages`;");
|
||||
Database::query("DROP TABLE IF EXISTS `aps_instances`;");
|
||||
Database::query("DROP TABLE IF EXISTS `aps_settings`;");
|
||||
Database::query("DROP TABLE IF EXISTS `aps_tasks`;");
|
||||
Database::query("DROP TABLE IF EXISTS `aps_temp_settings`;");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_CRONRUNS."` WHERE `module` = 'froxlor/aps';");
|
||||
lastStepStatus(0);
|
||||
|
||||
showUpdateStep("Removing backup-module (deprecated)");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_enabled';");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_dir';");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_mysqldump_path';");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_count';");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_bigfile';");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_ftp_enabled';");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_ftp_server';");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_ftp_user';");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_ftp_pass';");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `varname` = 'backup_ftp_passive';");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` DROP `backup_allowed`;");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` DROP `backup_enabled`;");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_CRONRUNS."` WHERE `module` = 'froxlor/backup';");
|
||||
lastStepStatus(0);
|
||||
|
||||
showUpdateStep("Removing autoresponder-module (deprecated)");
|
||||
Database::query("DELETE FROM `".TABLE_PANEL_SETTINGS."` WHERE `settinggroup` = 'autoresponder';");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_ADMINS."` DROP `email_autoresponder`;");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_ADMINS."` DROP `email_autoresponder_used`;");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` DROP `email_autoresponder`;");
|
||||
Database::query("ALTER TABLE `".TABLE_PANEL_CUSTOMERS."` DROP `email_autoresponder_used`;");
|
||||
Database::query("DROP TABLE IF EXISTS `mail_autoresponder`;");
|
||||
lastStepStatus(0);
|
||||
|
||||
updateToVersion('0.9.31-rc99');
|
||||
}
|
||||
|
||||
@@ -594,7 +594,7 @@ function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version)
|
||||
|
||||
if (versionInUpdate($current_version, '0.9.31-dev5')) {
|
||||
$has_preconfig = true;
|
||||
$description = 'You can enbable/disable error-reporting for admins and customers!<br /><br />';
|
||||
$description = 'You can enable/disable error-reporting for admins and customers!<br /><br />';
|
||||
$question = '<strong>Do you want to enable error-reporting for admins? (default: yes):</strong> ';
|
||||
$question.= makeyesno('update_error_report_admin', '1', '0', '1').'<br />';
|
||||
$question.= '<strong>Do you want to enable error-reporting for customers? (default: no):</strong> ';
|
||||
|
||||
25
lib/ajax.php
25
lib/ajax.php
@@ -15,7 +15,7 @@
|
||||
* @package AJAX
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
if(isset($_POST['action'])) {
|
||||
$action = $_POST['action'];
|
||||
} elseif(isset($_GET['action'])) {
|
||||
@@ -25,22 +25,25 @@ if(isset($_POST['action'])) {
|
||||
}
|
||||
|
||||
if ($action == "newsfeed") {
|
||||
$feed = "http://forum.froxlor.org/index.php/rss/forums/1-froxlor-announcements/";
|
||||
$feed = "http://inside.froxlor.org/news/";
|
||||
|
||||
if (function_exists("simplexml_load_file") == false) {
|
||||
die();
|
||||
}
|
||||
|
||||
if (ini_get('allow_url_fopen')) {
|
||||
$news = simplexml_load_file($feed, null, LIBXML_NOCDATA);
|
||||
if (function_exists('curl_version')) {
|
||||
// get version
|
||||
require './tables.inc.php';
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $feed);
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, 'Froxlor/'.$version);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$output = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
$news = simplexml_load_string(trim($output));
|
||||
} else {
|
||||
if (function_exists('curl_version')) {
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $feed);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$output = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
$news = simplexml_load_string(trim($output));
|
||||
if (ini_get('allow_url_fopen')) {
|
||||
$news = simplexml_load_file($feed, null, LIBXML_NOCDATA);
|
||||
} else {
|
||||
$news = false;
|
||||
}
|
||||
|
||||
@@ -1,691 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Implementation of the Application Packaging Standard from SwSoft/Parallels
|
||||
* http://apsstandard.com
|
||||
*
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package APS
|
||||
*
|
||||
* @todo logging
|
||||
* run with user uid/gid
|
||||
* folder truncation/tar all files
|
||||
*/
|
||||
|
||||
class ApsInstaller extends ApsParser {
|
||||
|
||||
private $DomainPath = '';
|
||||
private $Domain = '';
|
||||
private $RealPath = '';
|
||||
private $RootDir = '';
|
||||
private $Hosts = '';
|
||||
private $aps_version = '1.0';
|
||||
|
||||
/**
|
||||
* constructor of class. setup some basic variables
|
||||
*
|
||||
* @param settings array with the global settings from froxlor
|
||||
*/
|
||||
public function __construct($settings) {
|
||||
|
||||
$this->RootDir = dirname(dirname(dirname(dirname(__FILE__)))) . '/';
|
||||
$this->Hosts = $settings['system']['mysql_access_host'];
|
||||
}
|
||||
|
||||
/**
|
||||
* main function of class which handles all
|
||||
*/
|
||||
public function InstallHandler() {
|
||||
|
||||
chdir($this->RootDir);
|
||||
$result_stmt = Database::query("
|
||||
SELECT * FROM `" . TABLE_APS_TASKS . "` AS `t`
|
||||
INNER JOIN `" . TABLE_APS_INSTANCES . "` AS `i` ON `t`.`InstanceID` = `i`.`ID`
|
||||
INNER JOIN `" . TABLE_APS_PACKAGES . "` AS `p` ON `i`.`PackageID` = `p`.`ID`
|
||||
INNER JOIN `" . TABLE_PANEL_CUSTOMERS . "` AS `c` ON `i`.`CustomerID` = `c`.`customerid`
|
||||
WHERE `TASK` NOT IN (" . TASK_SYSTEM_UPDATE . ", " . TASK_SYSTEM_DOWNLOAD . ")
|
||||
");
|
||||
|
||||
while ($Row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
//check for existing aps xml file
|
||||
if (!file_exists($this->RootDir . 'packages/' . $Row['Path'] . '/APP-META.xml')) {
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_APS_INSTANCES . "` SET `Status` = " . INSTANCE_ERROR . " WHERE `ID` = :id
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('id' => $Row['InstanceID']));
|
||||
continue;
|
||||
}
|
||||
|
||||
//get contents and parse them
|
||||
$XmlContent = file_get_contents($this->RootDir . 'packages/' . $Row['Path'] . '/APP-META.xml');
|
||||
$Xml = new SimpleXMLElement($XmlContent);
|
||||
|
||||
$this->aps_version = isset($Xml->attributes()->version) ? (string)$Xml->attributes()->version : '1.0';
|
||||
|
||||
//check for unparseable xml data
|
||||
if ($Xml == false) {
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_APS_INSTANCES . "` SET `Status` = " . INSTANCE_ERROR . " WHERE `ID` = :id
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('id' => $Row['InstanceID']));
|
||||
continue;
|
||||
}
|
||||
|
||||
$Task = $Row['Task'];
|
||||
$this->DomainPath = '';
|
||||
$this->Domain = '';
|
||||
$this->RealPath = '';
|
||||
|
||||
//lock instance so installation cannot be canceled from the panel
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_APS_INSTANCES . "` SET `Status` = " . INSTANCE_TASK_ACTIVE . " WHERE `ID` = :id
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('id' => $Row['InstanceID']));
|
||||
|
||||
//setup environment with data for domain/installation location
|
||||
self::PrepareBasics($Row);
|
||||
|
||||
//create database if necessary and setup environment variables
|
||||
self::PrepareDatabase($Xml, $Row, $Task);
|
||||
|
||||
//unpack installation scripts and package files if necessary
|
||||
if (self::PrepareFiles($Xml, $Row, $Task)) {
|
||||
//setup environment variables fetched from installation wizard
|
||||
self::PrepareWizardData($Xml, $Row, $Task);
|
||||
//run installation scripts from packages
|
||||
self::RunInstaller($Xml, $Row, $Task);
|
||||
}
|
||||
|
||||
//remove installation scripts
|
||||
self::CleanupData($Xml, $Row, $Task);
|
||||
unset($Xml);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* run the installation script and log errors if there are some
|
||||
*
|
||||
* @param xml instance of a valid xml object with a parsed APP-META.xml file
|
||||
* @param row current entry from the database for app to handle
|
||||
* @param task numeric code to specify what to do
|
||||
* @return success true/error false
|
||||
*/
|
||||
private function RunInstaller($Xml, $Row, $Task) {
|
||||
//installation
|
||||
|
||||
if ($Task == TASK_INSTALL) {
|
||||
//setup right path and run installation script
|
||||
if (!is_dir($this->RealPath . $this->DomainPath . '/install_scripts/')) {
|
||||
echo 'Directory: '. $this->RealPath . $this->DomainPath . '/install_scripts/ does not exist';
|
||||
return;
|
||||
}
|
||||
|
||||
chdir($this->RealPath . $this->DomainPath . '/install_scripts/');
|
||||
|
||||
// make configure-script executable
|
||||
if ($this->aps_version != '1.0') {
|
||||
$scriptname = (string)$Xml->service->provision->{'configuration-script'}['name'];
|
||||
} else {
|
||||
$scriptname = 'configure';
|
||||
}
|
||||
|
||||
chmod($this->RealPath . $this->DomainPath . '/install_scripts/'.$scriptname, 0755);
|
||||
|
||||
$Return = array();
|
||||
|
||||
// first 'true' to indicate that we want the return-status from exec.
|
||||
// after exec() is called, the value will be the return-status of the
|
||||
// program executed
|
||||
$ReturnStatus = true;
|
||||
|
||||
$Return = safe_exec('php ' . escapeshellarg($this->RealPath . $this->DomainPath . '/install_scripts/'.$scriptname) . ' install', $ReturnStatus);
|
||||
|
||||
if ($ReturnStatus != 0) {
|
||||
//write output of script on error into database for admin
|
||||
$Buffer = '';
|
||||
$Count = 0;
|
||||
foreach ($Return as $Line) {
|
||||
$Count+= 1;
|
||||
$Buffer.= $Line;
|
||||
if ($Count != count($Return)) {
|
||||
$Buffer.= "\n";
|
||||
}
|
||||
}
|
||||
|
||||
//FIXME error logging
|
||||
echo ("error : installer\n" . $Buffer . "\n");
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_APS_INSTANCES . "` SET `Status` = " . INSTANCE_ERROR . " WHERE `ID` = :id
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('id' => $Row['InstanceID']));
|
||||
return false;
|
||||
|
||||
} else {
|
||||
//installation succeeded
|
||||
//chown all files if installtion script has created some new files. otherwise customers cannot edit the files via ftp
|
||||
safe_exec('chown -R ' . (int)$Row['guid'] . ':' . (int)$Row['guid'] . ' ' . escapeshellarg($this->RealPath . $this->DomainPath . '/'));
|
||||
|
||||
//update database
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_APS_INSTANCES . "` SET `Status` = " . INSTANCE_SUCCESS . " WHERE `ID` = :id
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('id' => $Row['InstanceID']));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* remove installation scripts from filesystem and remove tasks and update the database
|
||||
*
|
||||
* @param xml instance of a valid xml object with a parsed APP-META.xml file
|
||||
* @param row current entry from the database for app to handle
|
||||
* @param task numeric code to specify what to do
|
||||
*/
|
||||
private function CleanupData($Xml, $Row, $Task) {
|
||||
|
||||
chdir($this->RootDir);
|
||||
|
||||
if ($Task == TASK_INSTALL) {
|
||||
//cleanup installation
|
||||
self::UnlinkRecursive($this->RealPath . $this->DomainPath . '/install_scripts/');
|
||||
//remove task
|
||||
$del_stmt = Database::prepare("
|
||||
DELETE FROM `" . TABLE_APS_TASKS . "` WHERE `Task` = " . TASK_INSTALL . " AND `InstanceID` = :id
|
||||
");
|
||||
Database::pexecute($del_stmt, array('id' => $Row['InstanceID']));
|
||||
|
||||
} elseif($Task == TASK_REMOVE) {
|
||||
|
||||
// check for database
|
||||
if ($this->aps_version == '1.0') {
|
||||
// the good ole way
|
||||
$XmlDb = $Xml->requirements->children('http://apstandard.com/ns/1/db');
|
||||
} else {
|
||||
// since 1.1
|
||||
$Xml->registerXPathNamespace('db', 'http://apstandard.com/ns/1/db');
|
||||
|
||||
$XmlDb = new DynamicProperties;
|
||||
$XmlDb->db = new DynamicProperties;
|
||||
$XmlDb->db->id = getXPathValue($Xml, '//db:id');
|
||||
}
|
||||
|
||||
if ($XmlDb->db->id) {
|
||||
//drop database permissions
|
||||
Database::needRoot(true);
|
||||
// FIXME ### here
|
||||
$Database = 'web' . $Row['CustomerID'] . 'aps' . $Row['InstanceID'];
|
||||
foreach (array_map('trim', explode(',', $this->Hosts)) as $DatabaseHost) {
|
||||
|
||||
if (Database::getAttribute(PDO::ATTR_SERVER_VERSION) < '5.0.2') {
|
||||
// Revoke privileges (only required for MySQL 4.1.2 - 5.0.1)
|
||||
$stmt = Database::prepare("REVOKE ALL PRIVILEGES, GRANT OPTION FROM :databasename");
|
||||
Database::pexecute($stmt, array("databasename" => $DatabaseHost));
|
||||
}
|
||||
|
||||
$host_res_stmt = Database::prepare("
|
||||
SELECT `Host` FROM `mysql`.`user`
|
||||
WHERE `User`= :databasename
|
||||
");
|
||||
Database::pexecute($host_res_stmt, array("databasename" => $DatabaseHost));
|
||||
|
||||
while ($host = $host_res_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
// as of MySQL 5.0.2 this also revokes privileges. (requires MySQL 4.1.2+)
|
||||
$stmt = Database::prepare("DROP USER :databasename@:host");
|
||||
Database::pexecute($stmt, array("databasename" => $DatabaseHost, "host" => $host['Host']));
|
||||
}
|
||||
}
|
||||
|
||||
// drop database
|
||||
$stmt = Database::prepare("DROP DATABASE IF EXISTS `" . $DatabaseHost . "`");
|
||||
Database::pexecute($stmt, array(), false);
|
||||
$stmt = Database::prepare("FLUSH PRIVILEGES");
|
||||
Database::pexecute($stmt);
|
||||
Database::needRoot(false);
|
||||
|
||||
// remove database from customer-mysql overview, #272
|
||||
$stmt = Database::prepare("DELETE FROM `" . TABLE_PANEL_DATABASES . "`
|
||||
WHERE `customerid` = :customerid
|
||||
AND `databasename` = :databasename
|
||||
AND `apsdb` = '1'
|
||||
");
|
||||
Database::pexecute($stmt, array("customerid" => $Row['CustomerID'], "databasename" => $Database));
|
||||
|
||||
$stmt = Database::prepare("UPDATE `" . TABLE_PANEL_CUSTOMERS . "`
|
||||
SET `mysqls_used` = `mysqls_used` - 1
|
||||
WHERE `customerid` = :customerid"
|
||||
);
|
||||
Database::pexecute($stmt, array("customerid" => $Row['CustomerID']));
|
||||
}
|
||||
|
||||
// remove task & delete package instance + settings
|
||||
$del_stmt = Database::prepare("
|
||||
DELETE FROM `" . TABLE_APS_TASKS . "` WHERE `Task` = '" . TASK_REMOVE . "'
|
||||
AND `InstanceID` = :instanceid
|
||||
");
|
||||
Database::pexecute($del_stmt, array('instanceid' => $Row['InstanceID']));
|
||||
|
||||
$del_stmt = Database::prepare("
|
||||
DELETE FROM `" . TABLE_APS_INSTANCES . "` WHERE `ID` = :instanceid
|
||||
");
|
||||
Database::pexecute($del_stmt, array('instanceid' => $Row['InstanceID']));
|
||||
|
||||
$del_stmt = Database::prepare("
|
||||
DELETE FROM `" . TABLE_APS_SETTINGS . "` WHERE `InstanceID` = :instanceid
|
||||
");
|
||||
Database::pexecute($del_stmt, array('instanceid' => $Row['InstanceID']));
|
||||
|
||||
if ($this->RealPath != ''
|
||||
&& checkDisallowedPaths($this->RealPath)
|
||||
) {
|
||||
//remove data, #273
|
||||
if ($this->DomainPath != ''
|
||||
&& $this->DomainPath != '/'
|
||||
) {
|
||||
self::UnlinkRecursive($this->RealPath . $this->DomainPath . '/');
|
||||
} else {
|
||||
// save awstats/webalizer folder if it's the docroot
|
||||
self::UnlinkRecursive($this->RealPath . $this->DomainPath . '/', true);
|
||||
// place standard-index file
|
||||
$loginname = getLoginNameByUid($Row['CustomerID']);
|
||||
if ($loginname !== false) {
|
||||
storeDefaultIndex($loginname, $this->RealPath . $this->DomainPath . '/');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* setup all environment variables from the wizard, they're all needed by the installation script
|
||||
*
|
||||
* @param xml instance of a valid xml object with a parsed APP-META.xml file
|
||||
* @param row current entry from the database for app to handle
|
||||
* @param task numeric code to specify what to do
|
||||
*/
|
||||
private function PrepareWizardData($Xml, $Row, $Task) {
|
||||
|
||||
//data collected by wizard
|
||||
//FIXME install_only parameter/reconfigure
|
||||
$result_stmt = Database::prepare("
|
||||
SELECT * FROM `" . TABLE_APS_SETTINGS . "` WHERE `InstanceID` = :instanceid
|
||||
");
|
||||
Database::pexecute($result_stmt, array('instanceid' => $Row['InstanceID']));
|
||||
|
||||
while ($Row2 = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
//skip APS internal data
|
||||
if ($Row2['Name'] == 'main_location'
|
||||
|| $Row2['Name'] == 'main_domain'
|
||||
|| $Row2['Name'] == 'main_database_password'
|
||||
|| $Row2['Name'] == 'license'
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
putenv('SETTINGS_' . $Row2['Name'] . '=' . $Row2['Value']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* extract all needed files from the aps packages
|
||||
*
|
||||
* @param xml instance of a valid xml object with a parsed APP-META.xml file
|
||||
* @param row current entry from the database for app to handle
|
||||
* @param task numeric code to specify what to do
|
||||
* @return success true/error false
|
||||
*/
|
||||
private function PrepareFiles($Xml, $Row, $Task) {
|
||||
|
||||
if ($this->aps_version != '1.0') {
|
||||
$mapping = $Xml->service->provision->{'url-mapping'}->mapping;
|
||||
$mapping_path = $Xml->service->provision->{'url-mapping'}->mapping['path'];
|
||||
$mapping_url = $Xml->service->provision->{'url-mapping'}->mapping['url'];
|
||||
} else {
|
||||
$mapping = $Xml->mapping;
|
||||
$mapping_path = $Xml->mapping['path'];
|
||||
$mapping_url = $Xml->mapping['url'];
|
||||
}
|
||||
|
||||
if ($this->RealPath == '' || !checkDisallowedPaths($this->RealPath)) {
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_APS_INSTANCES . "` SET `Status` = " . INSTANCE_ERROR . " WHERE `ID` = :id
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('id' => $Row['InstanceID']));
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($Task == TASK_INSTALL) {
|
||||
//FIXME truncate customer directory
|
||||
//remove files from: $this->RealPath . $this->DomainPath . '/*'
|
||||
if (!file_exists($this->RealPath . $this->DomainPath . '/')) {
|
||||
mkdir($this->RealPath . $this->DomainPath . '/', 0777, true);
|
||||
}
|
||||
|
||||
//extract all files and chown them to the customer guid
|
||||
if (self::ExtractZip($this->RootDir . 'packages/' . $Row['Path'] . '/' . $Row['Path'], $mapping_path, $this->RealPath . $this->DomainPath . '/') == false
|
||||
|| self::ExtractZip($this->RootDir . 'packages/' . $Row['Path'] . '/' . $Row['Path'], 'scripts', $this->RealPath . $this->DomainPath . '/install_scripts/') == false
|
||||
) {
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_APS_INSTANCES . "` SET `Status` = " . INSTANCE_ERROR . " WHERE `ID` = :id
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('id' => $Row['InstanceID']));
|
||||
|
||||
//FIXME clean up already installed data
|
||||
//remove files from: $this->RealPath . $this->DomainPath . '/*'
|
||||
return false;
|
||||
}
|
||||
|
||||
safe_exec('chown -R ' . (int)$Row['guid'] . ':' . (int)$Row['guid'] . ' ' . escapeshellarg($this->RealPath . $this->DomainPath . '/'));
|
||||
|
||||
} else {
|
||||
|
||||
if (self::ExtractZip($this->RootDir . 'packages/' . $Row['Path'] . '/' . $Row['Path'], 'scripts', $this->RealPath . $this->DomainPath . '/install_scripts/') == false) {
|
||||
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_APS_INSTANCES . "` SET `Status` = " . INSTANCE_ERROR . " WHERE `ID` = :id
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('id' => $Row['InstanceID']));
|
||||
|
||||
//clean up already installed data
|
||||
self::UnlinkRecursive($this->RealPath . $this->DomainPath . '/install_scripts/');
|
||||
return false;
|
||||
}
|
||||
|
||||
//set right file owner
|
||||
safe_exec('chown -R ' . (int)$Row['guid'] . ':' . (int)$Row['guid'] . ' ' . escapeshellarg($this->RealPath . $this->DomainPath . '/'));
|
||||
}
|
||||
|
||||
//recursive mappings
|
||||
self::PrepareMappings($mapping, $mapping_url, $this->RealPath . $this->DomainPath . '/');
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* setup path environment variables for the installation script
|
||||
*
|
||||
* @param parentmapping instance of parsed xml file, current mapping position
|
||||
* @param url relative path for application specifying the current path within the mapping tree
|
||||
* @param path absolute path for application specifying the current path within the mapping tree
|
||||
*/
|
||||
private function PrepareMappings($ParentMapping, $Url, $Path) {
|
||||
|
||||
//check for special PHP permissions
|
||||
//must be done with xpath otherwise check not possible (XML parser problem with attributes)
|
||||
|
||||
if ($ParentMapping && $ParentMapping !== null) {
|
||||
|
||||
$ParentMapping->registerXPathNamespace('p', 'http://apstandard.com/ns/1/php');
|
||||
$Result = $ParentMapping->xpath('p:permissions');
|
||||
|
||||
if (is_array($Result)
|
||||
&& isset($Result[0])
|
||||
&& is_array($Result[0])
|
||||
) {
|
||||
if (isset($Result[0]['writable'])
|
||||
&& $Result[0]['writable'] == 'true'
|
||||
) {
|
||||
// fixing file permissions to writeable
|
||||
if (is_dir($Path)) {
|
||||
chmod($Path, 0775);
|
||||
} else {
|
||||
chmod($Path, 0664);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($Result[0]['readable'])
|
||||
&& $Result[0]['readable'] == 'false'
|
||||
) {
|
||||
//fixing file permissions to non readable
|
||||
if (is_dir($Path)) {
|
||||
chmod($Path, 0333);
|
||||
} else {
|
||||
chmod($Path, 0222);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//set environment variables
|
||||
$EnvVariable = str_replace("/", "_", $Url);
|
||||
putenv('WEB_' . $EnvVariable . '_DIR=' . $Path);
|
||||
|
||||
//resolve deeper mappings
|
||||
if ($ParentMapping && $ParentMapping !== null) {
|
||||
foreach ($ParentMapping->mapping as $Mapping) {
|
||||
//recursive check of other mappings
|
||||
if ($Url == '/') {
|
||||
self::PrepareMappings($Mapping, $Url . $Mapping['url'], $Path . $Mapping['url']);
|
||||
} else {
|
||||
self::PrepareMappings($Mapping, $Url . '/' . $Mapping['url'], $Path . '/' . $Mapping['url']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* setup domain environment variables for the installation script
|
||||
*
|
||||
* @param xml instance of a valid xml object with a parsed APP-META.xml file
|
||||
*/
|
||||
private function PrepareBasics($Row) {
|
||||
//domain
|
||||
$result_stmt = Database::prepare("
|
||||
SELECT * FROM `" . TABLE_APS_SETTINGS . "` WHERE `InstanceID` = :instanceid AND `Name` = 'main_domain'
|
||||
");
|
||||
$Row3 = Database::pexecute_first($result_stmt, array('instanceid' => $Row['InstanceID']));
|
||||
|
||||
$result_stmt = Database::prepare("
|
||||
SELECT * FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `id` = :domainid
|
||||
");
|
||||
$Row3 = Database::pexecute_first($result_stmt, array('instanceid' => $Row3['Value']));
|
||||
$this->Domain = $Row3['domain'];
|
||||
$this->RealPath = $Row3['documentroot'];
|
||||
|
||||
//location
|
||||
$result3_stmt = Database::prepare("
|
||||
SELECT * FROM `" . TABLE_APS_SETTINGS . "` WHERE `InstanceID` = :instanceid AND `Name` = 'main_location'
|
||||
");
|
||||
$Row3 = Database::pexecute_first($result_stmt, array('instanceid' => $Row['InstanceID']));
|
||||
$this->DomainPath = $Row3['Value'];
|
||||
|
||||
//if application is directly installed on domain remove / at the end
|
||||
if ($this->DomainPath == '') {
|
||||
$this->RealPath = substr($this->RealPath, 0, strlen($this->RealPath) - 1);
|
||||
}
|
||||
|
||||
//url environment variables
|
||||
putenv('BASE_URL_HOST=' . $this->Domain);
|
||||
putenv('BASE_URL_PATH=' . $this->DomainPath . '/');
|
||||
putenv('BASE_URL_SCHEME=http');
|
||||
}
|
||||
|
||||
/**
|
||||
* create a database if necessary and setup environment variables
|
||||
*
|
||||
* @param xml instance of a valid xml object with a parsed APP-META.xml file
|
||||
* @param row current entry from the database for app to handle
|
||||
* @param task numeric code to specify what to do
|
||||
*/
|
||||
private function PrepareDatabase($Xml, $Row, $Task) {
|
||||
|
||||
$XmlDb = $Xml->requirements->children('http://apstandard.com/ns/1/db');
|
||||
|
||||
if ($this->aps_version == '1.0') {
|
||||
// the good ole way
|
||||
$XmlDb = $Xml->requirements->children('http://apstandard.com/ns/1/db');
|
||||
} else {
|
||||
// since 1.1
|
||||
$Xml->registerXPathNamespace('db', 'http://apstandard.com/ns/1/db');
|
||||
|
||||
$XmlDb = new DynamicProperties;
|
||||
$XmlDb->db = new DynamicProperties;
|
||||
$XmlDb->db->id = getXPathValue($Xml, '//db:id');
|
||||
}
|
||||
|
||||
if ($XmlDb->db->id) {
|
||||
//database management
|
||||
$NewDatabase = 'web' . $Row['CustomerID'] . 'aps' . $Row['InstanceID'];
|
||||
$result_stmt = Database::prepare("
|
||||
SELECT * FROM `" . TABLE_APS_SETTINGS . "` WHERE `InstanceID` = :instanceid AND `Name` = 'main_database_password'
|
||||
");
|
||||
$Row3 = Database::pexecute_first($result_stmt, array('instanceid' => $Row['InstanceID']));
|
||||
$DbPassword = $Row3['Value'];
|
||||
|
||||
if ($Task == TASK_INSTALL) {
|
||||
Database::needRoot(true);
|
||||
$drp_stmt = Database::prepare("DROP DATABASE IF EXISTS :newdb");
|
||||
Database::pexecute($drp_stmt, array('newdb' => $NewDatabase));
|
||||
$crt_stmt = Database::prepare("CREATE DATABASE IF NOT EXISTS :newdb");
|
||||
Database::pexecute($crt_stmt, array('newdb' => $NewDatabase));
|
||||
|
||||
foreach (array_map('trim', explode(',', $this->Hosts)) as $DatabaseHost) {
|
||||
$stmt = Database::prepare("GRANT ALL PRIVILEGES ON `" . $NewDatabase . "`.*
|
||||
TO :username@:host
|
||||
IDENTIFIED BY 'password'"
|
||||
);
|
||||
Database::pexecute($stmt, array("username" => $NewDatabase, "host" => $DatabaseHost));
|
||||
$stmt = Database::prepare("SET PASSWORD FOR :username@:host = PASSWORD(:password)");
|
||||
Database::pexecute($stmt, array("username" => $NewDatabase, "host" => $DatabaseHost, "password" => $DbPassword));
|
||||
}
|
||||
Database::query('FLUSH PRIVILEGES');
|
||||
Database::needRoot(false);
|
||||
|
||||
// add database to customers databases, #272
|
||||
$databasedescription = $Xml->name.' '.$Xml->version.' (Release ' . $Xml->release . ')';
|
||||
$ins_stmt = Database::prepare("
|
||||
INSERT INTO `" . TABLE_PANEL_DATABASES . "`
|
||||
(`customerid`, `databasename`, `description`, `dbserver`, `apsdb`)
|
||||
VALUES
|
||||
(:customerid, :databasename, :desc, '0', '1')
|
||||
");
|
||||
$ins_data = array(
|
||||
'customerid' => $Row['CustomerID'],
|
||||
'databasename' => $NewDatabase,
|
||||
'desc' => $databasedescription
|
||||
);
|
||||
Database::pexecute($ins_stmt, $ins_data);
|
||||
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET
|
||||
`mysqls_used`=`mysqls_used`+1 WHERE `customerid` = :customerid
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('customerid' => $Row['CustomerID']));
|
||||
}
|
||||
|
||||
//get first mysql access host
|
||||
$AccessHosts = array_map('trim', explode(',', $this->Hosts));
|
||||
|
||||
//environment variables
|
||||
putenv('DB_' . $XmlDb->db->id . '_TYPE=mysql');
|
||||
putenv('DB_' . $XmlDb->db->id . '_NAME=' . $NewDatabase);
|
||||
putenv('DB_' . $XmlDb->db->id . '_LOGIN=' . $NewDatabase);
|
||||
putenv('DB_' . $XmlDb->db->id . '_PASSWORD=' . $DbPassword);
|
||||
putenv('DB_' . $XmlDb->db->id . '_HOST=' . $AccessHosts[0]);
|
||||
putenv('DB_' . $XmlDb->db->id . '_PORT=3306');
|
||||
putenv('DB_' . $XmlDb->db->id . '_VERSION=' . Database::getAttribute(PDO::ATTR_SERVER_VERSION));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* extract complete directories from a zipfile
|
||||
*
|
||||
* @param filename path to zipfile to extract
|
||||
* @param directory which directory in zipfile to extract
|
||||
* @param destination destination directory for files to extract
|
||||
* @return success true/error false
|
||||
*/
|
||||
private function ExtractZip($Filename, $Directory, $Destination) {
|
||||
|
||||
if (!file_exists($Filename)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// fix slash notation for correct paths
|
||||
if (substr($Directory, -1, 1) == '/') {
|
||||
$Directory = substr($Directory, 0, strlen($Directory) - 1);
|
||||
}
|
||||
|
||||
if (substr($Destination, -1, 1) != '/') {
|
||||
$Destination.= '/';
|
||||
}
|
||||
|
||||
//open zipfile to read its contents
|
||||
$ZipHandle = zip_open(realpath($Filename));
|
||||
|
||||
if (is_resource($ZipHandle)) {
|
||||
|
||||
while ($ZipEntry = zip_read($ZipHandle)) {
|
||||
|
||||
if (substr(zip_entry_name($ZipEntry), 0, strlen($Directory)) == $Directory) {
|
||||
//fix relative path from zipfile
|
||||
$NewPath = zip_entry_name($ZipEntry);
|
||||
$NewPath = substr($NewPath, strlen($Directory));
|
||||
|
||||
//directory
|
||||
if (substr($NewPath, -1, 1) == '/') {
|
||||
if(!file_exists($Destination . $NewPath))mkdir($Destination . $NewPath, 0777, true);
|
||||
} else {
|
||||
//files
|
||||
if (zip_entry_open($ZipHandle, $ZipEntry)) {
|
||||
// handle new directory
|
||||
$dir = dirname($Destination.$NewPath);
|
||||
if (!file_exists($dir)) {
|
||||
mkdir ($dir, 0777, true);
|
||||
}
|
||||
|
||||
$File = fopen($Destination . $NewPath, "wb");
|
||||
|
||||
if ($File) {
|
||||
while ($Line = zip_entry_read($ZipEntry)) {
|
||||
fwrite($File, $Line);
|
||||
}
|
||||
fclose($File);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
zip_close($ZipHandle);
|
||||
return true;
|
||||
|
||||
} else {
|
||||
|
||||
$ReturnLines = array();
|
||||
|
||||
// first 'true' to indicate that we want the return-status from exec.
|
||||
// after exec() is called, the value will be the return-status of the
|
||||
// program executed
|
||||
$ReturnVal = true;
|
||||
|
||||
|
||||
//on 64 bit systems the zip functions can fail -> use exec to extract the files
|
||||
$ReturnLines = safe_exec('unzip -o -qq ' . escapeshellarg(realpath($Filename)) . ' ' . escapeshellarg($Directory . '/*') . ' -d ' . escapeshellarg(sys_get_temp_dir()), $ReturnVal);
|
||||
|
||||
if ($ReturnVal == 0) {
|
||||
//fix absolute structure of extracted data
|
||||
if (!file_exists($Destination)) {
|
||||
mkdir($Destination, 0777, true);
|
||||
}
|
||||
safe_exec('cp -Rf ' . sys_get_temp_dir() . '/' . $Directory . '/*' . ' ' . escapeshellarg($Destination));
|
||||
self::UnlinkRecursive(sys_get_temp_dir() . '/' . $Directory . '/');
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,259 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Implementation of the Application Packaging Standard from SwSoft/Parallels
|
||||
* http://apsstandard.com
|
||||
*
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package APS
|
||||
*
|
||||
* @todo logging
|
||||
* install specific packages by name
|
||||
* other solution than using url_fopen
|
||||
* move url for distributionserver into panel
|
||||
*/
|
||||
|
||||
class ApsUpdater extends ApsParser {
|
||||
|
||||
private $settings = array();
|
||||
private $RequestDomain = '';
|
||||
private $RootUrl = '';
|
||||
private $RootDir = '';
|
||||
|
||||
/**
|
||||
* FroxlorLogger
|
||||
* @var FroxlorLogger
|
||||
*/
|
||||
private $_cronlog = null;
|
||||
|
||||
/**
|
||||
* constructor of class. setup some basic variables needed by class
|
||||
*
|
||||
* @param cronlog instance of the froxlor logger
|
||||
*/
|
||||
public function __construct($cronlog) {
|
||||
|
||||
$this->RequestDomain = 'apscatalog.com';
|
||||
$this->RootUrl = '/1/';
|
||||
$this->RootDir = dirname(dirname(dirname(dirname(__FILE__)))) . '/';
|
||||
$this->_cronlog = $cronlog;
|
||||
}
|
||||
|
||||
/**
|
||||
* Main function of class which handles all around the update mechanism
|
||||
*/
|
||||
public function UpdateHandler() {
|
||||
|
||||
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Changing directory to '" . $this->RootDir . "'");
|
||||
chdir($this->RootDir);
|
||||
|
||||
//return if allow_url_fopen is disabled
|
||||
if (!ini_get('allow_url_fopen')) {
|
||||
$this->_cronlog->logAction(CRON_ACTION, LOG_ERROR, "The APS updater cronjob requires that allow_url_fopen is enabled for the PHP CLI binary!");
|
||||
echo "The APS updater cronjob requires that allow_url_fopen is enabled for the PHP CLI binary!\n";
|
||||
return;
|
||||
}
|
||||
|
||||
//return if no task exists
|
||||
$Result_stmt = Database::query("SELECT * FROM `" . TABLE_APS_TASKS . "` WHERE `Task` IN (" . TASK_SYSTEM_UPDATE . ", " . TASK_SYSTEM_DOWNLOAD . ")");
|
||||
|
||||
if (Database::num_rows() == 0) {
|
||||
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "No tasks for ApsUpdater");
|
||||
return;
|
||||
}
|
||||
|
||||
//query first task -> updater can only do one job within a run
|
||||
$Task = $Result_stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$del_stmt = Database::prepare("
|
||||
DELETE FROM `" . TABLE_APS_TASKS . "` WHERE `Task` = :task
|
||||
");
|
||||
Database::pexecute($del_stmt, array('task' => $Task['Task']));
|
||||
|
||||
//fetch all vendors
|
||||
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Fetching all Vendors from '" . $this->RootUrl . "'");
|
||||
$Vendors = self::FetchSubUrls($this->RootUrl);
|
||||
|
||||
if ($Vendors !== false) {
|
||||
|
||||
foreach ($Vendors as $Vendor) {
|
||||
|
||||
//fetch all applications from vendors
|
||||
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Fetching all from Vendor '" . $Vendor. "'");
|
||||
$Applications = self::FetchSubUrls($this->RootUrl . $Vendor);
|
||||
|
||||
if ($Applications !== false) {
|
||||
|
||||
foreach ($Applications as $Application) {
|
||||
|
||||
//get newest version of package which is already installed
|
||||
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Checking application '" . substr($Application, 0, -1) . "'");
|
||||
|
||||
$CurrentVersion = '';
|
||||
$Result_stmt = Database::prepare("
|
||||
SELECT * FROM `" . TABLE_APS_PACKAGES . "` WHERE `Name` = :name
|
||||
");
|
||||
Database::pexecute($Result_stmt, array('name' => substr($Application, 0, -1)));
|
||||
$numrows_result = Database::num_rows();
|
||||
|
||||
while ($Row = $Result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
if (version_compare($Row['Version'] . '-' . $Row['Release'], $CurrentVersion) == 1) {
|
||||
$CurrentVersion = $Row['Version'] . '-' . $Row['Release'];
|
||||
}
|
||||
}
|
||||
|
||||
if ($numrows_result!= 0) {
|
||||
//package already installed in system, search for newer version
|
||||
if ($Task['Task'] != TASK_SYSTEM_UPDATE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//fetch different versions of application from distribution server
|
||||
$NewerVersion = '';
|
||||
$Versions = self::FetchSubUrls($this->RootUrl . $Vendor . $Application);
|
||||
|
||||
if ($Versions !== false) {
|
||||
foreach ($Versions as $Version) {
|
||||
$OnlineVersion = substr($Version, 0, -1);
|
||||
//is package newer than current version?
|
||||
if (version_compare($OnlineVersion, $CurrentVersion) == 1) {
|
||||
//is new package newer than another one found before?
|
||||
if (version_compare($OnlineVersion, $NewerVersion) == 1) {
|
||||
$NewerVersion = $OnlineVersion;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($NewerVersion != '') {
|
||||
//download package as an update
|
||||
self::DownloadPackage($this->RootUrl . $Vendor . $Application . $NewerVersion, substr($Application, 0, -1), $NewerVersion);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
if ($Task['Task'] != TASK_SYSTEM_DOWNLOAD) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//new packages
|
||||
$NewVersion = '';
|
||||
$Versions = self::FetchSubUrls($this->RootUrl . $Vendor . $Application);
|
||||
|
||||
foreach ($Versions as $Version) {
|
||||
$OnlineVersion = substr($Version, 0, -1);
|
||||
//is package newer than another one found before?
|
||||
if (version_compare($OnlineVersion, $NewVersion) == 1) {
|
||||
$NewVersion = $OnlineVersion;
|
||||
}
|
||||
}
|
||||
|
||||
if ($NewVersion != '') {
|
||||
//download package as a new one
|
||||
self::DownloadPackage($this->RootUrl . $Vendor . $Application . $NewVersion, substr($Application, 0, -1), $NewVersion);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* download a package from the distribution server and move the downloaded file in the temporary directory
|
||||
*
|
||||
* @param url url to download
|
||||
* @param application string identifying the application name
|
||||
* @param version string identifying the application version
|
||||
* @return success true/error false
|
||||
*/
|
||||
private function DownloadPackage($Url, $Application, $Version) {
|
||||
|
||||
$Downloads = self::FetchSubUrls($Url . '/');
|
||||
|
||||
//make url valid
|
||||
$path = dirname($Url);
|
||||
$file = urlencode(basename($Url));
|
||||
$file_url = 'http://' . $this->RequestDomain . $path . '/' . $file . '.aps' . $Downloads[0];
|
||||
|
||||
//get content from website url
|
||||
$this->_cronlog->logAction(CRON_ACTION, LOG_NOTICE, "Downloading '" . $file_url . "'");
|
||||
$Content = @file_get_contents($file_url);
|
||||
|
||||
if ($Content != false) {
|
||||
//open file to write contents on disk
|
||||
$FileHandle = fopen($this->RootDir . 'temp/' . $Application . '-' . $Version . '.app.zip', 'wb');
|
||||
|
||||
if ($FileHandle == true) {
|
||||
//write results to disk
|
||||
fwrite($FileHandle, $Content);
|
||||
fclose($FileHandle);
|
||||
|
||||
//set right permissions
|
||||
chmod($this->RootDir . 'temp/' . $Application . '-' . $Version . '.app.zip', 0664);
|
||||
return true;
|
||||
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* fetch html content of distribution server and parse all information
|
||||
*
|
||||
* @param requestdomain domain to aps-/mirrorserver with package api
|
||||
* @param url url to fetch sub links from
|
||||
* @return error false/success array with relative sub links
|
||||
*/
|
||||
private function FetchSubUrls($Url) {
|
||||
|
||||
$Return = array();
|
||||
|
||||
//make url valid
|
||||
$Url = str_replace(' ', '%20', $Url);
|
||||
$file_url = 'http://' . $this->RequestDomain . $Url;
|
||||
|
||||
//get content from website url
|
||||
$Content = @file($file_url);
|
||||
|
||||
if ($Content !== false) {
|
||||
|
||||
foreach ($Content as $Temp) {
|
||||
//skip empty lines
|
||||
if ($Temp != "\r\n"
|
||||
&& $Temp != "\r"
|
||||
&& $Temp != "\n"
|
||||
&& $Temp != ""
|
||||
) {
|
||||
//remove unwanted characters
|
||||
$Temp = trim($Temp);
|
||||
|
||||
//grep URLs which match defined format
|
||||
if (preg_match("/^<a href=\"(.+)\".+class=\"(vendor|application|version|packager)\"/", $Temp, $Matches)) {
|
||||
if (!in_array(urldecode($Matches[1]), $Return)) {
|
||||
$Return[] = urldecode($Matches[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $Return;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
<?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 APS
|
||||
*
|
||||
*/
|
||||
|
||||
class DynamicProperties { /* empty class for some magic */ }
|
||||
130
lib/classes/database/class.DbManager.php
Normal file
130
lib/classes/database/class.DbManager.php
Normal file
@@ -0,0 +1,130 @@
|
||||
<?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 Michael Kaufmann <mkaufmann@nutime.de>
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Classes
|
||||
*
|
||||
* @since 0.9.31
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class DbManager
|
||||
*
|
||||
* Wrapper-class for database-management like creating
|
||||
* and removing databases, users and permissions
|
||||
*
|
||||
* @copyright (c) the authors
|
||||
* @author Michael Kaufmann <mkaufmann@nutime.de>
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Classes
|
||||
*/
|
||||
class DbManager {
|
||||
|
||||
/**
|
||||
* Settings array
|
||||
* @var array
|
||||
*/
|
||||
private $_settings = null;
|
||||
|
||||
/**
|
||||
* FroxlorLogger object
|
||||
* @var object
|
||||
*/
|
||||
private $_log = null;
|
||||
|
||||
/**
|
||||
* Manager object
|
||||
* @var object
|
||||
*/
|
||||
private $_manager = null;
|
||||
|
||||
/**
|
||||
* main constructor
|
||||
*
|
||||
* @param array $settings
|
||||
* @param FroxlorLogger $log
|
||||
*/
|
||||
public function __construct($settings, &$log = null) {
|
||||
$this->_settings = $settings;
|
||||
$this->_log = $log;
|
||||
$this->_setManager();
|
||||
}
|
||||
|
||||
/**
|
||||
* creates a new database and a user with the
|
||||
* same name with all privileges granted on the db.
|
||||
* DB-name and user-name are being generated and
|
||||
* the password for the user will be set
|
||||
*
|
||||
* @param string $loginname
|
||||
* @param string $password
|
||||
* @param int $last_accnumber
|
||||
*
|
||||
* @return string $username
|
||||
*/
|
||||
public function createDatabase($loginname = null, $password = null, $last_accnumber = 0) {
|
||||
|
||||
Database::needRoot(true);
|
||||
|
||||
// check whether we shall create a random username
|
||||
if (strtoupper($this->_settings['customer']['mysqlprefix']) == 'RANDOM') {
|
||||
// get all usernames from db-manager
|
||||
$allsqlusers = $this->getManager()->getAllSqlUsers();
|
||||
// generate random username
|
||||
$username = $loginname . '-' . substr(md5(uniqid(microtime(), 1)), 20, 3);
|
||||
// check whether it exists on the DBMS
|
||||
while (in_array($username , $allsqlusers)) {
|
||||
$username = $loginname . '-' . substr(md5(uniqid(microtime(), 1)), 20, 3);
|
||||
}
|
||||
} else {
|
||||
$username = $loginname . $this->_settings['customer']['mysqlprefix'] . (intval($last_accnumber) + 1);
|
||||
}
|
||||
|
||||
// now create the database itself
|
||||
$this->getManager()->createDatabase($username);
|
||||
$this->_log->logAction(USR_ACTION, LOG_INFO, "created database '" . $username . "'");
|
||||
|
||||
// and give permission to the user on every access-host we have
|
||||
foreach (array_map('trim', explode(',', $this->_settings['system']['mysql_access_host'])) as $mysql_access_host) {
|
||||
$this->getManager()->grantPrivilegesTo($username, $password, $mysql_access_host);
|
||||
$this->_log->logAction(USR_ACTION, LOG_NOTICE, "grant all privileges for '" . $username . "'@'" . $mysql_access_host . "'");
|
||||
}
|
||||
|
||||
$this->getManager()->flushPrivileges();
|
||||
|
||||
Database::needRoot(false);
|
||||
|
||||
return $username;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the manager-object
|
||||
* from where we can control it
|
||||
*/
|
||||
public function getManager() {
|
||||
return $this->_manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* set manager-object by type of
|
||||
* dbms: mysql only for now
|
||||
*
|
||||
* sets private $_manager variable
|
||||
*/
|
||||
private function _setManager() {
|
||||
// TODO read different dbms from settings later
|
||||
$this->_manager = new DbManagerMySQL($this->_settings, $this->_log);
|
||||
}
|
||||
}
|
||||
196
lib/classes/database/manager/class.DbManagerMySQL.php
Normal file
196
lib/classes/database/manager/class.DbManagerMySQL.php
Normal file
@@ -0,0 +1,196 @@
|
||||
<?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 Michael Kaufmann <mkaufmann@nutime.de>
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Classes
|
||||
*
|
||||
* @since 0.9.31
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class DbManagerMySQL
|
||||
*
|
||||
* Explicit class for database-management like creating
|
||||
* and removing databases, users and permissions for MySQL
|
||||
*
|
||||
* @copyright (c) the authors
|
||||
* @author Michael Kaufmann <mkaufmann@nutime.de>
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Classes
|
||||
*/
|
||||
class DbManagerMySQL {
|
||||
|
||||
/**
|
||||
* Settings array
|
||||
* @var array
|
||||
*/
|
||||
private $_settings = null;
|
||||
|
||||
/**
|
||||
* FroxlorLogger object
|
||||
* @var object
|
||||
*/
|
||||
private $_log = null;
|
||||
|
||||
/**
|
||||
* main constructor
|
||||
*
|
||||
* @param array $settings
|
||||
* @param FroxlorLogger $log
|
||||
*/
|
||||
public function __construct($settings, &$log = null) {
|
||||
$this->_settings = $settings;
|
||||
$this->_log = $log;
|
||||
}
|
||||
|
||||
/**
|
||||
* creates a database
|
||||
*
|
||||
* @param string $dbname
|
||||
*/
|
||||
public function createDatabase($dbname = null) {
|
||||
Database::query("CREATE DATABASE `" . $dbname . "`");
|
||||
}
|
||||
|
||||
/**
|
||||
* grants access privileges on a database with the same
|
||||
* username and sets the password for that user the given access_host
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
* @param string $access_host
|
||||
*/
|
||||
public function grantPrivilegesTo($username = null, $password = null, $access_host = null) {
|
||||
// grant privileges
|
||||
$stmt = Database::prepare("
|
||||
GRANT ALL PRIVILEGES ON `" . $username . "`.*
|
||||
TO :username@:host IDENTIFIED BY 'password'
|
||||
");
|
||||
Database::pexecute($stmt, array("username" => $username, "host" => $access_host));
|
||||
// set passoword
|
||||
$stmt = Database::prepare("SET PASSWORD FOR :username@:host = PASSWORD(:password)");
|
||||
Database::pexecute($stmt, array("username" => $username, "host" => $access_host, "password" => $password));
|
||||
}
|
||||
|
||||
/**
|
||||
* removes the given database from the dbms and also
|
||||
* takes away any privileges from a user to that db
|
||||
*
|
||||
* @param string $dbname
|
||||
*/
|
||||
public function deleteDatabase($dbname = null) {
|
||||
|
||||
if (Database::getAttribute(PDO::ATTR_SERVER_VERSION) < '5.0.2') {
|
||||
// failsafe if user has been deleted manually (requires MySQL 4.1.2+)
|
||||
$stmt = Database::prepare("REVOKE ALL PRIVILEGES, GRANT OPTION FROM `".$dbname."`");
|
||||
Database::pexecute($stmt, array(), false);
|
||||
}
|
||||
|
||||
$host_res_stmt = Database::prepare("
|
||||
SELECT `Host` FROM `mysql`.`user` WHERE `User` = :dbname"
|
||||
);
|
||||
Database::pexecute($host_res_stmt, array('dbname' => $dbname));
|
||||
|
||||
while ($host = $host_res_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
// as of MySQL 5.0.2 this also revokes privileges. (requires MySQL 4.1.2+)
|
||||
$drop_stmt = Database::prepare("DROP USER :dbname@:host");
|
||||
Database::pexecute($drop_stmt, array(':dbname' => $dbname, ':host' => $host['Host']), false);
|
||||
}
|
||||
|
||||
$drop_stmt = Database::prepare("DROP DATABASE IF EXISTS `".$dbname."`");
|
||||
Database::pexecute($drop_stmt);
|
||||
}
|
||||
|
||||
/**
|
||||
* removes a user from the dbms and revokes all privileges
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $host
|
||||
*/
|
||||
public function deleteUser($username = null, $host = null) {
|
||||
if (Database::getAttribute(PDO::ATTR_SERVER_VERSION) < '5.0.2') {
|
||||
// Revoke privileges (only required for MySQL 4.1.2 - 5.0.1)
|
||||
$stmt = Database::prepare("REVOKE ALL PRIVILEGES ON * . * FROM `". $username . "`@`".$host."`");
|
||||
Database::pexecute($stmt);
|
||||
}
|
||||
// as of MySQL 5.0.2 this also revokes privileges. (requires MySQL 4.1.2+)
|
||||
$stmt = Database::prepare("DROP USER :username@:host");
|
||||
Database::pexecute($stmt, array("username" => $username, "host" => $host));
|
||||
}
|
||||
|
||||
/**
|
||||
* removes permissions from a user
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $host (unused in mysql)
|
||||
*/
|
||||
public function disableUser($username = null, $host = null) {
|
||||
$stmt = Database::prepare("REVOKE ALL PRIVILEGES, GRANT OPTION FROM `".$row_database['databasename']."`");
|
||||
Database::pexecute($stmt, array(), false);
|
||||
}
|
||||
|
||||
/**
|
||||
* re-grant permissions to a user
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $host
|
||||
*/
|
||||
public function enableUser($username = null, $host = null) {
|
||||
Database::query('GRANT ALL PRIVILEGES ON `' . $username .'`.* TO `' . $username . '`@`' . $host . '`');
|
||||
Database::query('GRANT ALL PRIVILEGES ON `' . str_replace('_', '\_', $username) . '` . * TO `' . $username . '`@`' . $host . '`');
|
||||
}
|
||||
|
||||
/**
|
||||
* flushes the privileges...pretty obvious eh?
|
||||
*/
|
||||
public function flushPrivileges() {
|
||||
Database::query("FLUSH PRIVILEGES");
|
||||
}
|
||||
|
||||
/**
|
||||
* return an array of all usernames used in that DBMS
|
||||
*
|
||||
* @param bool $user_only if false, * will be selected from mysql.user and slightly different array will be generated
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getAllSqlUsers($user_only = true) {
|
||||
|
||||
if ($user_only == false) {
|
||||
$result_stmt = Database::prepare('SELECT * FROM mysql.user');
|
||||
} else {
|
||||
$result_stmt = Database::prepare('SELECT `User` FROM mysql.user');
|
||||
}
|
||||
Database::pexecute($result_stmt);
|
||||
$allsqlusers = array();
|
||||
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
if ($user_only == false) {
|
||||
if (!isset($allsqlusers[$row['User']])
|
||||
|| !is_array($allsqlusers[$row['User']])
|
||||
) {
|
||||
$allsqlusers[$row['User']] = array(
|
||||
'password' => $row['Password'],
|
||||
'hosts' => array()
|
||||
);
|
||||
}
|
||||
$allsqlusers[$row['User']]['hosts'][] = $row['Host'];
|
||||
} else {
|
||||
$allsqlusers[] = $row['User'];
|
||||
}
|
||||
}
|
||||
return $allsqlusers;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -177,14 +177,6 @@ return array(
|
||||
'mandatory' => true,
|
||||
'ul_field' => $email_quota_ul
|
||||
),
|
||||
'email_autoresponder' => array(
|
||||
'label' => $lng['customer']['autoresponder'],
|
||||
'type' => 'textul',
|
||||
'value' => 0,
|
||||
'maxlength' => 9,
|
||||
'visible' => ($settings['autoresponder']['autoresponder_active'] == '1' ? true : false),
|
||||
'ul_field' => $email_autoresponder_ul
|
||||
),
|
||||
'ftps' => array(
|
||||
'label' => $lng['customer']['ftps'],
|
||||
'type' => 'textul',
|
||||
@@ -215,23 +207,6 @@ return array(
|
||||
'maxlength' => 9,
|
||||
'mandatory' => true,
|
||||
'ul_field' => $mysqls_ul
|
||||
),
|
||||
'can_manage_aps_packages' => array(
|
||||
'label' => $lng['aps']['canmanagepackages'],
|
||||
'type' => 'checkbox',
|
||||
'values' => array(
|
||||
array ('label' => $lng['panel']['yes'], 'value' => '1')
|
||||
),
|
||||
'value' => array(),
|
||||
'visible' => ($settings['aps']['aps_active'] == '1' ? true : false)
|
||||
),
|
||||
'number_of_aps_packages' => array(
|
||||
'label' => $lng['aps']['numberofapspackages'],
|
||||
'type' => 'textul',
|
||||
'value' => 0,
|
||||
'maxlength' => 9,
|
||||
'visible' => ($settings['aps']['aps_active'] == '1' ? true : false),
|
||||
'ul_field' => $number_of_aps_packages_ul
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -191,14 +191,6 @@ return array(
|
||||
'mandatory' => true,
|
||||
'ul_field' => $email_quota_ul
|
||||
),
|
||||
'email_autoresponder' => array(
|
||||
'label' => $lng['customer']['autoresponder'],
|
||||
'type' => 'textul',
|
||||
'value' => $result['email_autoresponder'],
|
||||
'maxlength' => 9,
|
||||
'visible' => ($settings['autoresponder']['autoresponder_active'] == '1' ? true : false),
|
||||
'ul_field' => $email_autoresponder_ul
|
||||
),
|
||||
'ftps' => array(
|
||||
'label' => $lng['customer']['ftps'],
|
||||
'type' => 'textul',
|
||||
@@ -229,23 +221,6 @@ return array(
|
||||
'maxlength' => 9,
|
||||
'mandatory' => true,
|
||||
'ul_field' => $mysqls_ul
|
||||
),
|
||||
'can_manage_aps_packages' => array(
|
||||
'label' => $lng['aps']['canmanagepackages'],
|
||||
'type' => 'checkbox',
|
||||
'values' => array(
|
||||
array ('label' => $lng['panel']['yes'], 'value' => '1')
|
||||
),
|
||||
'value' => array($result['can_manage_aps_packages']),
|
||||
'visible' => ($settings['aps']['aps_active'] == '1' ? true : false)
|
||||
),
|
||||
'number_of_aps_packages' => array(
|
||||
'label' => $lng['aps']['numberofapspackages'],
|
||||
'type' => 'textul',
|
||||
'value' => $result['aps_packages'],
|
||||
'maxlength' => 9,
|
||||
'visible' => ($settings['aps']['aps_active'] == '1' ? true : false),
|
||||
'ul_field' => $number_of_aps_packages_ul
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -185,14 +185,6 @@ return array(
|
||||
'mandatory' => true,
|
||||
'ul_field' => $email_quota_ul
|
||||
),
|
||||
'email_autoresponder' => array(
|
||||
'label' => $lng['customer']['autoresponder'],
|
||||
'type' => 'textul',
|
||||
'value' => 0,
|
||||
'maxlength' => 9,
|
||||
'visible' => ($settings['autoresponder']['autoresponder_active'] == '1' ? true : false),
|
||||
'ul_field' => $email_autoresponder_ul
|
||||
),
|
||||
'email_imap' => array(
|
||||
'label' => $lng['customer']['email_imap'],
|
||||
'type' => 'checkbox',
|
||||
@@ -248,22 +240,6 @@ return array(
|
||||
'values' => array(
|
||||
array ('label' => $lng['panel']['yes'], 'value' => '1')
|
||||
)
|
||||
),
|
||||
'backup_allowed' => array(
|
||||
'label' => $lng['backup_allowed'].'?',
|
||||
'type' => 'checkbox',
|
||||
'values' => array(
|
||||
array ('label' => $lng['panel']['yes'], 'value' => '1')
|
||||
),
|
||||
'visible' => ($settings['system']['backup_enabled'] == '1' ? true : false)
|
||||
),
|
||||
'number_of_aps_packages' => array(
|
||||
'label' => $lng['aps']['numberofapspackages'],
|
||||
'type' => 'textul',
|
||||
'value' => 0,
|
||||
'maxlength' => 9,
|
||||
'visible' => ($settings['aps']['aps_active'] == '1' ? true : false),
|
||||
'ul_field' => $number_of_aps_packages_ul
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -193,14 +193,6 @@ return array(
|
||||
'mandatory' => true,
|
||||
'ul_field' => $email_quota_ul
|
||||
),
|
||||
'email_autoresponder' => array(
|
||||
'label' => $lng['customer']['autoresponder'],
|
||||
'type' => 'textul',
|
||||
'value' => $result['email_autoresponder'],
|
||||
'maxlength' => 9,
|
||||
'visible' => ($settings['autoresponder']['autoresponder_active'] == '1' ? true : false),
|
||||
'ul_field' => $email_autoresponder_ul
|
||||
),
|
||||
'email_imap' => array(
|
||||
'label' => $lng['customer']['email_imap'],
|
||||
'type' => 'checkbox',
|
||||
@@ -257,23 +249,6 @@ return array(
|
||||
array ('label' => $lng['panel']['yes'], 'value' => '1')
|
||||
),
|
||||
'value' => array($result['perlenabled'])
|
||||
),
|
||||
'backup_allowed' => array(
|
||||
'label' => $lng['backup_allowed'].'?',
|
||||
'type' => 'checkbox',
|
||||
'values' => array(
|
||||
array ('label' => $lng['panel']['yes'], 'value' => '1')
|
||||
),
|
||||
'value' => array($result['backup_allowed']),
|
||||
'visible' => ($settings['system']['backup_enabled'] == '1' ? true : false)
|
||||
),
|
||||
'number_of_aps_packages' => array(
|
||||
'label' => $lng['aps']['numberofapspackages'],
|
||||
'type' => 'textul',
|
||||
'value' => $result['aps_packages'],
|
||||
'maxlength' => 9,
|
||||
'visible' => ($settings['aps']['aps_active'] == '1' ? true : false),
|
||||
'ul_field' => $number_of_aps_packages_ul
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
<?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 Formfields
|
||||
*
|
||||
*/
|
||||
|
||||
return array(
|
||||
'autoresponder_add' => array(
|
||||
'title' => $lng['autoresponder']['autoresponder_new'],
|
||||
'image' => 'icons/autoresponder_add.png',
|
||||
'sections' => array(
|
||||
'section_a' => array(
|
||||
'title' => $lng['autoresponder']['autoresponder_new'],
|
||||
'image' => 'icons/autoresponder_add.png',
|
||||
'fields' => array(
|
||||
'account' => array(
|
||||
'label' => $lng['autoresponder']['account'],
|
||||
'type' => 'select',
|
||||
'select_var' => $accounts,
|
||||
),
|
||||
'active' => array(
|
||||
'label' => $lng['autoresponder']['active'],
|
||||
'type' => 'checkbox',
|
||||
'values' => array(
|
||||
array ('label' => $lng['panel']['yes'], 'value' => '1')
|
||||
),
|
||||
'value' => array('1')
|
||||
),
|
||||
'date_from' => array(
|
||||
'label' => $lng['autoresponder']['date_from'] . " (dd-mm-yyyy)",
|
||||
'type' => 'textul',
|
||||
'maxlength' => 10,
|
||||
'ul_field' => $date_from_off,
|
||||
),
|
||||
'date_until' => array(
|
||||
'label' => $lng['autoresponder']['date_until'] . " (dd-mm-yyyy)",
|
||||
'type' => 'textul',
|
||||
'maxlength' => 10,
|
||||
'ul_field' => $date_until_off,
|
||||
),
|
||||
'subject' => array(
|
||||
'label' => $lng['autoresponder']['subject'],
|
||||
'type' => 'text',
|
||||
),
|
||||
'message' => array(
|
||||
'style' => 'vertical-align:top;',
|
||||
'label' => $lng['autoresponder']['message'],
|
||||
'type' => 'textarea',
|
||||
'cols' => 60,
|
||||
'rows' => 12
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -1,71 +0,0 @@
|
||||
<?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 Formfields
|
||||
*
|
||||
*/
|
||||
|
||||
return array(
|
||||
'autoresponder_edit' => array(
|
||||
'title' => $lng['autoresponder']['autoresponder_edit'],
|
||||
'image' => 'icons/autoresponder_edit.png',
|
||||
'sections' => array(
|
||||
'section_a' => array(
|
||||
'title' => $lng['autoresponder']['autoresponder_edit'],
|
||||
'image' => 'icons/autoresponder_edit.png',
|
||||
'fields' => array(
|
||||
'account' => array(
|
||||
'label' => $lng['autoresponder']['account'],
|
||||
'type' => 'label',
|
||||
'value' => $email,
|
||||
),
|
||||
'active' => array(
|
||||
'label' => $lng['autoresponder']['active'],
|
||||
'type' => 'checkbox',
|
||||
'values' => array(
|
||||
array ('label' => $lng['panel']['yes'], 'value' => '1')
|
||||
),
|
||||
'value' => array($row['enabled'])
|
||||
),
|
||||
'date_from' => array(
|
||||
'label' => $lng['autoresponder']['date_from'] . " (dd-mm-yyyy)",
|
||||
'type' => 'textul',
|
||||
'maxlength' => 10,
|
||||
'ul_field' => $date_from_off,
|
||||
'value' => $date_from,
|
||||
),
|
||||
'date_until' => array(
|
||||
'label' => $lng['autoresponder']['date_until'] . " (dd-mm-yyyy)",
|
||||
'type' => 'textul',
|
||||
'maxlength' => 10,
|
||||
'ul_field' => $date_until_off,
|
||||
'value' => $date_until,
|
||||
),
|
||||
'subject' => array(
|
||||
'label' => $lng['autoresponder']['subject'],
|
||||
'type' => 'text',
|
||||
'value' => $subject
|
||||
),
|
||||
'message' => array(
|
||||
'style' => 'vertical-align:top;',
|
||||
'label' => $lng['autoresponder']['message'],
|
||||
'type' => 'textarea',
|
||||
'cols' => 60,
|
||||
'rows' => 12,
|
||||
'value' => $message,
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -1,36 +0,0 @@
|
||||
<?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 Formfields
|
||||
*/
|
||||
|
||||
return array(
|
||||
'backup' => array(
|
||||
'title' => $lng['backup'],
|
||||
'image' => 'icons/backup.png',
|
||||
'sections' => array(
|
||||
'section_a' => array(
|
||||
'title' => $lng['backup'],
|
||||
'image' => 'icons/backup.png',
|
||||
'fields' => array(
|
||||
'path' => array(
|
||||
'label' => $lng['extras']['backup_create'],
|
||||
'desc' => sprintf($lng['extras']['backup_info'], $userinfo['loginname']).'<br />'.($settings['system']['backup_bigfile'] == 1 ? $lng['extras']['backup_info_big'] : $lng['extras']['backup_info_sep']).'<br />'.($settings['system']['backup_count'] == 1 ? $lng['extras']['backup_count_info'] : ''),
|
||||
'type' => 'yesno',
|
||||
'yesno_var' => $backup_enabled
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -1,47 +0,0 @@
|
||||
<?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
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* 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 $settings, $theme;
|
||||
|
||||
if ($settings['aps']['aps_active'] == '1') {
|
||||
if ($domainid > 0) {
|
||||
$instances_stmt = Database::prepare("
|
||||
SELECT COUNT(`ID`) AS `count` FROM `" . TABLE_APS_SETTINGS . "`
|
||||
WHERE `Name` = 'main_domain' AND `Value` = :domainid"
|
||||
);
|
||||
$instances = Database::pexecute_first($instances_stmt, array('domainid' => $domainid));
|
||||
|
||||
if ((int)$instances['count'] != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
<?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 APS
|
||||
*
|
||||
*/
|
||||
|
||||
function getXPathValue($xmlobj = null, $path = null, $single = true)
|
||||
{
|
||||
$result = null;
|
||||
|
||||
$tmpxml = new DynamicProperties;
|
||||
$tmpxml = ($xmlobj->xpath($path)) ? $xmlobj->xpath($path) : false;
|
||||
|
||||
if($result !== false)
|
||||
{
|
||||
$result = ($single == true) ? (string)$tmpxml[0] : $tmpxml;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Functions
|
||||
*
|
||||
*/
|
||||
|
||||
function storeSettingApsPhpExtensions($fieldname, $fielddata, $newfieldvalue)
|
||||
{
|
||||
$returnvalue = storeSettingField($fieldname, $fielddata, $newfieldvalue);
|
||||
|
||||
if($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'aps' && isset($fielddata['varname']) && $fielddata['varname'] == 'php-extension')
|
||||
{
|
||||
$newfieldvalue_array = explode(',', $newfieldvalue);
|
||||
|
||||
if(in_array('mcrypt', $newfieldvalue_array))
|
||||
{
|
||||
$functions = 'mcrypt_encrypt,mcrypt_decrypt';
|
||||
}
|
||||
else
|
||||
{
|
||||
$functions = '';
|
||||
}
|
||||
|
||||
if($functions != getSetting('aps', 'php-function'))
|
||||
{
|
||||
saveSetting('aps', 'php-function', $functions);
|
||||
}
|
||||
}
|
||||
|
||||
return $returnvalue;
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Functions
|
||||
*
|
||||
*/
|
||||
|
||||
function storeSettingApsWebserverModules($fieldname, $fielddata, $newfieldvalue)
|
||||
{
|
||||
if(is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'aps' && isset($fielddata['varname']) && $fielddata['varname'] == 'webserver-module')
|
||||
{
|
||||
$newfieldvalue_array = explode(',', $newfieldvalue);
|
||||
|
||||
if(in_array('mod_rewrite', $newfieldvalue_array))
|
||||
{
|
||||
// Don't have to guess if we have to remove the leading comma as mod_rewrite is set anyways when we're here...
|
||||
$newfieldvalue .= ',mod_rewrite.c';
|
||||
}
|
||||
|
||||
if(in_array('htaccess', $newfieldvalue_array))
|
||||
{
|
||||
$htaccess = 'htaccess';
|
||||
}
|
||||
else
|
||||
{
|
||||
$htaccess = '';
|
||||
}
|
||||
|
||||
if($htaccess != getSetting('aps', 'webserver-htaccess'))
|
||||
{
|
||||
saveSetting('aps', 'webserver-htaccess', $htaccess);
|
||||
}
|
||||
}
|
||||
|
||||
return storeSettingField($fieldname, $fielddata, $newfieldvalue);
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Functions
|
||||
*
|
||||
*/
|
||||
|
||||
if(!function_exists('sys_get_temp_dir'))
|
||||
{
|
||||
/**
|
||||
* function will return the temporary directory where we can write data
|
||||
* function exists as a fallback for php versions lower than 5.2.1
|
||||
* source copied from php.net
|
||||
*
|
||||
* @author Sven Skrabal <info@nexpa.de>
|
||||
*/
|
||||
|
||||
function sys_get_temp_dir()
|
||||
{
|
||||
// Try to get from environment variable
|
||||
|
||||
if(!empty($_ENV['TMP']))
|
||||
{
|
||||
return realpath($_ENV['TMP']);
|
||||
}
|
||||
elseif(!empty($_ENV['TMPDIR']))
|
||||
{
|
||||
return realpath($_ENV['TMPDIR']);
|
||||
}
|
||||
elseif(!empty($_ENV['TEMP']))
|
||||
{
|
||||
return realpath($_ENV['TEMP']);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Detect by creating a temporary file
|
||||
// Try to use system's temporary directory
|
||||
// as random name shouldn't exist
|
||||
|
||||
$temp_file = tempnam(md5(uniqid(rand(), true)), '');
|
||||
|
||||
if($temp_file)
|
||||
{
|
||||
$temp_dir = realpath(dirname($temp_file));
|
||||
unlink($temp_file);
|
||||
return $temp_dir;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -27,24 +27,17 @@ function correctMysqlUsers($mysql_access_host_array) {
|
||||
$sql_root = Database::getSqlData();
|
||||
Database::needRoot(false);
|
||||
|
||||
foreach ($sql_root as $mysql_server => $mysql_server_details) {
|
||||
$dbservers_stmt = Database::query("SELECT DISTINCT `dbserver` FROM `".TABLE_PANEL_DATABASES."`");
|
||||
$mysql_servers = '';
|
||||
|
||||
Database::needRoot(true);
|
||||
while ($dbserver = $dbservers_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
|
||||
$users = array();
|
||||
$users_result_stmt = Database::query("SELECT * FROM `mysql`.`user`");
|
||||
Database::needRoot(true, $dbserver['dbserver']);
|
||||
Database::needSqlData();
|
||||
$sql_root = Database::getSqlData();
|
||||
|
||||
while ($users_row = $users_result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
if (!isset($users[$users_row['User']])
|
||||
|| !is_array($users[$users_row['User']])
|
||||
) {
|
||||
$users[$users_row['User']] = array(
|
||||
'password' => $users_row['Password'],
|
||||
'hosts' => array()
|
||||
);
|
||||
}
|
||||
$users[$users_row['User']]['hosts'][] = $users_row['Host'];
|
||||
}
|
||||
$dbm = new DbManager($settings);
|
||||
$users = $dbm->getManager()->getAllSqlUsers(false);
|
||||
|
||||
$databases = array(
|
||||
$sql_root['db']
|
||||
@@ -53,7 +46,7 @@ function correctMysqlUsers($mysql_access_host_array) {
|
||||
SELECT * FROM `" . TABLE_PANEL_DATABASES . "`
|
||||
WHERE `dbserver` = :mysqlserver
|
||||
");
|
||||
Database::pexecute($databases_result_stmt, array('mysqlserver' => $mysql_server));
|
||||
Database::pexecute($databases_result_stmt, array('mysqlserver' => $dbserver['dbserver']));
|
||||
|
||||
while ($databases_row = $databases_result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$databases[] = $databases_row['databasename'];
|
||||
@@ -74,34 +67,20 @@ function correctMysqlUsers($mysql_access_host_array) {
|
||||
$mysql_access_host = trim($mysql_access_host);
|
||||
|
||||
if (!in_array($mysql_access_host, $users[$username]['hosts'])) {
|
||||
$stmt = Database::prepare("GRANT ALL PRIVILEGES ON `" . $username . "`.*
|
||||
TO :username@:host
|
||||
IDENTIFIED BY 'password'"
|
||||
);
|
||||
Database::pexecute($stmt, array("username" => $username, "host" => $mysql_access_host));
|
||||
$stmt = Database::prepare("SET PASSWORD FOR :username@:host = :password");
|
||||
Database::pexecute($stmt, array("username" => $username, "host" => $mysql_access_host, "password" => $password));
|
||||
$dbm->getManager()->grantPrivilegesTo($username, $password, $mysql_access_host);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($users[$username]['hosts'] as $mysql_access_host) {
|
||||
|
||||
if (!in_array($mysql_access_host, $mysql_access_host_array)) {
|
||||
|
||||
if (Database::getAttribute(PDO::ATTR_SERVER_VERSION) < '5.0.2') {
|
||||
// Revoke privileges (only required for MySQL 4.1.2 - 5.0.1)
|
||||
$stmt = Database::prepare("REVOKE ALL PRIVILEGES ON * . * FROM `". $username . "`@`".$mysql_access_host."`");
|
||||
Database::pexecute($stmt);
|
||||
}
|
||||
// as of MySQL 5.0.2 this also revokes privileges. (requires MySQL 4.1.2+)
|
||||
$stmt = Database::prepare("DROP USER :username@:host");
|
||||
Database::pexecute($stmt, array("username" => $username, "host" => $mysql_access_host));
|
||||
$dbm->getManager()->deleteUser($username, $mysql_access_host);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Database::query('FLUSH PRIVILEGES');
|
||||
$dbm->flushPrivileges();
|
||||
Database::needRoot(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
/**
|
||||
* Function getNextCronjobs
|
||||
*
|
||||
* checks which cronjobs have to be executed
|
||||
@@ -206,40 +206,6 @@ function getOutstandingTasks() {
|
||||
}
|
||||
}
|
||||
|
||||
$query2 = "SELECT DISTINCT `Task` FROM `".TABLE_APS_TASKS."` ORDER BY `Task` ASC";
|
||||
$result2 = Database::query($query2);
|
||||
|
||||
while ($row2 = $result2->fetch(PDO::FETCH_ASSOC)) {
|
||||
// install
|
||||
if ($row2['Task'] == '1') {
|
||||
$task_desc = $lng['tasks']['aps_task_install'];
|
||||
}
|
||||
// remove
|
||||
elseif ($row2['Task'] == '2') {
|
||||
$task_desc = $lng['tasks']['aps_task_remove'];
|
||||
}
|
||||
// reconfigure
|
||||
elseif ($row2['Task'] == '3') {
|
||||
$task_desc = $lng['tasks']['aps_task_reconfigure'];
|
||||
}
|
||||
// upgrade
|
||||
elseif ($row2['Task'] == '4') {
|
||||
$task_desc = $lng['tasks']['aps_task_upgrade'];
|
||||
}
|
||||
// system update
|
||||
elseif ($row2['Task'] == '5') {
|
||||
$task_desc = $lng['tasks']['aps_task_sysupdate'];
|
||||
}
|
||||
// system download
|
||||
elseif ($row2['Task'] == '6') {
|
||||
$task_desc = $lng['tasks']['aps_task_sysdownload'];
|
||||
}
|
||||
|
||||
if($task_desc != '') {
|
||||
$tasks .= '<li>'.$task_desc.'</li>';
|
||||
}
|
||||
}
|
||||
|
||||
if (trim($tasks) == '') {
|
||||
$value .= '<li>'.$lng['tasks']['noneoutstanding'].'</li>';
|
||||
} else {
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
* @author Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
*/
|
||||
|
||||
function updateCounters($returndebuginfo = false) {
|
||||
global $theme;
|
||||
$returnval = array();
|
||||
@@ -119,14 +118,6 @@ function updateCounters($returndebuginfo = false) {
|
||||
$admin_resources[$customer['adminid']]['email_quota_used']+= intval_ressource($customer['email_quota']);
|
||||
}
|
||||
|
||||
if(!isset($admin_resources[$customer['adminid']]['email_autoresponder_used'])) {
|
||||
$admin_resources[$customer['adminid']]['email_autoresponder_used'] = 0;
|
||||
}
|
||||
|
||||
if($customer['email_autoresponder'] != '-1') {
|
||||
$admin_resources[$customer['adminid']]['email_autoresponder_used']+= intval_ressource($customer['email_autoresponder']);
|
||||
}
|
||||
|
||||
if(!isset($admin_resources[$customer['adminid']]['subdomains_used'])) {
|
||||
$admin_resources[$customer['adminid']]['subdomains_used'] = 0;
|
||||
}
|
||||
@@ -135,14 +126,6 @@ function updateCounters($returndebuginfo = false) {
|
||||
$admin_resources[$customer['adminid']]['subdomains_used']+= intval_ressource($customer['subdomains']);
|
||||
}
|
||||
|
||||
if(!isset($admin_resources[$customer['adminid']]['aps_packages_used'])) {
|
||||
$admin_resources[$customer['adminid']]['aps_packages_used'] = 0;
|
||||
}
|
||||
|
||||
if($customer['aps_packages'] != '-1') {
|
||||
$admin_resources[$customer['adminid']]['aps_packages_used']+= intval_ressource($customer['aps_packages']);
|
||||
}
|
||||
|
||||
$customer_mysqls_stmt = Database::prepare('SELECT COUNT(*) AS `number_mysqls` FROM `' . TABLE_PANEL_DATABASES . '`
|
||||
WHERE `customerid` = :cid'
|
||||
);
|
||||
@@ -192,14 +175,6 @@ function updateCounters($returndebuginfo = false) {
|
||||
$customer_email_quota_stmt = Database::prepare('SELECT SUM(`quota`) AS `email_quota` FROM `' . TABLE_MAIL_USERS . '` WHERE `customerid` = :cid');
|
||||
$customer_email_quota = Database::pexecute_first($customer_email_quota_stmt, array("cid" => $customer['customerid']));
|
||||
$customer['email_quota_used_new'] = (int)$customer_email_quota['email_quota'];
|
||||
|
||||
$customer_email_autoresponder_stmt = Database::prepare('SELECT COUNT(*) AS `number_autoresponder` FROM `' . TABLE_MAIL_AUTORESPONDER . '` WHERE `customerid` = :cid');
|
||||
$customer_email_autoresponder = Database::pexecute_first($customer_email_autoresponder_stmt, array("cid" => $customer['customerid']));
|
||||
$customer['email_autoresponder_used_new'] = (int)$customer_email_autoresponder['number_autoresponder'];
|
||||
|
||||
$customer_aps_packages_stmt = Database::prepare('SELECT COUNT(*) AS `number_apspackages` FROM `' . TABLE_APS_INSTANCES . '` WHERE `CustomerID` = :cid');
|
||||
$customer_aps_packages = Database::pexecute_first($customer_aps_packages_stmt, array("cid" => $customer['customerid']));
|
||||
$customer['aps_packages_used_new'] = (int)$customer_aps_packages['number_apspackages'];
|
||||
|
||||
$stmt = Database::prepare('UPDATE `' . TABLE_PANEL_CUSTOMERS . '`
|
||||
SET `mysqls_used` = :mysqls_used,
|
||||
@@ -207,11 +182,9 @@ function updateCounters($returndebuginfo = false) {
|
||||
`email_accounts_used` = :email_accounts_used,
|
||||
`email_forwarders_used` = :email_forwarders_used,
|
||||
`email_quota_used` = :email_quota_used,
|
||||
`email_autoresponder_used` = :email_autoresponder_used,
|
||||
`ftps_used` = :ftps_used,
|
||||
`tickets_used` = :tickets_used,
|
||||
`subdomains_used` = :subdomains_used,
|
||||
`aps_packages_used` = :aps_packages_used
|
||||
`subdomains_used` = :subdomains_used
|
||||
WHERE `customerid` = :cid'
|
||||
);
|
||||
$params = array(
|
||||
@@ -220,11 +193,9 @@ function updateCounters($returndebuginfo = false) {
|
||||
"email_accounts_used" => $customer['email_accounts_used_new'],
|
||||
"email_forwarders_used" => $customer['email_forwarders_used_new'],
|
||||
"email_quota_used" => $customer['email_quota_used_new'],
|
||||
"email_autoresponder_used" => $customer['email_autoresponder_used_new'],
|
||||
"ftps_used" => $customer['ftps_used_new'],
|
||||
"tickets_used" => $customer['tickets_used_new'],
|
||||
"subdomains_used" => $customer['subdomains_used_new'],
|
||||
"aps_packages_used" => $customer['aps_packages_used_new'],
|
||||
"cid" => $customer['customerid']
|
||||
);
|
||||
Database::pexecute($stmt, $params);
|
||||
@@ -306,23 +277,11 @@ function updateCounters($returndebuginfo = false) {
|
||||
|
||||
$admin['email_quota_used_new'] = $admin_resources[$admin['adminid']]['email_quota_used'];
|
||||
|
||||
if(!isset($admin_resources[$admin['adminid']]['email_autoresponder_used'])) {
|
||||
$admin_resources[$admin['adminid']]['email_autoresponder_used'] = 0;
|
||||
}
|
||||
|
||||
$admin['email_autoresponder_used_new'] = $admin_resources[$admin['adminid']]['email_autoresponder_used'];
|
||||
|
||||
if(!isset($admin_resources[$admin['adminid']]['subdomains_used'])) {
|
||||
$admin_resources[$admin['adminid']]['subdomains_used'] = 0;
|
||||
}
|
||||
|
||||
$admin['subdomains_used_new'] = $admin_resources[$admin['adminid']]['subdomains_used'];
|
||||
|
||||
if(!isset($admin_resources[$admin['adminid']]['aps_packages_used'])) {
|
||||
$admin_resources[$admin['adminid']]['aps_packages_used'] = 0;
|
||||
}
|
||||
|
||||
$admin['aps_packages_used_new'] = $admin_resources[$admin['adminid']]['aps_packages_used'];
|
||||
|
||||
$stmt = Database::prepare('UPDATE `' . TABLE_PANEL_ADMINS . '`
|
||||
SET `customers_used` = :customers_used,
|
||||
@@ -333,12 +292,10 @@ function updateCounters($returndebuginfo = false) {
|
||||
`email_accounts_used` = :email_accounts_used,
|
||||
`email_forwarders_used` = :email_forwarders_used,
|
||||
`email_quota_used` = :email_quota_used,
|
||||
`email_autoresponder_used` = :email_autoresponder_used,
|
||||
`ftps_used` = :ftps_used,
|
||||
`tickets_used` = :tickets_used,
|
||||
`subdomains_used` = :subdomains_used,
|
||||
`traffic_used` = :traffic_used,
|
||||
`aps_packages_used` = :aps_packages_used
|
||||
`traffic_used` = :traffic_used
|
||||
WHERE `adminid` = :aid'
|
||||
);
|
||||
$params = array(
|
||||
@@ -350,12 +307,10 @@ function updateCounters($returndebuginfo = false) {
|
||||
"email_accounts_used" => $admin['email_accounts_used_new'],
|
||||
"email_forwarders_used" => $admin['email_forwarders_used_new'],
|
||||
"email_quota_used" => $admin['email_quota_used_new'],
|
||||
"email_autoresponder_used" => $admin['email_autoresponder_used_new'],
|
||||
"ftps_used" => $admin['ftps_used_new'],
|
||||
"tickets_used" => $admin['tickets_used_new'],
|
||||
"subdomains_used" => $admin['subdomains_used_new'],
|
||||
"traffic_used" => $admin['traffic_used_new'],
|
||||
"aps_packages_used" => $admin['aps_packages_used_new'],
|
||||
"aid" => $admin['adminid']
|
||||
);
|
||||
Database::pexecute($stmt, $params);
|
||||
|
||||
@@ -61,7 +61,7 @@ unset($_);
|
||||
unset($value);
|
||||
unset($key);
|
||||
|
||||
$filename = basename($_SERVER['PHP_SELF']);
|
||||
$filename = htmlentities(basename($_SERVER['PHP_SELF']));
|
||||
|
||||
// define default theme for configurehint, etc.
|
||||
$_deftheme = 'Sparkle';
|
||||
|
||||
@@ -59,12 +59,6 @@ return array (
|
||||
'label' => $lng['emails']['emails_add'],
|
||||
'required_resources' => 'emails'
|
||||
),
|
||||
array (
|
||||
'url' => 'customer_autoresponder.php',
|
||||
'label' => $lng['menue']['email']['autoresponder'],
|
||||
'required_resources' => 'emails',
|
||||
'show_element' => ( getSetting('autoresponder', 'autoresponder_active') == true ),
|
||||
),
|
||||
array (
|
||||
'url' => getSetting('panel', 'webmail_url'),
|
||||
'new_window' => true,
|
||||
@@ -130,11 +124,6 @@ return array (
|
||||
'url' => 'customer_extras.php?page=htaccess',
|
||||
'label' => $lng['menue']['extras']['pathoptions'],
|
||||
),
|
||||
array (
|
||||
'url' => 'customer_extras.php?page=backup',
|
||||
'label' => $lng['backup'],
|
||||
'required_resources' => 'backup_allowed',
|
||||
),
|
||||
),
|
||||
),
|
||||
'traffic' => array (
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Navigation
|
||||
*
|
||||
*/
|
||||
|
||||
return array (
|
||||
'customer' => array (
|
||||
'aps' => array (
|
||||
'label' => $lng['customer']['aps'],
|
||||
'required_resources' => 'phpenabled',
|
||||
'show_element' => ( getSetting('aps', 'aps_active') == true ),
|
||||
'elements' => array (
|
||||
array (
|
||||
'url' => 'customer_aps.php?action=overview',
|
||||
'label' => $lng['aps']['overview'],
|
||||
),
|
||||
array (
|
||||
'url' => 'customer_aps.php?action=customerstatus',
|
||||
'label' => $lng['aps']['status'],
|
||||
),
|
||||
array (
|
||||
'url' => 'customer_aps.php?action=search',
|
||||
'label' => $lng['aps']['search'],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
'admin' => array (
|
||||
'aps' => array (
|
||||
'label' => $lng['admin']['aps'],
|
||||
'required_resources' => 'can_manage_aps_packages',
|
||||
'show_element' => ( getSetting('aps', 'aps_active') == true ),
|
||||
'elements' => array (
|
||||
array (
|
||||
'url' => 'admin_aps.php?action=upload',
|
||||
'label' => $lng['aps']['upload'],
|
||||
),
|
||||
array (
|
||||
'url' => 'admin_aps.php?action=scan',
|
||||
'label' => $lng['aps']['scan'],
|
||||
),
|
||||
array (
|
||||
'url' => 'admin_aps.php?action=managepackages',
|
||||
'label' => $lng['aps']['managepackages'],
|
||||
),
|
||||
array (
|
||||
'url' => 'admin_aps.php?action=manageinstances',
|
||||
'label' => $lng['aps']['manageinstances'],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
?>
|
||||
@@ -43,34 +43,13 @@ define('TABLE_PANEL_IPSANDPORTS', 'panel_ipsandports');
|
||||
define('TABLE_PANEL_TICKETS', 'panel_tickets');
|
||||
define('TABLE_PANEL_TICKET_CATS', 'panel_ticket_categories');
|
||||
define('TABLE_PANEL_LOG', 'panel_syslog');
|
||||
define('TABLE_MAIL_AUTORESPONDER', 'mail_autoresponder');
|
||||
define('TABLE_PANEL_PHPCONFIGS', 'panel_phpconfigs');
|
||||
define('TABLE_APS_PACKAGES', 'aps_packages');
|
||||
define('TABLE_APS_INSTANCES', 'aps_instances');
|
||||
define('TABLE_APS_SETTINGS', 'aps_settings');
|
||||
define('TABLE_APS_TASKS', 'aps_tasks');
|
||||
define('TABLE_APS_TEMP_SETTINGS', 'aps_temp_settings');
|
||||
define('TABLE_PANEL_CRONRUNS', 'cronjobs_run');
|
||||
define('TABLE_PANEL_REDIRECTCODES', 'redirect_codes');
|
||||
define('TABLE_PANEL_DOMAINREDIRECTS', 'domain_redirect_codes');
|
||||
define('TABLE_PANEL_DOMAIN_SSL_SETTINGS', 'domain_ssl_settings');
|
||||
define('TABLE_DOMAINTOIP', 'panel_domaintoip');
|
||||
|
||||
// APS constants
|
||||
define('TASK_INSTALL', 1);
|
||||
define('TASK_REMOVE', 2);
|
||||
define('TASK_RECONFIGURE', 3);
|
||||
define('TASK_UPGRADE', 4);
|
||||
define('TASK_SYSTEM_UPDATE', 5);
|
||||
define('TASK_SYSTEM_DOWNLOAD', 6);
|
||||
define('INSTANCE_INSTALL', 1);
|
||||
define('INSTANCE_TASK_ACTIVE', 2);
|
||||
define('INSTANCE_SUCCESS', 3);
|
||||
define('INSTANCE_ERROR', 4);
|
||||
define('INSTANCE_UNINSTALL', 5);
|
||||
define('PACKAGE_LOCKED', 1);
|
||||
define('PACKAGE_ENABLED', 2);
|
||||
|
||||
// VERSION INFO
|
||||
$version = '0.9.31-rc1';
|
||||
$dbversion = '2';
|
||||
|
||||
@@ -853,26 +853,8 @@ $lng['panel']['megabyte'] = 'MegaByte';
|
||||
$lng['panel']['not_supported'] = 'Wordt niet ondersteund in: ';
|
||||
$lng['emails']['quota_edit'] = 'E-mailquotum aanpassen';
|
||||
$lng['error']['allocatetoomuchquota'] = 'U probeerde %s MB Quotum toe te kennen, maar u heeft niet voldoende over.';
|
||||
|
||||
// Autoresponder module
|
||||
|
||||
$lng['menue']['email']['autoresponder'] = 'Automatische beantwoorder';
|
||||
$lng['autoresponder']['active'] = 'Active';
|
||||
$lng['autoresponder']['autoresponder_add'] = 'Automatische beantwoorder toevoegen';
|
||||
$lng['autoresponder']['autoresponder_edit'] = 'Automatische beantwoorder aanpassen';
|
||||
$lng['autoresponder']['autoresponder_new'] = 'Automatische beantwoorder aanmaken';
|
||||
$lng['autoresponder']['subject'] = 'Onderwerp';
|
||||
$lng['autoresponder']['message'] = 'Bericht';
|
||||
$lng['autoresponder']['account'] = 'Account';
|
||||
$lng['autoresponder']['sender'] = 'Afzender';
|
||||
$lng['question']['autoresponderdelete'] = 'Weet u zeker dat u de automatische beantwoorder wilt verwijderen?';
|
||||
$lng['error']['noemailaccount'] = 'Er kunnen twee redenen zijn waarom u geen automatische beantwoorder kunt aanmaken: 1) U dient minimaal een (1) e-mailaccount te hebben. 2) Het is mogelijk dat alle accounts reeds een automatische beantwoorder hebben';
|
||||
$lng['error']['missingfields'] = 'Niet alle vereiste velden zijn ingevuld.';
|
||||
$lng['error']['accountnotexisting'] = 'Het opgegeven e-mailaccount bestaat niet.';
|
||||
$lng['error']['autoresponderalreadyexists'] = 'Er is reeds een automatische beantwoorder voor dit account geconfigureerd.';
|
||||
$lng['error']['invalidautoresponder'] = 'Het opgegeven account is ongeldig.';
|
||||
$lng['serversettings']['autoresponder_active']['title'] = 'Module \'Automatische beantwoorder\' gebruiken';
|
||||
$lng['serversettings']['autoresponder_active']['description'] = 'Wilt u deze module gebruiken?';
|
||||
$lng['admin']['security_settings'] = 'Beveiliging';
|
||||
$lng['admin']['know_what_youre_doing'] = 'Verander dit alleen wanneer u zeker weet wat u doet!';
|
||||
$lng['admin']['show_version_login']['title'] = 'Toon versie van Froxlor bij het inloggen';
|
||||
@@ -939,174 +921,6 @@ $lng['error']['index_file_extension'] = 'Het achtervoegsel dient tussen de 1 en
|
||||
$lng['admin']['expert_settings'] = 'Instellingen voor experts!';
|
||||
$lng['admin']['mod_fcgid_starter']['title'] = 'Aantal PHP-processen voor dit domein. (Leeg betekent standaardinstellingen.)';
|
||||
|
||||
//added with aps installer
|
||||
|
||||
$lng['admin']['aps'] = 'APS installatie-programma';
|
||||
$lng['customer']['aps'] = 'APS installatie-programma';
|
||||
$lng['aps']['scan'] = 'Zoeken naar nieuwe pakketten';
|
||||
$lng['aps']['upload'] = 'Nieuwe pakketten uploaden';
|
||||
$lng['aps']['managepackages'] = 'Pakketten beheren';
|
||||
$lng['aps']['manageinstances'] = 'Instanties beheren';
|
||||
$lng['aps']['overview'] = 'Overzicht pakketten';
|
||||
$lng['aps']['status'] = 'Mijn pakketten';
|
||||
$lng['aps']['search'] = 'Zoeken naar pakketten';
|
||||
$lng['aps']['upload_description'] = 'Kies de ZIP-bestanden van het APS installatieprogramma om te installeren op het systeem.';
|
||||
$lng['aps']['search_description'] = 'Naam, omschrijving, sleutelwoord, versie';
|
||||
$lng['aps']['detail'] = 'Meer informatie';
|
||||
$lng['aps']['install'] = 'Pakket installeren';
|
||||
$lng['aps']['data'] = 'Data';
|
||||
$lng['aps']['version'] = 'Versie';
|
||||
$lng['aps']['homepage'] = 'Homepage';
|
||||
$lng['aps']['installed_size'] = 'Grootte na installatie';
|
||||
$lng['aps']['categories'] = 'Categorieën';
|
||||
$lng['aps']['languages'] = 'Talen';
|
||||
$lng['aps']['long_description'] = 'Lange omschrijving';
|
||||
$lng['aps']['configscript'] = 'Configuratiescript';
|
||||
$lng['aps']['changelog'] = 'Lijst met veranderingen';
|
||||
$lng['aps']['license'] = 'Licentie';
|
||||
$lng['aps']['license_link'] = 'Link naar licentie';
|
||||
$lng['aps']['screenshots'] = 'Schermafdrukken';
|
||||
$lng['aps']['back'] = 'Terug naar overzicht';
|
||||
$lng['aps']['install_wizard'] = 'Installatie-wizard...';
|
||||
$lng['aps']['wizard_error'] = 'Uw invoer bevat ongeldige gegevens. Verbeter deze om de installatie voort te zetten.';
|
||||
$lng['aps']['basic_settings'] = 'Basisinstellingen';
|
||||
$lng['aps']['application_location'] = 'Locatie';
|
||||
$lng['aps']['application_location_description'] = 'Locatie waar de applicatie geinstalleerd wordt.';
|
||||
$lng['aps']['no_domains'] = 'Geen domeinen gevonden';
|
||||
$lng['aps']['database_password'] = 'Wachtwoord voor database';
|
||||
$lng['aps']['database_password_description'] = 'Wachtwoord dat gebruikt wordt voor installatie.';
|
||||
$lng['aps']['license_agreement'] = 'Overeenkomst';
|
||||
$lng['aps']['cancel_install'] = 'Installatie afbreken';
|
||||
$lng['aps']['notazipfile'] = 'Het geuploade bestand is geen ZIP-bestand.';
|
||||
$lng['aps']['filetoobig'] = 'Het bestand is te groot.';
|
||||
$lng['aps']['filenotcomplete'] = 'Het bestand werd niet volledig ontvangen.';
|
||||
$lng['aps']['phperror'] = 'Er is een interne fout van PHP opgetreden. De foutcode van PHP is #';
|
||||
$lng['aps']['moveproblem'] = 'Het script kon het geuploade bestand niet naar de doelmap verplaatsen. Zorg ervoor dat de rechten juist staan ingesteld.';
|
||||
$lng['aps']['uploaderrors'] = '<strong>Fouten voor het bestand <em>%s</em></strong><br/><ul>%s</ul>';
|
||||
$lng['aps']['nospecialchars'] = 'Speciale tekens zijn niet toegestaan in de zoekterm!';
|
||||
$lng['aps']['noitemsfound'] = 'Geen pakketten gevonden!';
|
||||
$lng['aps']['nopackagesinstalled'] = 'U hebt nog geen pakketten geinstalleerd die kunnen worden weergegeven.';
|
||||
$lng['aps']['instance_install'] = 'Installatie van het pakket in afwachting';
|
||||
$lng['aps']['instance_task_active'] = 'Het pakket wordt op dit moment verwerkt';
|
||||
$lng['aps']['instance_success'] = 'Het pakket is correct geinstalleerd';
|
||||
$lng['aps']['instance_error'] = 'Het pakket is niet geinstalleerd. - Er zijn enkele fouten opgetreden:';
|
||||
$lng['aps']['instance_uninstall'] = 'Het deinstalleren van het pakket is in afwachting';
|
||||
$lng['aps']['unknown_status'] = 'Fout - Onbekende waarde';
|
||||
$lng['aps']['currentstatus'] = 'Huidige status';
|
||||
$lng['aps']['activetasks'] = 'Actieve taken';
|
||||
$lng['aps']['task_install'] = 'Installatie in afwachting';
|
||||
$lng['aps']['task_remove'] = 'Deinstallatie in afwachting';
|
||||
$lng['aps']['task_reconfigure'] = 'Herconfiguratie in afwachting';
|
||||
$lng['aps']['task_upgrade'] = 'Opwaarderen in afwachting';
|
||||
$lng['aps']['no_task'] = 'Geen wachtende taken';
|
||||
$lng['aps']['applicationlinks'] = 'Links van applicatie';
|
||||
$lng['aps']['mainsite'] = 'Hoofdsite';
|
||||
$lng['aps']['uninstall'] = 'Pakket deinstalleren';
|
||||
$lng['aps']['reconfigure'] = 'Instellingen wijzigen';
|
||||
$lng['aps']['erroronnewinstance'] = '<strong>Dit pakket kan niet geinstalleerd worden.</strong><br/><br/>U kunt een nieuw pakket installeren wanneer u teruggaat naar het overzicht.';
|
||||
$lng['aps']['successonnewinstance'] = '<strong><em>%s</em> wordt op dit moment geinstalleerd.</strong><br/><br/>U kunt het verloop van de installatie volgen onder "Mijn pakketten". Installatie kan enige tijd duren.';
|
||||
$lng['aps']['php_misc_handler'] = 'PHP - Diversen - Er is geen ondersteuning voor achtervoegsel anders dan .php voor PHP.';
|
||||
$lng['aps']['php_misc_directoryhandler'] = 'PHP - Diversen - Er is geen ondersteuning voor PHP met instellingen per map.';
|
||||
$lng['aps']['asp_net'] = 'ASP.NET - Pakket wordt niet ondersteund.';
|
||||
$lng['aps']['cgi'] = 'CGI - Pakket wordt niet ondersteund.';
|
||||
$lng['aps']['php_extension'] = 'PHP - Extensie "%s" ontbreekt.';
|
||||
$lng['aps']['php_function'] = 'PHP - Functie "%s" ontbreekt.';
|
||||
$lng['aps']['php_configuration'] = 'PHP - Configuratie - Huidge instelling "%s" wordt niet door het pakket ondersteund.';
|
||||
$lng['aps']['php_configuration_post_max_size'] = 'PHP - Configuratie - Waarde voor "post_max_size" is te laag.';
|
||||
$lng['aps']['php_configuration_memory_limit'] = 'PHP - Configuratie - Waarde voor "memory_limit" is te laag.';
|
||||
$lng['aps']['php_configuration_max_execution_time'] = 'PHP - Configuratie - Waarde voor "max_execution_time" is te laag.';
|
||||
$lng['aps']['php_general_old'] = 'PHP - Algemeen - Versie van PHP is te oud.';
|
||||
$lng['aps']['php_general_new'] = 'PHP - Algemeen - Versie van PHP is te oud.';
|
||||
$lng['aps']['db_mysql_support'] = 'Database - Het pakket vereist een andere databaseserver dan MySQL.';
|
||||
$lng['aps']['db_mysql_version'] = 'Database - MySQL server te oud';
|
||||
$lng['aps']['webserver_module'] = 'Webserver - Module "%s" ontbreekt.';
|
||||
$lng['aps']['webserver_fcgid'] = 'Webserver - Dit pakket vereist aanvullende modules van de webserver. In uw FastCGI/mod_fcgid-omgeving bestaat de functie "apache_get_modules" niet. Het pakket kan niet geinstalleerd worden omdat de aanwezigheid van deze modules niet kan worden gecontroleerd.';
|
||||
$lng['aps']['webserver_htaccess'] = 'Webserver - Dit pakket vereist dat .htaccess-bestanden worden verwerkt door de webserver. Dit pakket kan niet worden geinstalleerd omdat APS installatieprogramma niet vast kan stellen of dit het geval is.';
|
||||
$lng['aps']['misc_configscript'] = 'Diversen - De taal van het configuratiescript wordt niet ondersteund.';
|
||||
$lng['aps']['misc_charset'] = 'Diversen - In de huidge versie van het installatieprogramma is het niet mogelijk om formuliervelden te controleren op een specifieke tekenset. Het pakket kan niet worden geinstalleerd.';
|
||||
$lng['aps']['misc_version_already_installed'] = 'Dezelfde versie van het pakket is reeds geinstalleerd.';
|
||||
$lng['aps']['misc_only_newer_versions'] = 'Om veiligheidsredenen kunnen alleen nieuwere versie\'s van bestaande pakketten worden geinstalleerd.';
|
||||
$lng['aps']['erroronscan'] = '<strong>Fouten voor <em>%s</em></strong><ul>%s</ul>';
|
||||
$lng['aps']['invalidzipfile'] = '<strong>Fouten voor <em>%s</em></strong><br/><ul><li>Dit is geen geldig APS ZIP-bestand.</li></ul>';
|
||||
$lng['aps']['successpackageupdate'] = '<strong><em>%s</em> met succes geinstalleerd als opgewaardeerd pakket</strong>';
|
||||
$lng['aps']['successpackageinstall'] = '<strong><em>%s</em> met succes geinstalleerd als nieuw pakket</strong>';
|
||||
$lng['aps']['class_zip_missing'] = 'Klasse SimpleXML, de functie exec of functionaliteit voor ZIP ontbreken of zijn niet actief! Voor meer informatie over dit probleem kunt u de handleiding van de betreffende module raadplegen.';
|
||||
$lng['aps']['dir_permissions'] = 'Het proces van PHP/de webserver moet in staat zijn om naar de mappen {$path}temp/ en {$path}packages/ te schrijven';
|
||||
$lng['aps']['initerror'] = '<strong>Er zijn enkele problemen met deze module:</strong><ul>%s</ul>U dient deze problemen te verhelpen voordat de module gebruikt kan worden!';
|
||||
$lng['aps']['iderror'] = 'Verkeerde ID op gegeven.';
|
||||
$lng['aps']['nopacketsforinstallation'] = 'Er zijn geen te installeren pakketten.';
|
||||
$lng['aps']['nopackagestoinstall'] = 'Er zijn geen pakketten om weer te geven of te installeren.';
|
||||
$lng['aps']['nodomains'] = 'Kies een domein uit de lijst. Indien de lijst leeg is kan het pakket niet worden geinstalleerd!';
|
||||
$lng['aps']['wrongpath'] = 'Het pad bevat ongeldige karakters of er is reeds een andere applicatie geinstalleerd.';
|
||||
$lng['aps']['dbpassword'] = 'Het wachtwoord dient minimaal 8 karakters te bevatten.';
|
||||
$lng['aps']['error_text'] = 'Geef een tekst zonder speciale karakters op.';
|
||||
$lng['aps']['error_email'] = 'Geef een geldig e-mailadres op.';
|
||||
$lng['aps']['error_domain'] = 'Geef een geldige URL op, bijvoorbeeld http://www.example.com/';
|
||||
$lng['aps']['error_integer'] = 'Geef een numerieke waarde (gehele getallen), bijvoorbeeld <em>5</em> of <em>7</em>.';
|
||||
$lng['aps']['error_float'] = 'Geef een numerieke waarde (gebroken getallen) bijvoorbeeld <em>5,2432</em> of <em>7,5346</em>.';
|
||||
$lng['aps']['error_password'] = 'Geef een wachtwoord.';
|
||||
$lng['aps']['error_license'] = 'Ja, ik heb de licentie gelezen en zal mij aan de voorwaarden houden.';
|
||||
$lng['aps']['error_licensenoaccept'] = 'Om deze applicatie te installeren dient u akkoord te gaan met de licentievoorwaarden.';
|
||||
$lng['aps']['stopinstall'] = 'Installatie afbreken.';
|
||||
$lng['aps']['installstopped'] = 'De installatie van dit pakket is afgebroken.';
|
||||
$lng['aps']['installstoperror'] = 'De installatie kan niet meer worden afgebroken aangezien de installatie reeds gestart is. Indien u een installatie ongedaan wenst te maken, dient u te wachten tot de installatie is voltooid en kunt vervolgens het pakket markeren voor verwijderen onder "Mijn pakketten".';
|
||||
$lng['aps']['waitfortask'] = 'Er zijn geen te kiezen acties. Wacht totdat alle taken zijn beeindigd.';
|
||||
$lng['aps']['removetaskexisting'] = '<strong>Er staat reeds een taak voor verwijdering.</strong><br/><br/>Ga terug naar "Mijn pakketten" en wacht totdat het verwijderen is voltooid.';
|
||||
$lng['aps']['packagewillberemoved'] = '<strong>Het pakket wordt nu verwijderd.</strong><br/><br/>Ga terug naar "Mijn pakketten" en wacht totdat het verwijderen is voltooid.';
|
||||
$lng['question']['reallywanttoremove'] = '<strong>Weet u zeker dat u dit pakket wilt verwijderen?</strong><br/><br/>Alle database-inhoud en bestanden van dit pakket worden verwijderd. Maak zelf een reservekopie van de database en/of de bestanden die u wenst te behouden!<br/><br/>';
|
||||
$lng['aps']['searchoneresult'] = '%s pakket gevonden';
|
||||
$lng['aps']['searchmultiresult'] = '%s pakketten gevonden';
|
||||
$lng['question']['reallywanttostop'] = 'Weet u zeker dat u de installatie van dit pakket wilt afbreken?<br/><br/>';
|
||||
$lng['aps']['packagenameandversion'] = 'Pakket & versie';
|
||||
$lng['aps']['package_locked'] = 'Vergrendeld';
|
||||
$lng['aps']['package_enabled'] = 'Beschikbaar';
|
||||
$lng['aps']['lock'] = 'Vergrendelen';
|
||||
$lng['aps']['unlock'] = 'Beschikbaar maken';
|
||||
$lng['aps']['remove'] = 'Verwijderen';
|
||||
$lng['aps']['allpackages'] = 'Alle pakketten';
|
||||
$lng['question']['reallyremovepackages'] = '<strong>Weet u zeker dat u deze pakketten wilt verwijderen?</strong><br/><br/>Pakketten met afhankelijkheden kunnen alleen verwijderd worden indien de betreffende afhankelijkheden zijn verwijderd!<br/><br/>';
|
||||
$lng['aps']['nopackagesinsystem'] = 'Er zijn geen pakketten op dit systeem geinstalleerd die beheerd kunnen worden.';
|
||||
$lng['aps']['packagenameandstatus'] = 'Pakket & status';
|
||||
$lng['aps']['activate_aps']['title'] = 'APS Installatieprogramma inschakelen';
|
||||
$lng['aps']['activate_aps']['description'] = 'Het APS installatieprogramma kan hier ingeschakeld worden.';
|
||||
$lng['aps']['packages_per_page']['title'] = 'Pakketten per pagina';
|
||||
$lng['aps']['packages_per_page']['description'] = 'Hoeveel pakketten worden er voor de klant getoond per pagina?';
|
||||
$lng['aps']['upload_fields']['title'] = 'Aantal velden voor uploads';
|
||||
$lng['aps']['upload_fields']['description'] = 'Hoeveel gelijktijdige uploads wilt u toestaan?';
|
||||
$lng['aps']['exceptions']['title'] = 'Uitzonderingen voor pakketten';
|
||||
$lng['aps']['exceptions']['description'] = 'Enkele pakketten vereisen speciale parameters of modules. Het installatieprogramma kan niet in alle gevallen vaststellen of deze instellingen of uitbreidingen beschikbaar zijn. Om deze reden kunt u hier uitzonderingen opgeven waarvan het pakket worden geinstalleerd. Kies alleen de instellingen die overeenkomen met de echte configuratie van het systeem. Voor meer informatie kunt u de handleiding van de betreffende module raadplegen.';
|
||||
$lng['aps']['settings_php_extensions'] = 'PHP-uitbreidingen';
|
||||
$lng['aps']['settings_php_configuration'] = 'PHP-configuratie';
|
||||
$lng['aps']['settings_webserver_modules'] = 'Webserver modules';
|
||||
$lng['aps']['settings_webserver_misc'] = 'Webserver diversen';
|
||||
$lng['aps']['specialoptions'] = 'Speciale instellingen';
|
||||
$lng['aps']['removeunused'] = 'Ongebruikte pakketten verwijderen';
|
||||
$lng['aps']['enablenewest'] = 'Nieuwste versies van de pakketten beschikbaar maken en de overigen uitschakelen';
|
||||
$lng['aps']['installations'] = 'Installaties';
|
||||
$lng['aps']['statistics'] = 'Statistieken';
|
||||
$lng['aps']['numerofpackagesinstalled'] = '%s pakketten geinstalleerd<br/>';
|
||||
$lng['aps']['numerofpackagesenabled'] = '%s pakketten beschikbaar<br/>';
|
||||
$lng['aps']['numerofpackageslocked'] = '%s pakketten vergrendeld<br/>';
|
||||
$lng['aps']['numerofinstances'] = '%s pakketten geinstalleerd<br/>';
|
||||
$lng['question']['reallydoaction'] = '<strong>Weet u zeker dat u de geselecteerde opdrachten wilt uitvoeren?</strong><br/><br/>Er kan permanente dataverlies optreden wanneer u doorgaat.<br/><br/>';
|
||||
$lng['aps']['linktolicense'] = 'Koppeling naar licentie';
|
||||
$lng['aps']['initerror_customer'] = 'Er is op dit moment een fout met dit programma. Neem contact op met uw beheerder voor meer informatie.';
|
||||
$lng['aps']['numerofinstances'] = '%s installaties over het geheel<br/>';
|
||||
$lng['aps']['numerofinstancessuccess'] = '%s succesvolle installaties<br/>';
|
||||
$lng['aps']['numerofinstanceserror'] = '%s mislukte installaties<br/>';
|
||||
$lng['aps']['numerofinstancesaction'] = '%s geplande installaties/deinstallaties';
|
||||
$lng['aps']['downloadallpackages'] = 'Alle pakketten downloaden van distributieserver';
|
||||
$lng['aps']['updateallpackages'] = 'Alle pakketten bijwerken van distributieserver';
|
||||
$lng['aps']['downloadtaskexists'] = 'Er is reeds een taak om alle pakketten te downloaden. Wacht totdat deze taak is voltooid.';
|
||||
$lng['aps']['downloadtaskinserted'] = 'Er is een taak voor het downloaden van alle pakketten gemaakt. Dit kan enige tijd in beslag nemen.';
|
||||
$lng['aps']['updatetaskexists'] = 'Er is reeds een taak om alle pakketten bij te werken. Wacht totdat deze taak is voltooid.';
|
||||
$lng['aps']['updatetaskinserted'] = 'Er is een taak voor het downloaden van alle pakketten gemaakt. Dit kan enige tijd in beslag nemen.';
|
||||
$lng['aps']['canmanagepackages'] = 'Kan APS pakketten beheren';
|
||||
$lng['aps']['numberofapspackages'] = 'Aantal APS installaties';
|
||||
$lng['aps']['allpackagesused'] = '<strong>Fout</strong><br/><br/>U hebt de limiet van het te aantal te installeren APS pakketten bereikt.';
|
||||
$lng['aps']['noinstancesexisting'] = 'Er zijn op dit moment geen pakketten die kunnen worden beheerd. Er dient minimaal een pakket bij een klant zijn geinstalleerd.';
|
||||
$lng['aps']['lightywarning'] = 'Waarschuwing';
|
||||
$lng['aps']['lightywarningdescription'] = 'U maakt gebruik van de lighttpd server in combinatie met Froxlor. De APS module is voornamelijk bedoeld voor Apache, het is mogelijk dat enige functionaliteit niet werkt. Indien u tegen problemen aanloopt tijdens het gebruik van deze module, dan wordt u verzocht dit aan de ontwikkelaars van Froxlor te melden. Zij kunnen dan het probleem eventueel verhelpen.';
|
||||
$lng['error']['customerdoesntexist'] = 'De gekozen klant bestaat niet.';
|
||||
$lng['error']['admindoesntexist'] = 'De gekozen beheerder bestaat niet.';
|
||||
|
||||
@@ -1133,7 +947,6 @@ $lng['serversettings']['mod_fcgid']['maxrequests']['description'] = 'Toegestane
|
||||
|
||||
// fix bug #1124
|
||||
$lng['error']['admin_domain_emailsystemhostname'] = 'De naam van de server kan niet gebruikt worden als domein voor e-mail.';
|
||||
$lng['aps']['license_link'] = 'Koppeling naar licentie';
|
||||
|
||||
|
||||
// ADDED IN 1.4.2.1-2
|
||||
@@ -1163,9 +976,6 @@ $lng['panel']['toomanydirs'] = 'Teveel submappen. Er wordt teruggevallen op hand
|
||||
$lng['panel']['abort'] = 'Afbreken';
|
||||
$lng['serversettings']['cron']['debug']['title'] = 'Foutopsporing cronscript';
|
||||
$lng['serversettings']['cron']['debug']['description'] = 'Activeer dit om het lockbestand te bewaren nadat de cron-taak is afgehandeld, zodat het gerbuikt kan worden voor het opsporen van fouten.<br /><b>Let op:</b>Het vastzetten van het lockbestand kan ervoor zorgen dat de volgende cron-taak niet naar behoren functioneert.';
|
||||
$lng['autoresponder']['date_from'] = 'Startdatum';
|
||||
$lng['autoresponder']['date_until'] = 'Einddatum';
|
||||
$lng['autoresponder']['startenddate'] = 'Start-/einddatum';
|
||||
$lng['panel']['not_activated'] = 'niet actief';
|
||||
$lng['panel']['off'] = 'uit';
|
||||
$lng['update']['updateinprogress_onlyadmincanlogin'] = 'Een nieuwere versie van Froxlor is geinstalleerd maar is nog niet geconfigureerd.<br />Alleen de beheerder kan inloggen en de update voltooien.';
|
||||
@@ -1238,9 +1048,6 @@ $lng['crondesc']['cron_unknown_desc'] = 'geen beschrijving opgegeven';
|
||||
$lng['admin']['cron']['add'] = 'Cron-taak toevoegen';
|
||||
$lng['crondesc']['cron_tasks'] = 'aanmaken configuratiebestanden';
|
||||
$lng['crondesc']['cron_legacy'] = 'oude cron-taak';
|
||||
$lng['crondesc']['cron_apsinstaller'] = 'APS-installatieprogramma';
|
||||
$lng['crondesc']['cron_autoresponder'] = 'autobeantwoorder e-mail';
|
||||
$lng['crondesc']['cron_apsupdater'] = 'bijwerken APS-pakketten';
|
||||
$lng['crondesc']['cron_traffic'] = 'berekenen verkeersgegevens';
|
||||
$lng['crondesc']['cron_ticketsreset'] = 'opnieuw instellen ticket-tellers';
|
||||
$lng['crondesc']['cron_ticketarchive'] = 'oude tickets archiveren';
|
||||
@@ -1266,7 +1073,6 @@ $lng['ftp']['editpassdescription'] = 'Nieuw wachtwoord of leeg voor het oude wac
|
||||
$lng['customer']['sendinfomail'] = 'Stuur gegevens naar mij via e-mail';
|
||||
$lng['customer']['mysql_add']['infomail_subject'] = '[Froxlor] Nieuwe database aangemaakt';
|
||||
$lng['customer']['mysql_add']['infomail_body']['main'] = "Geachte {CUST_NAME},\n\nu hebt zojuist een nieuwe database aangemaakt. Hier zijn nogmaals de ingevoerde gegevens:\n\nNaam database: {DB_NAME}\nWachtwoord: {DB_PASS}\nBeschrijving: {DB_DESC}\nHostnaam database: {DB_SRV}\nphpMyAdmin: {PMA_URI}\nMet vriendelijke groet, uw beheerder";
|
||||
$lng['error']['domains_cantdeletedomainwithapsinstances'] = 'U kunt geen domeinen verwijderen die in gebruik zijn door APS-pakketten. U dient deze eerst te verwijderen.';
|
||||
$lng['serversettings']['awstats_path'] = 'Pad naar \'awstats_buildstaticpages.pl\' van AWStats';
|
||||
$lng['serversettings']['awstats_conf'] = 'AWStats configuratiepad';
|
||||
$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!';
|
||||
@@ -1315,12 +1121,6 @@ $lng['serversettings']['customredirect_default']['description'] = 'Kies de stand
|
||||
|
||||
// ADDED IN FROXLOR 0.9.7-svn2
|
||||
$lng['error']['pathmaynotcontaincolon'] = 'Het opgegeven pad mag geen dubbele punt (":") bevatten. Geef een correct pad op.';
|
||||
$lng['tasks']['aps_task_install'] = 'Installeren van 1 of meerdere APS-pakketten';
|
||||
$lng['tasks']['aps_task_remove'] = 'Verwijderen van 1 of meerdere APS-pakketten';
|
||||
$lng['tasks']['aps_task_reconfigure'] = 'Herconfigureren van 1 of meerdere APS-pakketten';
|
||||
$lng['tasks']['aps_task_upgrade'] = 'Bijwerken van 1 of meerdere APS-pakketten';
|
||||
$lng['tasks']['aps_task_sysupdate'] = 'Bijwerken van alle APS-pakketten';
|
||||
$lng['tasks']['aps_task_sysdownload'] = 'Downloaden van alle APS-pakketten';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.8
|
||||
$lng['error']['exception'] = '%s';
|
||||
@@ -1329,9 +1129,6 @@ $lng['error']['exception'] = '%s';
|
||||
$lng['serversettings']['mail_also_with_mxservers'] = 'Maak mail-, imap-, pop3- en smtp-"A record" ook wanneer MX-Servers zijn ingesteld';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.10-svn1
|
||||
$lng['aps']['nocontingent'] = 'Uw aantal APS-installaties is onvoldoende. U kunt geen enkel pakket installeren.';
|
||||
$lng['aps']['packageneedsdb'] = 'Dit pakket vereist een database, maar uw quotum is reeds verbruikt';
|
||||
$lng['aps']['cannoteditordeleteapsdb'] = 'APS databases kunnen hier niet verwijderd of aangepast worden';
|
||||
$lng['admin']['webserver_user'] = 'Gebruikersnaam webserver';
|
||||
$lng['admin']['webserver_group'] = 'Groepnaam webserver';
|
||||
|
||||
@@ -1340,7 +1137,7 @@ $lng['serversettings']['froxlordirectlyviahostname'] = 'Froxlor is direct toegan
|
||||
|
||||
// ADDED IN FROXLOR 0.9.11-svn1
|
||||
$lng['serversettings']['panel_password_regex']['title'] = 'Reguliere expressie voor wachtwoorden';
|
||||
$lng['serversettings']['panel_password_regex']['description'] = 'Hier kunt u een reguliere expressie opgeven voor de complexiteit van wachtwoorden.<br />Leeg betekent geen speciale complexiteit<br />(<a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/En-password-regex-examples">regex hulp/voorbeelden</a>)';
|
||||
$lng['serversettings']['panel_password_regex']['description'] = 'Hier kunt u een reguliere expressie opgeven voor de complexiteit van wachtwoorden.<br />Leeg betekent geen speciale complexiteit';
|
||||
$lng['error']['notrequiredpasswordcomplexity'] = 'Er is niet voldaan aan de complexiteit voor het wachtwoord (regex: %s)';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.11-svn2
|
||||
@@ -1354,7 +1151,7 @@ $lng['serversettings']['perl_path']['description'] = 'Alleen relevant voor light
|
||||
// ADDED IN FROXLOR 0.9.12-svn1
|
||||
$lng['admin']['fcgid_settings'] = 'FCGID';
|
||||
$lng['serversettings']['mod_fcgid_ownvhost']['title'] = 'FCGID inschakelen voor de VHost voor Froxlor';
|
||||
$lng['serversettings']['mod_fcgid_ownvhost']['description'] = 'Indien ingeschakeld wordt Froxlor ook uitgevoerd onder een lokale gebruiker<br /><strong>Let op:</strong>Dit vereist handmatige configuratie, zie <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/FCGID_-_handbook">FCGID - handbook</a>';
|
||||
$lng['serversettings']['mod_fcgid_ownvhost']['description'] = 'Indien ingeschakeld wordt Froxlor ook uitgevoerd onder een lokale gebruiker<br /><strong>Let op:</strong>Dit vereist handmatige configuratie, zie <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/HandbookApache2_fcgid">FCGID - handbook</a>';
|
||||
$lng['admin']['mod_fcgid_user'] = 'Lokale gebruiker voor FCGID (Froxlor vhost)';
|
||||
$lng['admin']['mod_fcgid_group'] = 'Lokale groep voor FCGID (Froxlor vhost)';
|
||||
|
||||
@@ -1398,8 +1195,6 @@ $lng['admin']['templates']['forgotpwd'] = 'Notificatie mails voor opnieuw instel
|
||||
$lng['admin']['templates']['password_reset'] = 'Klantnotificatie voor opnieuw instellen wachtwoord';
|
||||
$lng['admin']['store_defaultindex'] = 'Standaard indexbestand opslaan in map klant';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.13-svn1
|
||||
$lng['customer']['autoresponder'] = 'Automatische beantwoorder';
|
||||
// ADDED IN FROXLOR 0.9.14-svn1
|
||||
$lng['serversettings']['mod_fcgid']['defaultini_ownvhost'] = 'Standaard configuratie voor Froxlor-vHost';
|
||||
|
||||
|
||||
@@ -537,7 +537,7 @@ $lng['panel']['back'] = 'Back';
|
||||
// ADDED IN 1.2.16-svn12
|
||||
|
||||
$lng['serversettings']['mod_fcgid']['title'] = 'Enable FCGID';
|
||||
$lng['serversettings']['mod_fcgid']['description'] = 'Use this to run PHP with the corresponding useraccount.<br /><br /><b>This needs a special webserver configuration for Apache, see <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/FCGID_-_handbook">FCGI - handbook</a></b>';
|
||||
$lng['serversettings']['mod_fcgid']['description'] = 'Use this to run PHP with the corresponding useraccount.<br /><br /><b>This needs a special webserver configuration for Apache, see <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/HandbookApache2_fcgid">FCGID - handbook</a></b>';
|
||||
$lng['serversettings']['sendalternativemail']['title'] = 'Use alternative email-address';
|
||||
$lng['serversettings']['sendalternativemail']['description'] = 'Send the password-email to a different address during email-account-creation';
|
||||
$lng['emails']['alternative_emailaddress'] = 'Alternative e-mail-address';
|
||||
@@ -911,25 +911,8 @@ $lng['panel']['not_supported'] = 'Not supported in: ';
|
||||
$lng['emails']['quota_edit'] = 'Change E-Mail Quota';
|
||||
$lng['error']['allocatetoomuchquota'] = 'You tried to allocate %s MB Quota, but you do not have enough left.';
|
||||
|
||||
// Autoresponder module
|
||||
|
||||
$lng['menue']['email']['autoresponder'] = 'Autoresponder';
|
||||
$lng['autoresponder']['active'] = 'Active';
|
||||
$lng['autoresponder']['autoresponder_add'] = 'Add autoresponder';
|
||||
$lng['autoresponder']['autoresponder_edit'] = 'Edit autoresponder';
|
||||
$lng['autoresponder']['autoresponder_new'] = 'Create new autoresponder';
|
||||
$lng['autoresponder']['subject'] = 'Subject';
|
||||
$lng['autoresponder']['message'] = 'Message';
|
||||
$lng['autoresponder']['account'] = 'Account';
|
||||
$lng['autoresponder']['sender'] = 'Sender';
|
||||
$lng['question']['autoresponderdelete'] = 'Do you really want to delete the autoresponder?';
|
||||
$lng['error']['noemailaccount'] = 'There can be two reasons why you cannot create a new autoresponder: You need at least one email account to create a new autoresponder. Secondly it can be possible that all accounts already have an autoresponder configured.';
|
||||
$lng['error']['missingfields'] = 'Not all required fields were filled out.';
|
||||
$lng['error']['accountnotexisting'] = 'The given email account doesn\'t exist.';
|
||||
$lng['error']['autoresponderalreadyexists'] = 'There is already an autoresponder configured for this account.';
|
||||
$lng['error']['invalidautoresponder'] = 'The given account is invalid.';
|
||||
$lng['serversettings']['autoresponder_active']['title'] = 'Use autoresponder module';
|
||||
$lng['serversettings']['autoresponder_active']['description'] = 'Do you want to use the autoresponder module?';
|
||||
$lng['admin']['security_settings'] = 'Security Options';
|
||||
$lng['admin']['know_what_youre_doing'] = 'Change only, if you know what you\'re doing!';
|
||||
$lng['admin']['show_version_login']['title'] = 'Show Froxlor version on login';
|
||||
@@ -996,174 +979,6 @@ $lng['error']['index_file_extension'] = 'The file extension for the index file m
|
||||
$lng['admin']['expert_settings'] = 'Expert settings!';
|
||||
$lng['admin']['mod_fcgid_starter']['title'] = 'PHP Processes for this domain (empty for default value)';
|
||||
|
||||
//added with aps installer
|
||||
|
||||
$lng['admin']['aps'] = 'APS Installer';
|
||||
$lng['customer']['aps'] = 'APS Installer';
|
||||
$lng['aps']['scan'] = 'Scan for new packages';
|
||||
$lng['aps']['upload'] = 'Upload new packages';
|
||||
$lng['aps']['managepackages'] = 'Manage packages';
|
||||
$lng['aps']['manageinstances'] = 'Manage instances';
|
||||
$lng['aps']['overview'] = 'Package overview';
|
||||
$lng['aps']['status'] = 'My packages';
|
||||
$lng['aps']['search'] = 'Search for packages';
|
||||
$lng['aps']['upload_description'] = 'Please select the APS Installer zipfiles to install them in the system.';
|
||||
$lng['aps']['search_description'] = 'Name, Description, Keyword, Version';
|
||||
$lng['aps']['detail'] = 'More information';
|
||||
$lng['aps']['install'] = 'Install package';
|
||||
$lng['aps']['data'] = 'Data';
|
||||
$lng['aps']['version'] = 'Version';
|
||||
$lng['aps']['homepage'] = 'Homepage';
|
||||
$lng['aps']['installed_size'] = 'Size after Installation';
|
||||
$lng['aps']['categories'] = 'Categories';
|
||||
$lng['aps']['languages'] = 'Languages';
|
||||
$lng['aps']['long_description'] = 'Long description';
|
||||
$lng['aps']['configscript'] = 'Configuration script';
|
||||
$lng['aps']['changelog'] = 'Changelog';
|
||||
$lng['aps']['license'] = 'License';
|
||||
$lng['aps']['license_link'] = 'Link to License';
|
||||
$lng['aps']['screenshots'] = 'Screenshots';
|
||||
$lng['aps']['back'] = 'Back to overview';
|
||||
$lng['aps']['install_wizard'] = 'Installation wizard...';
|
||||
$lng['aps']['wizard_error'] = 'Your input contains invalid data. Please correct yourself to continue the installation.';
|
||||
$lng['aps']['basic_settings'] = 'Basic settings';
|
||||
$lng['aps']['application_location'] = 'Installation location';
|
||||
$lng['aps']['application_location_description'] = 'Location where the application will be installed.';
|
||||
$lng['aps']['no_domains'] = 'No domains found';
|
||||
$lng['aps']['database_password'] = 'Database password';
|
||||
$lng['aps']['database_password_description'] = 'Password which should be used for the new created database.';
|
||||
$lng['aps']['license_agreement'] = 'Agreement';
|
||||
$lng['aps']['cancel_install'] = 'Abort Installation';
|
||||
$lng['aps']['notazipfile'] = 'The uploaded file is not a zipfile.';
|
||||
$lng['aps']['filetoobig'] = 'The file is too big.';
|
||||
$lng['aps']['filenotcomplete'] = 'The file wasn\'t uploaded completely.';
|
||||
$lng['aps']['phperror'] = 'There occured a PHP internal error. The PHP upload errorcode is #';
|
||||
$lng['aps']['moveproblem'] = 'The script failed to move the uploaded file into the destination directory. Please ensure that all permissions are set correctly.';
|
||||
$lng['aps']['uploaderrors'] = '<strong>Errors for the file <em>%s</em></strong><br/><ul>%s</ul>';
|
||||
$lng['aps']['nospecialchars'] = 'Special characters are not allowed in the search term!';
|
||||
$lng['aps']['noitemsfound'] = 'No packages were found!';
|
||||
$lng['aps']['nopackagesinstalled'] = 'You haven\'t installed any package yet which could be shown.';
|
||||
$lng['aps']['instance_install'] = 'Package Installation pending';
|
||||
$lng['aps']['instance_task_active'] = 'Package is currently being processed';
|
||||
$lng['aps']['instance_success'] = 'Package is installed/was installed successfully';
|
||||
$lng['aps']['instance_error'] = 'Package isn\'t installed - there occured some errors on the installation';
|
||||
$lng['aps']['instance_uninstall'] = 'Package uninstall pending';
|
||||
$lng['aps']['unknown_status'] = 'Error - Unknown value';
|
||||
$lng['aps']['currentstatus'] = 'Current status';
|
||||
$lng['aps']['activetasks'] = 'Current tasks';
|
||||
$lng['aps']['task_install'] = 'Installation pending';
|
||||
$lng['aps']['task_remove'] = 'Uninstallation pending';
|
||||
$lng['aps']['task_reconfigure'] = 'Reconfiguration pending';
|
||||
$lng['aps']['task_upgrade'] = 'Update/Upgrade pending';
|
||||
$lng['aps']['no_task'] = 'No tasks pending';
|
||||
$lng['aps']['applicationlinks'] = 'Application links';
|
||||
$lng['aps']['mainsite'] = 'Main site';
|
||||
$lng['aps']['uninstall'] = 'Uninstall package';
|
||||
$lng['aps']['reconfigure'] = 'Change settings';
|
||||
$lng['aps']['erroronnewinstance'] = '<strong>This package cannot be installed.</strong><br/><br/>Please go back to the package overview and start a new Installation.';
|
||||
$lng['aps']['successonnewinstance'] = '<strong><em>%s</em> will be installed now.</strong><br/><br/>Go back to "My packages" and wait until the Installation has finished. This can take some time.';
|
||||
$lng['aps']['php_misc_handler'] = 'PHP - Misc - There is no support for other file extensions than .php for the PHP Parser.';
|
||||
$lng['aps']['php_misc_directoryhandler'] = 'PHP - Misc - There is no support for per directory disabled PHP Handlers.';
|
||||
$lng['aps']['asp_net'] = 'ASP.NET - Package not supported.';
|
||||
$lng['aps']['cgi'] = 'CGI - Package not supported.';
|
||||
$lng['aps']['php_extension'] = 'PHP - Extension "%s" missing.';
|
||||
$lng['aps']['php_function'] = 'PHP - Function "%s" missing.';
|
||||
$lng['aps']['php_configuration'] = 'PHP - Configuration - Current "%s" setting not supported by package.';
|
||||
$lng['aps']['php_configuration_post_max_size'] = 'PHP - Configuration - "post_max_size" value too low.';
|
||||
$lng['aps']['php_configuration_memory_limit'] = 'PHP - Configuration - "memory_limit" value too low.';
|
||||
$lng['aps']['php_configuration_max_execution_time'] = 'PHP - Configuration - "max_execution_time" value too low.';
|
||||
$lng['aps']['php_general_old'] = 'PHP - General - PHP Version too old.';
|
||||
$lng['aps']['php_general_new'] = 'PHP - General - PHP Version too new.';
|
||||
$lng['aps']['db_mysql_support'] = 'Database - The package needs another database engine than MySQL.';
|
||||
$lng['aps']['db_mysql_version'] = 'Database - MySQL server too old.';
|
||||
$lng['aps']['webserver_module'] = 'Webserver - Module "%s" missing.';
|
||||
$lng['aps']['webserver_fcgid'] = 'Webserver - This package requires additional modules from the webserver. In your FastCGI/mod_fcgid environment the function "apache_get_modules" doesn\'t exist. The package cannot be installed because the APS Installer is unable to verify if this modules are installed.';
|
||||
$lng['aps']['webserver_htaccess'] = 'Webserver - This package requires that .htaccess files are parsed by the webserver. The package cannot be installed because the APS Installer is unable to determine if this is enabled.';
|
||||
$lng['aps']['misc_configscript'] = 'Misc - The language of the configuration script is not supported.';
|
||||
$lng['aps']['misc_charset'] = 'Misc - In the current Installer version its not possibel to validate formfields from the wizard against a specific charset. The package cannot be installed.';
|
||||
$lng['aps']['misc_version_already_installed'] = 'Same version of package already installed.';
|
||||
$lng['aps']['misc_only_newer_versions'] = 'For security reasons only newer package versions can be installed on the system than them which are already installed.';
|
||||
$lng['aps']['erroronscan'] = '<strong>Errors for <em>%s</em></strong><ul>%s</ul>';
|
||||
$lng['aps']['invalidzipfile'] = '<strong>Errors for <em>%s</em></strong><br/><ul><li>This is not a valid APS zipfile!</li></ul>';
|
||||
$lng['aps']['successpackageupdate'] = '<strong><em>%s</em> successfully installed as a package update</strong>';
|
||||
$lng['aps']['successpackageinstall'] = '<strong><em>%s</em> successfully installed as a new package</strong>';
|
||||
$lng['aps']['class_zip_missing'] = 'SimpleXML Class, exec function or ZIP Functions missing or not enabled! For further information about this problem look into the handbook for this module.';
|
||||
$lng['aps']['dir_permissions'] = 'The PHP/webserver process must be able to write in the directory {$path}temp/ and {$path}packages/';
|
||||
$lng['aps']['initerror'] = '<strong>There are some problems with this module:</strong><ul>%s</ul>Fix these problems, otherwise the module cannot be used!';
|
||||
$lng['aps']['iderror'] = 'Wrong id specified!';
|
||||
$lng['aps']['nopacketsforinstallation'] = 'There are no packages to install.';
|
||||
$lng['aps']['nopackagestoinstall'] = 'There are no packages to view or install.';
|
||||
$lng['aps']['nodomains'] = 'Select a domain from the list. If there is none, the package cannot be installed!';
|
||||
$lng['aps']['wrongpath'] = 'Either this path contains invalid characters or there is another application installed already.';
|
||||
$lng['aps']['dbpassword'] = 'Specify a password with a minimum length of 8 characters.';
|
||||
$lng['aps']['error_text'] = 'Specify a text without special characters.';
|
||||
$lng['aps']['error_email'] = 'Specify a valid e-mail address.';
|
||||
$lng['aps']['error_domain'] = 'Specify a valid URL like http://www.example.com/';
|
||||
$lng['aps']['error_integer'] = 'Specify a numeric value (Integer-Format) e.g. <em>5</em> or <em>7</em>.';
|
||||
$lng['aps']['error_float'] = 'Specify a numeric value (Float-Format) e.g. <em>5,2432</em> or <em>7,5346</em>.';
|
||||
$lng['aps']['error_password'] = 'Specify a password.';
|
||||
$lng['aps']['error_license'] = 'Yes, I have read the license and will abide by its terms.';
|
||||
$lng['aps']['error_licensenoaccept'] = 'You must accept the license to install this application.';
|
||||
$lng['aps']['stopinstall'] = 'Abort Installation';
|
||||
$lng['aps']['installstopped'] = 'The Installation of this package was aborted successfully.';
|
||||
$lng['aps']['installstoperror'] = 'The Installation cannot be aborted anymore because installation has started already. If you\'d like to uninstall the package, wait until the Installation has finished and then go to "My packages" to trigger an Uninstall.';
|
||||
$lng['aps']['waitfortask'] = 'There are no actions to select. Wait until all tasks have finished.';
|
||||
$lng['aps']['removetaskexisting'] = '<strong>There is already a task for uninstallation.</strong><br/><br/>Please go back to "My packages" and wait until the uninstall has finished.';
|
||||
$lng['aps']['packagewillberemoved'] = '<strong>The package will be uninstalled now.</strong><br/><br/>Please go back to "My packages" and wait until the uninstall has finished.';
|
||||
$lng['question']['reallywanttoremove'] = '<strong>Do you really want to uninstall this package?</strong><br/><br/>All database contents and files will be erased. Be sure to make a manual backup of a files you need for any further usage!<br/><br/>';
|
||||
$lng['aps']['searchoneresult'] = '%s package found';
|
||||
$lng['aps']['searchmultiresult'] = '%s packages found';
|
||||
$lng['question']['reallywanttostop'] = 'Do you really want to abort the installation of this package?<br/><br/>';
|
||||
$lng['aps']['packagenameandversion'] = 'Packagename & version';
|
||||
$lng['aps']['package_locked'] = 'Locked';
|
||||
$lng['aps']['package_enabled'] = 'Enabled';
|
||||
$lng['aps']['lock'] = 'Lock';
|
||||
$lng['aps']['unlock'] = 'Enable';
|
||||
$lng['aps']['remove'] = 'Remove';
|
||||
$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 & status';
|
||||
$lng['aps']['activate_aps']['title'] = 'Enable APS installer';
|
||||
$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']['description'] = 'How many packages should be displayed per page for customers?';
|
||||
$lng['aps']['upload_fields']['title'] = 'Upload fields per page';
|
||||
$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_webserver_misc'] = 'Webserver miscellaneous';
|
||||
$lng['aps']['specialoptions'] = 'Special options';
|
||||
$lng['aps']['removeunused'] = 'Remove unused packages';
|
||||
$lng['aps']['enablenewest'] = 'Enabled newest version of package, lock others';
|
||||
$lng['aps']['installations'] = 'Installations';
|
||||
$lng['aps']['statistics'] = 'Statistics';
|
||||
$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']['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/>';
|
||||
$lng['aps']['numerofinstanceserror'] = '%s failed Installations<br/>';
|
||||
$lng['aps']['numerofinstancesaction'] = '%s planed Installations/Uninstallations';
|
||||
$lng['aps']['downloadallpackages'] = 'Download all packages from distribution server';
|
||||
$lng['aps']['updateallpackages'] = 'Update all packages by distribution server';
|
||||
$lng['aps']['downloadtaskexists'] = 'There is already a task for the download of all packages. Please wait until this task has finished.';
|
||||
$lng['aps']['downloadtaskinserted'] = 'A task for the download of all packages has been created. This can take up to several minutes.';
|
||||
$lng['aps']['updatetaskexists'] = 'There is already an task for the update of all packages. Please wait until this task has finished.';
|
||||
$lng['aps']['updatetaskinserted'] = 'A task for the update of all packages has been created. This can take up to several minutes.';
|
||||
$lng['aps']['canmanagepackages'] = 'Can manage APS packages';
|
||||
$lng['aps']['numberofapspackages'] = 'Amount of APS installations';
|
||||
$lng['aps']['allpackagesused'] = '<strong>Error</strong><br/><br/>You have already reached the number of installable APS applications.';
|
||||
$lng['aps']['noinstancesexisting'] = 'There are currently no instances which could be managed. There must be installed at least one application by a customer.';
|
||||
$lng['aps']['lightywarning'] = 'Warning';
|
||||
$lng['aps']['lightywarningdescription'] = 'You are using the lighttpd webserver together with Froxlor. The APS module was mainly written for Apache, so it can be possible that some features do not work with lighttpd. Please remember this when using the APS module. If you have found or experienced any problems in connection with lighttpd and the APS module please report them to the developers that they can be fixed within the next release if Froxlor.';
|
||||
$lng['error']['customerdoesntexist'] = 'The customer you have chosen doesn\'t exist.';
|
||||
$lng['error']['admindoesntexist'] = 'The admin you have chosen doesn\'t exist.';
|
||||
|
||||
@@ -1192,7 +1007,6 @@ $lng['serversettings']['mod_fcgid']['maxrequests']['description'] = 'How many re
|
||||
// fix bug #1124
|
||||
$lng['admin']['webserver'] = 'Webserver';
|
||||
$lng['error']['admin_domain_emailsystemhostname'] = 'The server-hostname cannot be used as email-domain.';
|
||||
$lng['aps']['license_link'] = 'Link to the license';
|
||||
|
||||
// ADDED IN 1.4.2.1-1
|
||||
|
||||
@@ -1230,9 +1044,6 @@ $lng['panel']['toomanydirs'] = 'Too many subdirectories. Falling back to manual
|
||||
$lng['panel']['abort'] = 'Abort';
|
||||
$lng['serversettings']['cron']['debug']['title'] = 'Cronscript debugging';
|
||||
$lng['serversettings']['cron']['debug']['description'] = 'Activate to keep the lockfile after a cron-run for debugging.<br /><b>Attention:</b>Keeping the lockfile can cause the next scheduled cron not to run properly.';
|
||||
$lng['autoresponder']['date_from'] = 'Start date';
|
||||
$lng['autoresponder']['date_until'] = 'End date';
|
||||
$lng['autoresponder']['startenddate'] = 'Start/end date';
|
||||
$lng['panel']['not_activated'] = 'not activated';
|
||||
$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.';
|
||||
@@ -1305,9 +1116,6 @@ $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';
|
||||
$lng['crondesc']['cron_autoresponder'] = 'e-mail autoresponder';
|
||||
$lng['crondesc']['cron_apsupdater'] = 'updating APS packages';
|
||||
$lng['crondesc']['cron_traffic'] = 'traffic calculation';
|
||||
$lng['crondesc']['cron_ticketsreset'] = 'resetting ticket-counters';
|
||||
$lng['crondesc']['cron_ticketarchive'] = 'archiving old tickets';
|
||||
@@ -1334,7 +1142,6 @@ $lng['ftp']['editpassdescription'] = 'Set new password or leave blank for no cha
|
||||
$lng['customer']['sendinfomail'] = 'Send data via email to me';
|
||||
$lng['customer']['mysql_add']['infomail_subject'] = '[Froxlor] New database created';
|
||||
$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}\nphpMyAdmin: {PMA_URI}\nYours sincerely, your administrator";
|
||||
$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!';
|
||||
@@ -1383,12 +1190,6 @@ $lng['serversettings']['customredirect_default']['description'] = 'Set the defau
|
||||
|
||||
// ADDED IN FROXLOR 0.9.7-svn2
|
||||
$lng['error']['pathmaynotcontaincolon'] = 'The path you have entered should not contain a colon (":"). Please enter a correct path value.';
|
||||
$lng['tasks']['aps_task_install'] = 'Installing one or more APS packages';
|
||||
$lng['tasks']['aps_task_remove'] = 'Removing one or more APS packages';
|
||||
$lng['tasks']['aps_task_reconfigure'] = 'Reconfigurating one or more APS packages';
|
||||
$lng['tasks']['aps_task_upgrade'] = 'Upgrading one or more APS packages';
|
||||
$lng['tasks']['aps_task_sysupdate'] = 'Updating all APS packages';
|
||||
$lng['tasks']['aps_task_sysdownload'] = 'Downloading new APS packages';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.7-svn3
|
||||
|
||||
@@ -1407,9 +1208,6 @@ $lng['error']['exception'] = '%s';
|
||||
$lng['serversettings']['mail_also_with_mxservers'] = 'Create mail-, imap-, pop3- and smtp-"A record" also with MX-Servers set';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.10-svn1
|
||||
$lng['aps']['nocontingent'] = 'Your APS contingent is insufficient. You cannot install any package.';
|
||||
$lng['aps']['packageneedsdb'] = 'This package needs a database but your contingent is used up';
|
||||
$lng['aps']['cannoteditordeleteapsdb'] = 'APS databases cannot be edited or removed here';
|
||||
$lng['admin']['webserver_user'] = 'Webserver user-name';
|
||||
$lng['admin']['webserver_group'] = 'Webserver group-name';
|
||||
|
||||
@@ -1418,7 +1216,7 @@ $lng['serversettings']['froxlordirectlyviahostname'] = 'Access Froxlor directly
|
||||
|
||||
// ADDED IN FROXLOR 0.9.11-svn1
|
||||
$lng['serversettings']['panel_password_regex']['title'] = 'Regular expression for passwords';
|
||||
$lng['serversettings']['panel_password_regex']['description'] = 'Here you can set a regular expression for passwords-complexity.<br />Empty = no specific requirement<br />(<a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/En-password-regex-examples">regex help/examples</a>)';
|
||||
$lng['serversettings']['panel_password_regex']['description'] = 'Here you can set a regular expression for passwords-complexity.<br />Empty = no specific requirement';
|
||||
$lng['error']['notrequiredpasswordcomplexity'] = 'The specified password-complexity was not satisfied.<br />Please contact your administrator if you have any questions about the complexity-specification';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.11-svn2
|
||||
@@ -1476,9 +1274,6 @@ $lng['admin']['templates']['forgotpwd'] = 'Notification-mails for password-reset
|
||||
$lng['admin']['templates']['password_reset'] = 'Customer-notification for passwort-reset';
|
||||
$lng['admin']['store_defaultindex'] = 'Store default index-file to customers docroot';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.13-svn1
|
||||
$lng['customer']['autoresponder'] = 'Autoresponder';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14
|
||||
$lng['serversettings']['mod_fcgid']['defaultini_ownvhost'] = 'Default PHP configuration for Froxlor-vHost';
|
||||
$lng['serversettings']['awstats_icons']['title'] = 'Path to AWstats icons folder';
|
||||
@@ -1503,7 +1298,8 @@ $lng['serversettings']['phpreload_command']['description'] = 'this is used to re
|
||||
$lng['error']['intvaluetoolow'] = 'The given number is too low (field %s)';
|
||||
$lng['error']['intvaluetoohigh'] = 'The given number is too high (field %s)';
|
||||
$lng['admin']['phpfpm_settings'] = 'PHP-FPM';
|
||||
$lng['serversettings']['phpfpm'] = 'Enable php-fpm';
|
||||
$lng['serversettings']['phpfpm']['title'] = 'Enable php-fpm';
|
||||
$lng['serversettings']['phpfpm']['description'] = '<b>This needs a special webserver configuration see FPM-handbook for <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/HandbookApache2_phpfpm">Apache2</a> or <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/HandbookNginx_phpfpm">nginx</a></b>';
|
||||
$lng['serversettings']['phpfpm_settings']['configdir'] = 'Configuration directory of php-fpm';
|
||||
$lng['serversettings']['phpfpm_settings']['aliasconfigdir'] = 'Configuration Alias-directory of php-fpm';
|
||||
$lng['serversettings']['phpfpm_settings']['reload'] = 'php-fpm restart command';
|
||||
@@ -1582,30 +1378,12 @@ $lng['traffic']['months']['total'] = 'Total';
|
||||
$lng['traffic']['details'] = 'Details';
|
||||
$lng['menue']['traffic']['table'] = 'Traffic';
|
||||
$lng['error']['admin_domain_emailsystemhostname'] = 'Sorry, the system - hostname may not be used as a customer domain';
|
||||
$lng['backup'] = 'Backup';
|
||||
$lng['backup_allowed'] = 'Backup allowed';
|
||||
$lng['extras']['backup_create'] = 'Create Backup?';
|
||||
$lng['extras']['backup_info'] = 'Backup will be saved once daily to a FTP directory. The FTP username is "%s_backup". The FTP password is the same as for your main FTP account.';
|
||||
$lng['extras']['backup_info_sep'] = 'It contains compressed archives of your web-directory and databases.';
|
||||
$lng['extras']['backup_info_big'] = 'It contains a compressed archive of your web-directory and databases.';
|
||||
$lng['extras']['backup_count_info'] = '<br /><br />Please note that the backup will charge your webspace!';
|
||||
$lng['serversettings']['backup_count'] = 'Should backup size be subtracted from webspace size?';
|
||||
$lng['serversettings']['backup_enabled'] = 'Backup activated?';
|
||||
$lng['serversettings']['backupdir']['description'] = 'Backup dir path?';
|
||||
$lng['serversettings']['mysqldump_path']['description'] = 'Path to mysqldump binary?';
|
||||
$lng['serversettings']['backup_bigfile'] = 'Save backup in 1 big file instead in separeted files for html and databases?';
|
||||
$lng['serversettings']['backup_ftp_enabled'] = 'FTP Upload activated?';
|
||||
$lng['serversettings']['backup_ftp_server'] = 'FTP Server:';
|
||||
$lng['serversettings']['backup_ftp_user'] = 'FTP Username:';
|
||||
$lng['serversettings']['backup_ftp_pass'] = 'FTP Password:';
|
||||
$lng['crondesc']['cron_backup'] = 'Backup cronjob';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.21
|
||||
$lng['gender']['title'] = 'Title';
|
||||
$lng['gender']['male'] = 'Mr.';
|
||||
$lng['gender']['female'] = 'Mrs.';
|
||||
$lng['gender']['undef'] = '';
|
||||
$lng['serversettings']['backup_ftp_passive_mode'] = 'Use passive mode';
|
||||
|
||||
// Country code (ISO-3166-2)
|
||||
$lng['country']['AF'] = "Afghanistan";
|
||||
@@ -1996,3 +1774,7 @@ $lng['serversettings']['allow_error_report_customer']['description'] = 'Please n
|
||||
$lng['admin']['phpsettings']['enable_slowlog'] = 'Enable slowlog (per domain)';
|
||||
$lng['admin']['phpsettings']['request_terminate_timeout'] = 'Request terminate-timeout';
|
||||
$lng['admin']['phpsettings']['request_slowlog_timeout'] = 'Request slowlog-timeout';
|
||||
$lng['admin']['templates']['SERVER_HOSTNAME'] = 'Replaces the system-hostname (URL to froxlor)';
|
||||
$lng['admin']['templates']['SERVER_IP'] = 'Replaces the default server ip-address';
|
||||
$lng['admin']['templates']['SERVER_PORT'] = 'Replaces the default server port';
|
||||
$lng['admin']['templates']['DOMAINNAME'] = 'Replaces the customers standard-subdomain (can be empty if none is generated)';
|
||||
|
||||
@@ -536,7 +536,7 @@ $lng['panel']['back'] = 'Zurück';
|
||||
// ADDED IN 1.2.16-svn12
|
||||
|
||||
$lng['serversettings']['mod_fcgid']['title'] = 'PHP über mod_fcgid/suexec einbinden';
|
||||
$lng['serversettings']['mod_fcgid']['description'] = 'PHP unter dem jeweiligen Useraccount laufen lassen.<br /><br /><b>Dies benötigt eine spezielle Webserver-Konfiguration für Apache, siehe <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/FCGID_-_Handbuch">FCGID-Handbuch</a>.</b>';
|
||||
$lng['serversettings']['mod_fcgid']['description'] = 'PHP wird unter dem Benutzer des Kunden ausgeführt.<br /><br /><b>Dies benötigt eine spezielle Webserver-Konfiguration für Apache, siehe <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/HandbookApache2_fcgid">FCGID-Handbuch</a>.</b>';
|
||||
$lng['serversettings']['sendalternativemail']['title'] = 'Alternative E-Mail-Adresse benutzen';
|
||||
$lng['serversettings']['sendalternativemail']['description'] = 'Während des Erstellens eines Accounts das Passwort an eine andere E-Mail-Adresse senden';
|
||||
$lng['emails']['alternative_emailaddress'] = 'Alternative E-Mail-Adresse';
|
||||
@@ -911,25 +911,8 @@ $lng['emails']['quota_edit'] = 'E-Mail Kontingent ändern';
|
||||
$lng['panel']['not_supported'] = 'Nicht unterstüzt in: ';
|
||||
$lng['error']['allocatetoomuchquota'] = 'Sie versuchen "%s" MB Kontingent zu zuweisen, haben aber nicht genug übrig.';
|
||||
|
||||
// Autoresponder module
|
||||
|
||||
$lng['menue']['email']['autoresponder'] = 'Abwesenheitsnachrichten';
|
||||
$lng['autoresponder']['active'] = 'Aktiviert';
|
||||
$lng['autoresponder']['autoresponder_add'] = 'Abwesenheitsnachricht hinzufügen';
|
||||
$lng['autoresponder']['autoresponder_edit'] = 'Abwesenheitsnachricht bearbeiten';
|
||||
$lng['autoresponder']['autoresponder_new'] = 'Neue Abwesenheitsnachricht erstellen';
|
||||
$lng['autoresponder']['subject'] = 'Betreff';
|
||||
$lng['autoresponder']['message'] = 'Nachricht';
|
||||
$lng['autoresponder']['account'] = 'Konto';
|
||||
$lng['autoresponder']['sender'] = 'Absender';
|
||||
$lng['question']['autoresponderdelete'] = 'Abwesenheitsnachricht wirklich löschen?';
|
||||
$lng['error']['noemailaccount'] = 'Es gibt zwei mögliche Gründe warum keine Abwesenheitsnachricht erstellt werden kann: Sie benötigen mindestens einen E-Mail Account. Zweitens kann es sein dass bereits für alle Accounts eine Abwesenheitsnachricht eingerichtet wurde.';
|
||||
$lng['error']['missingfields'] = 'Es wurden nicht alle Felder augefüllt.';
|
||||
$lng['error']['accountnotexisting'] = 'Der angegebene E-Mail-Account existiert nicht.';
|
||||
$lng['error']['autoresponderalreadyexists'] = 'Für dieses Konto existiert bereits eine Abwesenheitsnachricht.';
|
||||
$lng['error']['invalidautoresponder'] = 'Das angegebene Konto ist ungültig.';
|
||||
$lng['serversettings']['autoresponder_active']['title'] = 'Abwesenheitsnachrichten-Modul verwenden';
|
||||
$lng['serversettings']['autoresponder_active']['description'] = 'Möchten Sie das Abwesenheitsnachrichten-Modul verwenden?';
|
||||
$lng['admin']['show_version_login']['title'] = 'Zeige Froxlor Version beim Login';
|
||||
$lng['admin']['show_version_login']['description'] = 'Zeige Froxlor Version in der Fußzeile der Loginseite';
|
||||
$lng['admin']['show_version_footer']['title'] = 'Zeige Froxlor Version in Fußzeile';
|
||||
@@ -996,173 +979,6 @@ $lng['admin']['security_settings'] = 'Sicherheitseinstellungen';
|
||||
$lng['admin']['expert_settings'] = 'Experteneinstellungen!';
|
||||
$lng['admin']['mod_fcgid_starter']['title'] = 'PHP-Prozesse für diese Domain (leer für Standardwert)';
|
||||
|
||||
//added with aps installer
|
||||
|
||||
$lng['admin']['aps'] = 'APS-Installer';
|
||||
$lng['customer']['aps'] = 'APS-Installer';
|
||||
$lng['aps']['scan'] = 'Neue Pakete einlesen';
|
||||
$lng['aps']['upload'] = 'Neue Pakete hochladen';
|
||||
$lng['aps']['managepackages'] = 'Pakete verwalten';
|
||||
$lng['aps']['manageinstances'] = 'Instanzen verwalten';
|
||||
$lng['aps']['overview'] = 'Paketübersicht';
|
||||
$lng['aps']['status'] = 'Meine Pakete';
|
||||
$lng['aps']['search'] = 'Paket suchen';
|
||||
$lng['aps']['upload_description'] = 'Bitte wählen Sie die APS-ZIP-Dateien aus, um diese im System zu installieren.';
|
||||
$lng['aps']['search_description'] = 'Name, Beschreibung, Schlagwort, Version';
|
||||
$lng['aps']['detail'] = 'Weitere Informationen';
|
||||
$lng['aps']['install'] = 'Paket installieren';
|
||||
$lng['aps']['data'] = 'Daten';
|
||||
$lng['aps']['version'] = 'Version';
|
||||
$lng['aps']['homepage'] = 'Homepage';
|
||||
$lng['aps']['installed_size'] = 'Größe nach Installation';
|
||||
$lng['aps']['categories'] = 'Kategorien';
|
||||
$lng['aps']['languages'] = 'Sprachen';
|
||||
$lng['aps']['long_description'] = 'Langbeschreibung';
|
||||
$lng['aps']['configscript'] = 'Konfigurationskript';
|
||||
$lng['aps']['changelog'] = 'Changelog';
|
||||
$lng['aps']['license'] = 'Lizenz';
|
||||
$lng['aps']['linktolicense'] = 'Link zur Lizenz';
|
||||
$lng['aps']['screenshots'] = 'Screenshots';
|
||||
$lng['aps']['back'] = 'Zurück zur Übersicht';
|
||||
$lng['aps']['install_wizard'] = 'Installationsassistent...';
|
||||
$lng['aps']['wizard_error'] = 'Ihre Eingaben enthalten ungültige Daten. Bitte korrigieren Sie diese, um mit der Installation fortzufahren.';
|
||||
$lng['aps']['basic_settings'] = 'Grundlegende Einstellungen';
|
||||
$lng['aps']['application_location'] = 'Installationsort';
|
||||
$lng['aps']['application_location_description'] = 'Ort an dem die Anwendung installiert werden soll.';
|
||||
$lng['aps']['no_domains'] = 'Keine Domains gefunden';
|
||||
$lng['aps']['database_password'] = 'Datenbankpasswort';
|
||||
$lng['aps']['database_password_description'] = 'Passwort welches für die neu zu erstellende Datenbank verwendet werden soll.';
|
||||
$lng['aps']['license_agreement'] = 'Zustimmung';
|
||||
$lng['aps']['cancel_install'] = 'Installation abbrechen';
|
||||
$lng['aps']['notazipfile'] = 'Die hochgeladene Datei ist keine gültige ZIP-Datei.';
|
||||
$lng['aps']['filetoobig'] = 'Die Datei ist zu groß.';
|
||||
$lng['aps']['filenotcomplete'] = 'Die Datei wurde nicht vollständig hochgeladen.';
|
||||
$lng['aps']['phperror'] = 'Es trat ein PHP interner Fehler auf. Der Upload Fehlercode lautet #';
|
||||
$lng['aps']['moveproblem'] = 'Die hochgeladene Datei konnte nicht aus dem temporären Ordner verschoben werden. Prüfen Sie ob alle Rechte korrekt gesetzt sind. Dies gilt insbesondere fü die Ordner {$path}temp/ und {$path}packages/.';
|
||||
$lng['aps']['uploaderrors'] = '<strong>Fehler für die Datei <em>"%s"</em></strong><br/><ul>"%s"</ul>';
|
||||
$lng['aps']['nospecialchars'] = 'Sonderzeichen sind im Suchausdruck nicht erlaubt!';
|
||||
$lng['aps']['noitemsfound'] = 'Es wurden keine Pakete gefunden!';
|
||||
$lng['aps']['nopackagesinstalled'] = 'Sie haben noch kein Paket installiert welches angezeigt werden könnte.';
|
||||
$lng['aps']['instance_install'] = 'Paket wurde zur Installation vorgemerkt';
|
||||
$lng['aps']['instance_task_active'] = 'Paket wird gerade bearbeitet';
|
||||
$lng['aps']['instance_success'] = 'Paket ist installiert bzw. wurde erfolgreich installiert';
|
||||
$lng['aps']['instance_error'] = 'Paket ist nicht installiert - bei der Installation traten Fehler auf';
|
||||
$lng['aps']['instance_uninstall'] = 'Paket wurde zur Deinstallation vorgemerkt';
|
||||
$lng['aps']['unknown_status'] = 'Fehler - Unbekannter Wert';
|
||||
$lng['aps']['currentstatus'] = 'Aktueller Status';
|
||||
$lng['aps']['activetasks'] = 'Aktuelle Jobs';
|
||||
$lng['aps']['task_install'] = 'Installation ausstehend';
|
||||
$lng['aps']['task_remove'] = 'Deinstallation ausstehend';
|
||||
$lng['aps']['task_reconfigure'] = 'Neukonfiguration ausstehend';
|
||||
$lng['aps']['task_upgrade'] = 'Aktualisierung ausstehend';
|
||||
$lng['aps']['no_task'] = 'Kein Task ausstehend';
|
||||
$lng['aps']['applicationlinks'] = 'Anwendungslinks';
|
||||
$lng['aps']['mainsite'] = 'Hauptseite';
|
||||
$lng['aps']['uninstall'] = 'Paket deinstallieren';
|
||||
$lng['aps']['reconfigure'] = 'Einstellungen ändern';
|
||||
$lng['aps']['erroronnewinstance'] = '<strong>Dieses Paket kann nicht installiert werden.</strong><br/><br/>Bitte gehen Sie zurück zur Paketübersicht und starten Sie eine neue Installation.';
|
||||
$lng['aps']['successonnewinstance'] = '<strong><em>"%s"</em> wird nun installiert.</strong><br/><br/>Gehen Sie zurück zu "Meine Pakete" und warten Sie bis die Installation abgeschlossen ist. Dies kann einige Minuten in Anspruch nehmen.';
|
||||
$lng['aps']['php_misc_handler'] = 'PHP - Sonstiges - Es werden keine anderen Dateiendungen als .php zum Parsen unterstützt.';
|
||||
$lng['aps']['php_misc_directoryhandler'] = 'PHP - Sonstiges - Je Verzeichnis deaktivierte PHP Handler werden nicht unterstützt.';
|
||||
$lng['aps']['asp_net'] = 'ASP.NET - Paket wird nicht unterstützt.';
|
||||
$lng['aps']['cgi'] = 'CGI - Paket wird nicht unterstützt.';
|
||||
$lng['aps']['php_extension'] = 'PHP - Erweiterung "%s" fehlt.';
|
||||
$lng['aps']['php_function'] = 'PHP - Funktion "%s" fehlt.';
|
||||
$lng['aps']['php_configuration'] = 'PHP - Konfiguration - Aktuelle "%s" Einstellung wird von Paket nicht unterstützt.';
|
||||
$lng['aps']['php_configuration_post_max_size'] = 'PHP - Konfiguration - "post_max_size" Wert zu klein.';
|
||||
$lng['aps']['php_configuration_memory_limit'] = 'PHP - Konfiguration - "memory_limit" Wert zu klein.';
|
||||
$lng['aps']['php_configuration_max_execution_time'] = 'PHP - Konfiguration - "max_execution_time" Wert zu klein.';
|
||||
$lng['aps']['php_general_old'] = 'PHP - Generell - PHP-Version zu alt.';
|
||||
$lng['aps']['php_general_new'] = 'PHP - Generell - PHP-Version zu neu.';
|
||||
$lng['aps']['db_mysql_support'] = 'Datenbank - Das Paket benötigt eine andere Datenbank Engine als MySQL.';
|
||||
$lng['aps']['db_mysql_version'] = 'Datenbank - MySQL Server zu alt.';
|
||||
$lng['aps']['webserver_module'] = 'Webserver - Modul "%s" fehlt.';
|
||||
$lng['aps']['webserver_fcgid'] = 'Webserver - Von diesem Paket werden einige Webserver Module benötigt. Da Sie Froxlor in einer FastCGI/mod_fcgid Umgebung verwenden, existiert die Funktion "apache_get_modules" nicht. Es kann also nicht ermittelt werden, ob das Paket unterstützt wird.';
|
||||
$lng['aps']['webserver_htaccess'] = 'Webserver - Dieses Paket benötigt, dass ".htaccess"-Dateien vom Webserver geparst werden. Das Paket kann nicht installiert werden, da nicht ermittelt werden kann, ob diese Funktion aktiviert ist.';
|
||||
$lng['aps']['misc_configscript'] = 'Sonstiges - Die Sprache des Konfigurationsskriptes wird nicht unterstützt.';
|
||||
$lng['aps']['misc_charset'] = 'Sonstiges - In der aktuellen Version wird eine Validierung gegen einen gewissen Zeichensatz im Installationsassitenten nicht unterstützt.';
|
||||
$lng['aps']['misc_version_already_installed'] = 'Die gleiche Paketversion ist bereits installiert.';
|
||||
$lng['aps']['misc_only_newer_versions'] = 'Aus Sicherheitsgründen können nur Pakete installiert werden, die neuer sind als die bereits im System installierten Pakete sind.';
|
||||
$lng['aps']['erroronscan'] = '<strong>Fehler für <em>"%s"</em></strong><ul>"%s"</ul>';
|
||||
$lng['aps']['invalidzipfile'] = '<strong>Fehler für <em>"%s"</em></strong><br/><ul><li>Dies ist keine gültige APS-ZIP-Datei!</li></ul>';
|
||||
$lng['aps']['successpackageupdate'] = '<strong><em>"%s"</em> erfolgreich als Paketupdate installiert</strong>';
|
||||
$lng['aps']['successpackageinstall'] = '<strong><em>"%s"</em> erfolgreich als neues Paket installiert</strong>';
|
||||
$lng['aps']['class_zip_missing'] = 'SimpleXML-Klasse, exec-Funktion oder ZIP-Funktionen nicht vorhanden bzw. aktiviert! Für genauere Informationen zu diesem Problem schauen Sie bitte in das Handbuch zu diesem Modul.';
|
||||
$lng['aps']['dir_permissions'] = 'Der PHP- bzw. Webserver-Prozess muss Schreibrechte für {$path}temp/ und {$path}packages/ haben.';
|
||||
$lng['aps']['initerror'] = '<strong>Es gibt ein paar Probleme mit diesem Modul:</strong><ul>"%s"</ul>Beheben Sie diese Probleme, andernfalls kann das Modul nicht genutzt werden!';
|
||||
$lng['aps']['iderror'] = 'Es wurde eine falsche ID übergeben!';
|
||||
$lng['aps']['nopacketsforinstallation'] = 'Es wurden keine Pakete zur Installation gefunden.';
|
||||
$lng['aps']['nopackagestoinstall'] = 'Es existieren keine Pakete die angezeigt oder installiert werden könnten.';
|
||||
$lng['aps']['nodomains'] = 'Wählen Sie eine Domain aus der Liste. Sollte keine Domain vorhanden sein können Sie keine Pakete installieren!';
|
||||
$lng['aps']['wrongpath'] = 'Entweder enthält dieser Pfad ungültige Zeichen oder es ist bereits eine Anwendung am gegebenen Ort installiert.';
|
||||
$lng['aps']['dbpassword'] = 'Geben Sie ein Passwort mit einer minimalen Länge von 8 Zeichen ein.';
|
||||
$lng['aps']['error_text'] = 'Geben Sie einen Text ohne Sonderzeichen ein.';
|
||||
$lng['aps']['error_email'] = 'Geben Sie eine gültige E-Mail Adresse ein.';
|
||||
$lng['aps']['error_domain'] = 'Geben Sie eine gültige URL wie "http://www.example.com/" ein.';
|
||||
$lng['aps']['error_integer'] = 'Geben Sie eine Zahl (Integer-Format) ein. Beispiel: <em>5</em> oder <em>7</em>.';
|
||||
$lng['aps']['error_float'] = 'Geben Sie eine Zahl (Float-Format) ein. Beispiel: <em>5,2432</em> oder <em>7,5346</em>.';
|
||||
$lng['aps']['error_password'] = 'Geben Sie ein Passwort ein.';
|
||||
$lng['aps']['error_license'] = 'Ja, ich habe die Lizenz gelesen und willige ein diese zu befolgen.';
|
||||
$lng['aps']['error_licensenoaccept'] = 'Sie müssen die Lizenz annehmen um die Anwendung installieren zu können.';
|
||||
$lng['aps']['stopinstall'] = 'Installation abbrechen';
|
||||
$lng['aps']['installstopped'] = 'Die Installation für dieses Paket wurde erfolgreich abgebrochen.';
|
||||
$lng['aps']['installstoperror'] = 'Die Installation kann nicht mehr abgebrochen werden, da diese bereits gestartet wurde. Möchten Sie das Paket entfernen, so warten Sie die Installation ab und entfernen Sie dann das Paket unter "Meine Pakete"';
|
||||
$lng['aps']['waitfortask'] = 'Es stehen momentan keine Aktionen zur Verfügung. Warten Sie bis alle Tasks abgearbeitet wurden.';
|
||||
$lng['aps']['removetaskexisting'] = '<strong>Es gibt bereits einen Task zur Deinstallation.</strong><br/><br/>Bitte gehen Sie zurück zu "Meine Pakete" und warten Sie bis die Deinstallation abgeschlossen ist.';
|
||||
$lng['aps']['packagewillberemoved'] = '<strong>Das Paket wird nun deinstalliert.</strong><br/><br/>Gehen Sie zurück zu "Meine Pakete" und warten Sie bis die Deinstallation abgeschlossen ist.';
|
||||
$lng['question']['reallywanttoremove'] = '<strong>Wollen Sie dieses Paket wirklich deinstallieren?</strong><br/><br/>Alle Datenbankinhalte und Dateien werden unwiderruflich gelöscht. Wenn Sie die enthaltenen Daten weiterhin benötigen, stellen Sie sicher dass Sie diese vorher sichern!<br/><br/>';
|
||||
$lng['aps']['searchoneresult'] = '"%s" Paket gefunden';
|
||||
$lng['aps']['searchmultiresult'] = '"%s" Pakete gefunden';
|
||||
$lng['question']['reallywanttostop'] = 'Wollen Sie die Installation dieses Paketes wirklich abbrechen?<br/><br/>';
|
||||
$lng['aps']['packagenameandversion'] = 'Paketname & Version';
|
||||
$lng['aps']['package_locked'] = 'Gesperrt';
|
||||
$lng['aps']['package_enabled'] = 'Freigegeben';
|
||||
$lng['aps']['lock'] = 'Sperren';
|
||||
$lng['aps']['unlock'] = 'Freigeben';
|
||||
$lng['aps']['remove'] = 'Löschen';
|
||||
$lng['aps']['allpackages'] = 'Alle Pakete';
|
||||
$lng['question']['reallyremovepackages'] = '<strong>Wollen Sie diese Pakete wirklich löschen?</strong><br/><br/>Pakete mit Abhängigkeiten können erst gelöscht werden wenn die entsprechenden Instanzen dafür deinstalliert wurden!<br/><br/>';
|
||||
$lng['aps']['nopackagesinsystem'] = 'Es wurden noch keine Pakete im System installiert, die verwaltet werden könnten.';
|
||||
$lng['aps']['packagenameandstatus'] = 'Paketname & Status';
|
||||
$lng['aps']['activate_aps']['title'] = 'APS-Installer aktivieren';
|
||||
$lng['aps']['activate_aps']['description'] = 'Hier können Sie den APS-Installer global aktivieren bzw. deaktivieren.';
|
||||
$lng['aps']['packages_per_page']['title'] = 'Pakete pro Seite';
|
||||
$lng['aps']['packages_per_page']['description'] = 'Wieviele Pakete sollen Kunden pro Seite angezeigt bekommen?';
|
||||
$lng['aps']['upload_fields']['title'] = 'Uploadfelder pro Seite';
|
||||
$lng['aps']['upload_fields']['description'] = 'Wieviele Uploadfelder sollen im Panel zur Installation von Paketen angezeigt werden?';
|
||||
$lng['aps']['exceptions']['title'] = 'Ausnahmen für Paketvalidierung';
|
||||
$lng['aps']['exceptions']['description'] = 'Manche Pakete benötigen spezielle Konfigurationsparameter oder Module. Der Installer selbst kann nicht immer eindeutig feststellen ob diese Optionen/Erweiterungen aktiviert sind. Aus diesem Grund kann man hier nun Ausnahmen festlegen damit Pakete dann trotzdem installiert werden können. Wählen Sie nur die Optionen aus, die auch wirklich so mit der Realität übereinstimmen. Für genauere Informationen zu diesem Problem schauen Sie bitte in das Handbuch zu diesem Modul.';
|
||||
$lng['aps']['settings_php_extensions'] = 'PHP-Erweiterungen';
|
||||
$lng['aps']['settings_php_configuration'] = 'PHP-Konfiguration';
|
||||
$lng['aps']['settings_webserver_modules'] = 'Webserver-Module';
|
||||
$lng['aps']['settings_webserver_misc'] = 'Webserver - Sonstiges';
|
||||
$lng['aps']['specialoptions'] = 'Sonderoptionen';
|
||||
$lng['aps']['removeunused'] = 'Ungenutzte Pakete entfernen';
|
||||
$lng['aps']['enablenewest'] = 'Von jedem Paket neueste Version freigeben, alte Version sperren';
|
||||
$lng['aps']['installations'] = 'Installationen';
|
||||
$lng['aps']['statistics'] = 'Statistiken';
|
||||
$lng['aps']['numerofpackagesinstalled'] = '"%s" Pakete vorhanden<br/>';
|
||||
$lng['aps']['numerofpackagesenabled'] = '"%s" Pakete freigegeben<br/>';
|
||||
$lng['aps']['numerofpackageslocked'] = '"%s" Pakete gesperrt<br/>';
|
||||
$lng['aps']['numerofinstances'] = '"%s" Instanzen installiert<br/>';
|
||||
$lng['question']['reallydoaction'] = '<strong>Wollen Sie die gewählten Aktionen wirklich durchführen?</strong><br/><br/>Daten, die durch diese Vorgänge möglicherweise gelöscht werden, können anschließend nicht wieder hergestellt werden.<br/><br/>';
|
||||
$lng['aps']['initerror_customer'] = 'Es gibt momentan ein Problem mit dieser Froxlor-Erweiterung. Wenden Sie sich bitte für weitere Informationen an Ihren Administrator.';
|
||||
$lng['aps']['numerofinstances'] = '"%s" Installationen insgesamt<br/>';
|
||||
$lng['aps']['numerofinstancessuccess'] = '"%s" erfolgreiche Installationen<br/>';
|
||||
$lng['aps']['numerofinstanceserror'] = '"%s" fehlgeschlagene Installationen<br/>';
|
||||
$lng['aps']['numerofinstancesaction'] = '"%s" geplante Installationen/Deinstallationen';
|
||||
$lng['aps']['downloadallpackages'] = 'Alle Pakete vom Distributionsserver herunterladen';
|
||||
$lng['aps']['updateallpackages'] = 'Alle Pakete über Distributionsserver aktualisieren';
|
||||
$lng['aps']['downloadtaskexists'] = 'Es gibt bereits einen Task zum Download aller Pakete. Bitte warten Sie bis dieser abgeschlossen ist.';
|
||||
$lng['aps']['downloadtaskinserted'] = 'Es wurde ein Task zum Download aller Pakete erstellt. Dieser Vorgang kann einige Minuten in Anspruch nehmen.';
|
||||
$lng['aps']['updatetaskexists'] = 'Es gibt bereits einen Task zur Aktualisierung aller Pakete. Bitte warten Sie bis dieser abgeschlossen ist.';
|
||||
$lng['aps']['updatetaskinserted'] = 'Es wurde ein Task zur Aktualisierung aller Pakete erstellt. Dieser Vorgang kann einige Minuten in Anspruch nehmen.';
|
||||
$lng['aps']['canmanagepackages'] = 'Darf APS-Pakete verwalten';
|
||||
$lng['aps']['numberofapspackages'] = 'Anzahl an APS-Installationen';
|
||||
$lng['aps']['allpackagesused'] = '<strong>Fehler</strong><br/><br/>Sie haben bereits die Anzahl an installierbaren APS-Anwendungen erreicht bzw. überschritten.';
|
||||
$lng['aps']['noinstancesexisting'] = 'Es gibt momentan noch keine Instanzen, die verwaltet werden könnten. Es muss mindestens eine Anwendung von einem Kunden installiert worden sein.';
|
||||
$lng['aps']['lightywarning'] = 'Warnung';
|
||||
$lng['aps']['lightywarningdescription'] = 'Sie verwenden den lighttpd-Webserver zusammen mit Froxlor. Da das APS-Modul hauptsächlich für den Apache-Webserver geschrieben wurde, kann es unter Umständen vorkommen, dass gewisse Features mit lighttpd nicht funktionieren. Bitte beachten Sie dies bei der Verwendung des APS-Moduls. Sollten Sie Fehler bei der Verwendung oder Probleme bei der Nutzung haben, so leiten Sie diese bitte an die Entwickler weiter, damit diese Probleme in der nächsten Version behoben werden können.';
|
||||
$lng['error']['customerdoesntexist'] = 'Der ausgewählte Kunde existiert nicht.';
|
||||
$lng['error']['admindoesntexist'] = 'Der ausgewählte Admin existiert nicht.';
|
||||
|
||||
@@ -1191,7 +1007,6 @@ $lng['serversettings']['mod_fcgid']['maxrequests']['description'] = 'Wieviele PH
|
||||
// fix bug #1124
|
||||
$lng['admin']['webserver'] = 'Webserver';
|
||||
$lng['error']['admin_domain_emailsystemhostname'] = 'Der Server-Hostname kann leider nicht als E-Mail-Domain verwendet werden.';
|
||||
$lng['aps']['license_link'] = 'Link zur Lizenz';
|
||||
|
||||
// ADDED IN FROXLOR 0.9
|
||||
|
||||
@@ -1203,9 +1018,6 @@ $lng['panel']['toomanydirs'] = 'Zu viele Unterverzeichnisse. Weiche auf manuelle
|
||||
$lng['panel']['abort'] = 'Abbrechen';
|
||||
$lng['serversettings']['cron']['debug']['title'] = 'Debuggen des Cronscripts';
|
||||
$lng['serversettings']['cron']['debug']['description'] = 'Wenn aktiviert, wird die Lockdatei nach dem Cronlauf zum Debuggen nicht gelöscht<br /><b>Achtung:</b> Eine alte Lockdatei kann weitere Cronjobs behindern und dafür sorgen, dass diese nicht vollständig ausgeführt werden.';
|
||||
$lng['autoresponder']['date_from'] = 'Start-Datum';
|
||||
$lng['autoresponder']['date_until'] = 'End-Datum';
|
||||
$lng['autoresponder']['startenddate'] = 'Start/End-Datum';
|
||||
$lng['panel']['not_activated'] = 'Nicht aktiviert';
|
||||
$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ßen.';
|
||||
@@ -1278,9 +1090,6 @@ $lng['crondesc']['cron_unknown_desc'] = 'Keine Beschreibung angegeben';
|
||||
$lng['admin']['cron']['add'] = 'Cronjob hinzufügen';
|
||||
$lng['crondesc']['cron_tasks'] = 'Erstellen von Konfigurationsdateien';
|
||||
$lng['crondesc']['cron_legacy'] = 'Legacy (alter) Cronjob';
|
||||
$lng['crondesc']['cron_apsinstaller'] = 'APS-Installer';
|
||||
$lng['crondesc']['cron_autoresponder'] = 'E-Mail Autoresponder';
|
||||
$lng['crondesc']['cron_apsupdater'] = 'Aktualisieren der APS-Pakete';
|
||||
$lng['crondesc']['cron_traffic'] = 'Traffic-Berechnung';
|
||||
$lng['crondesc']['cron_ticketsreset'] = 'Zurücksetzen der Ticket-Zähler';
|
||||
$lng['crondesc']['cron_ticketarchive'] = 'Archivieren alter Tickets';
|
||||
@@ -1307,7 +1116,6 @@ $lng['ftp']['editpassdescription'] = 'Neues Passwort setzen oder leer für keine
|
||||
$lng['customer']['sendinfomail'] = 'Daten per E-Mail an mich senden';
|
||||
$lng['customer']['mysql_add']['infomail_subject'] = '[Froxlor] Neue Datenbank erstellt';
|
||||
$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}\nphpMyAdmin: {PMA_URI}\nVielen Dank, Ihr Administrator";
|
||||
$lng['error']['domains_cantdeletedomainwithapsinstances'] = 'Sie können keine Domain löschen, die noch von APS Paketen verwendet wird. Lö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übersicht angezeigt werden soll, hat nicht den erwarteten Wert. Sie können den Entwicklern die Schuld geben. Dies sollte nicht passieren!';
|
||||
@@ -1374,20 +1182,11 @@ $lng['serversettings']['customredirect_default']['description'] = 'Dieser Redire
|
||||
|
||||
// ADDED IN FROXLOR 0.9.7-svn2
|
||||
$lng['error']['pathmaynotcontaincolon'] = 'Der eingegebene Pfad sollte keinen Doppelpunkt (":") enthalten. Bitte geben Sie einen korrekten Wert für den Pfad ein.';
|
||||
$lng['tasks']['aps_task_install'] = 'Installation eines oder mehrerer APS-Pakete';
|
||||
$lng['tasks']['aps_task_remove'] = 'Deinstallation eines oder mehrerer APS-Pakete';
|
||||
$lng['tasks']['aps_task_reconfigure'] = 'Rekonfiguration eines oder mehrerer APS-Pakete';
|
||||
$lng['tasks']['aps_task_upgrade'] = 'Upgrade eines oder mehrerer APS-Pakete';
|
||||
$lng['tasks']['aps_task_sysupdate'] = 'Aktualisiere alle APS-Pakete';
|
||||
$lng['tasks']['aps_task_sysdownload'] = 'Herunterladen neuer APS-Pakete';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.9-svn1
|
||||
$lng['serversettings']['mail_also_with_mxservers'] = 'Erstelle mail-, imap-, pop3- and smtp-"A Record" auch wenn MX-Server angegeben sind';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.10-svn1
|
||||
$lng['aps']['nocontingent'] = 'Sie haben kein ausreichendes APS-Kontingent und können daher keine Pakete installieren.';
|
||||
$lng['aps']['packageneedsdb'] = 'Dieses Paket benötigt eine Datenbank, Sie haben allerdings keine mehr frei';
|
||||
$lng['aps']['cannoteditordeleteapsdb'] = 'APS-Datenbanken können hier nicht bearbeitet oder gelöscht werden';
|
||||
$lng['admin']['webserver_user'] = 'Benutzername Webserver';
|
||||
$lng['admin']['webserver_group'] = 'Gruppenname Webserver';
|
||||
|
||||
@@ -1396,7 +1195,7 @@ $lng['serversettings']['froxlordirectlyviahostname'] = 'Froxlor direkt über den
|
||||
|
||||
// ADDED IN FROXLOR 0.9.11-svn1
|
||||
$lng['serversettings']['panel_password_regex']['title'] = 'Regulärer Ausdruck für Passwörter';
|
||||
$lng['serversettings']['panel_password_regex']['description'] = 'Hier können Sie einen regulären Ausdruck für Passwort-Komplexität festlegen.<br />Leer = keine bestimmten Anforderungen<br />(<a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/En-password-regex-examples">RegEx Hilfe/Beispiele</a>)';
|
||||
$lng['serversettings']['panel_password_regex']['description'] = 'Hier können Sie einen regulären Ausdruck für Passwort-Komplexität festlegen.<br />Leer = keine bestimmten Anforderungen';
|
||||
$lng['error']['notrequiredpasswordcomplexity'] = 'Die vorgegebene Passwort-Komplexität wurde nicht erfüllt.<br />Bitte kontaktieren Sie Ihren Administrator, wenn Sie Fragen zur Komplexitäts-Vorgabe haben.';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.11-svn2
|
||||
@@ -1454,9 +1253,6 @@ $lng['admin']['templates']['forgotpwd'] = 'Benachrichtigungs-Mails bei Zurückse
|
||||
$lng['admin']['templates']['password_reset'] = 'Kunden-Benachrichtigung nach Zurücksetzen des Passworts';
|
||||
$lng['admin']['store_defaultindex'] = 'Erstelle Standard-Index-Datei im Kunden-Ordner';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.13-svn1
|
||||
$lng['customer']['autoresponder'] = 'Abwesenheitsnachrichten';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14
|
||||
$lng['serversettings']['mod_fcgid']['defaultini_ownvhost'] = 'Voreingestellte PHP-Konfiguration für den Froxlor-Vhost';
|
||||
$lng['serversettings']['awstats_icons']['title'] = 'Pfad zum AWstats-Icon-Ordner';
|
||||
@@ -1481,7 +1277,8 @@ $lng['serversettings']['phpreload_command']['description'] = 'Dieser wird benöt
|
||||
$lng['error']['intvaluetoolow'] = 'Die angegebene Zahl ist zu klein (Feld "%s")';
|
||||
$lng['error']['intvaluetoohigh'] = 'Die angegebene Zahl ist zu groß (Feld "%s")';
|
||||
$lng['admin']['phpfpm_settings'] = 'PHP-FPM';
|
||||
$lng['serversettings']['phpfpm'] = 'Aktiviere php-fpm';
|
||||
$lng['serversettings']['phpfpm']['title'] = 'Aktiviere PHP-FPM';
|
||||
$lng['serversettings']['phpfpm']['description'] = '<b>Dies benötigt eine spezielle Webserver-Konfiguration, siehe FPM-Handbuch für <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/HandbookApache2_phpfpm">Apache2</a> oder <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/HandbookNginx_phpfpm">nginx</a></b>';
|
||||
$lng['serversettings']['phpfpm_settings']['configdir'] = 'Pfad zu php-fpm-Konfigurationen';
|
||||
$lng['serversettings']['phpfpm_settings']['aliasconfigdir'] = 'Alias-Ordner der php-fpm Konfiguration';
|
||||
$lng['serversettings']['phpfpm_settings']['reload'] = 'Kommando zum Neustarten von php-fpm';
|
||||
@@ -1558,31 +1355,12 @@ $lng['traffic']['months']['total'] = 'Gesamt';
|
||||
$lng['traffic']['details'] = 'Details';
|
||||
$lng['menue']['traffic']['table'] = 'Übersicht';
|
||||
$lng['error']['admin_domain_emailsystemhostname'] = 'Der System - Hostname kann nicht als Kundendomain verwendet werden.';
|
||||
$lng['backup'] = 'Backup';
|
||||
$lng['backup_allowed'] = 'Backup erlaubt';
|
||||
$lng['extras']['backup_create'] = 'Backup erstellen?';
|
||||
$lng['extras']['backup_info'] = 'Das Backup wird täglich in einem FTP Verzeichnis abgelegt. Der FTP Username ist "%s_backup". Das FTP Passwort ist das gleiche wie bei ihrem Haupt FTP Account.';
|
||||
$lng['extras']['backup_info_sep'] = 'Es sind komprimierte Archive von Ihrem Webverzeichnis und Ihren Datenbanken enthalten.';
|
||||
$lng['extras']['backup_info_big'] = 'Es ist ein komprimiertes Archiv von Ihrem Webverzeichnis und Ihren Datenbanken enthalten.';
|
||||
$lng['extras']['backup_count_info'] = '<br /><br />Beachten Sie bitte, dass das Backup den verfügbaren Speicherplatz belastet!';
|
||||
$lng['serversettings']['backup_count'] = 'Soll die Größe des Backups vom verfügbaren Webspace-Limit abgezogen werden?';
|
||||
$lng['serversettings']['backup_enabled'] = 'Backup aktivieren?';
|
||||
$lng['serversettings']['backup_ftp_enabled'] = 'FTP Upload aktivieren?';
|
||||
$lng['serversettings']['backup_ftp_server'] = 'FTP Server:';
|
||||
$lng['serversettings']['backup_ftp_user'] = 'FTP Benutzer:';
|
||||
$lng['serversettings']['backup_ftp_pass'] = 'FTP Passwort:';
|
||||
$lng['serversettings']['backupdir']['description'] = 'Pfad des Backup-Verzeichnisses?';
|
||||
$lng['serversettings']['mysqldump_path']['description'] = 'Pfad zum mysqldump Programm:';
|
||||
$lng['serversettings']['backup_count'] = 'Soll die Größe des Backups vom verfügbaren Webspace abgezogen werden?';
|
||||
$lng['crondesc']['cron_backup'] = 'Backup Cronjob';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.21
|
||||
$lng['gender']['title'] = 'Geschlecht';
|
||||
$lng['gender']['male'] = 'Herr';
|
||||
$lng['gender']['female'] = 'Frau';
|
||||
$lng['gender']['undef'] = '';
|
||||
$lng['serversettings']['backup_ftp_passive_mode'] = 'Passiven Übertragungsmodus verwenden';
|
||||
$lng['serversettings']['backup_bigfile'] = 'Backup von Kundenverzeichnissen und Datenbanken in eine Datei speichern, statt zu splitten?';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.22-svn1
|
||||
$lng['diskquota'] = 'Quota';
|
||||
@@ -1722,3 +1500,7 @@ $lng['serversettings']['allow_error_report_customer']['description'] = 'Bitte be
|
||||
$lng['admin']['phpsettings']['enable_slowlog'] = 'FPM slowlog pro Domain aktivieren';
|
||||
$lng['admin']['phpsettings']['request_terminate_timeout'] = 'Request terminate-timeout';
|
||||
$lng['admin']['phpsettings']['request_slowlog_timeout'] = 'Request slowlog-timeout';
|
||||
$lng['admin']['templates']['SERVER_HOSTNAME'] = 'Wird mit dem System-Hostname (URL zu froxlor) ersetzt';
|
||||
$lng['admin']['templates']['SERVER_IP'] = 'Wird mit der standard System IP-Adresse ersetzt';
|
||||
$lng['admin']['templates']['SERVER_PORT'] = 'Wird mit dem standard Port ersetzt';
|
||||
$lng['admin']['templates']['DOMAINNAME'] = 'Wird mit der Standardsubdomain des Kunden ersetzt (kann leer sein, wenn keine erstellt werden soll)';
|
||||
|
||||
@@ -880,26 +880,8 @@ $lng['panel']['megabyte'] = 'MegaByte';
|
||||
$lng['panel']['not_supported'] = 'Non supportato in: ';
|
||||
$lng['emails']['quota_edit'] = 'Cambia limite E-Mail';
|
||||
$lng['error']['allocatetoomuchquota'] = 'Si è tentato di allocare %s MB Limite, ma non c\'è abbastanza spazio disponibile.';
|
||||
|
||||
// Autoresponder module
|
||||
|
||||
$lng['menue']['email']['autoresponder'] = 'Autorisponditore';
|
||||
$lng['autoresponder']['active'] = 'Attivo';
|
||||
$lng['autoresponder']['autoresponder_add'] = 'Aggiungi autorisponditore';
|
||||
$lng['autoresponder']['autoresponder_edit'] = 'Modifica autorisponditore';
|
||||
$lng['autoresponder']['autoresponder_new'] = 'Crea nuovo autorisponditore';
|
||||
$lng['autoresponder']['subject'] = 'Oggetto';
|
||||
$lng['autoresponder']['message'] = 'Messaggio';
|
||||
$lng['autoresponder']['account'] = 'Account';
|
||||
$lng['autoresponder']['sender'] = 'Mittente';
|
||||
$lng['question']['autoresponderdelete'] = 'Sei sicuro di voler cancellare l\'autorisponditore?';
|
||||
$lng['error']['noemailaccount'] = 'Ci possono essere due motivi per cui non è possibile creare un nuovo autorisponditore: Hai bisogno almeno di un account di posta elettronica per creare un nuovo autorisponditore. In secondo luogo può essere che tutti gli account abbiano già configurato un autorisponditore.';
|
||||
$lng['error']['missingfields'] = 'Non tutti i campi obbligatori sono stati compilati.';
|
||||
$lng['error']['accountnotexisting'] = 'L\'account di posta elettronica dato non esiste.';
|
||||
$lng['error']['autoresponderalreadyexists'] = 'C\'è già un autorisponditore configurato per questo account.';
|
||||
$lng['error']['invalidautoresponder'] = 'L\'account non è valido';
|
||||
$lng['serversettings']['autoresponder_active']['title'] = 'Usa il modulo autorisponditore';
|
||||
$lng['serversettings']['autoresponder_active']['description'] = 'Vuoi utilizzare il modulo autorisponditore?';
|
||||
$lng['admin']['security_settings'] = 'Opzioni di Sicurezza';
|
||||
$lng['admin']['know_what_youre_doing'] = 'Modifica solo, se sai quello che stai facendo!';
|
||||
$lng['admin']['show_version_login']['title'] = 'Mostra la versione di Froxlor quando si effettua l\'accesso';
|
||||
@@ -966,174 +948,6 @@ $lng['error']['index_file_extension'] = 'L\'estensione file del file index deve
|
||||
$lng['admin']['expert_settings'] = 'Impostazioni Avanzate!';
|
||||
$lng['admin']['mod_fcgid_starter']['title'] = 'Processi PHP per questo dominio (vuoto per lasciare il valore predefinito)';
|
||||
|
||||
//added with aps installer
|
||||
|
||||
$lng['admin']['aps'] = 'APS Installer';
|
||||
$lng['customer']['aps'] = 'APS Installer';
|
||||
$lng['aps']['scan'] = 'Cerca nuovi pacchetti';
|
||||
$lng['aps']['upload'] = 'Invia nuovi pacchetti';
|
||||
$lng['aps']['managepackages'] = 'Gestione Pacchetti';
|
||||
$lng['aps']['manageinstances'] = 'Gestione Istanze';
|
||||
$lng['aps']['overview'] = 'Panoramica pacchetto';
|
||||
$lng['aps']['status'] = 'I miei pacchetti';
|
||||
$lng['aps']['search'] = 'Ricerca pacchetti';
|
||||
$lng['aps']['upload_description'] = 'Seleziona il file zip del pacchetto di installazione APS per installarlo nel sistema.';
|
||||
$lng['aps']['search_description'] = 'Nome, Descrizione, Parola chiave, Versione';
|
||||
$lng['aps']['detail'] = 'Maggiori informazioni';
|
||||
$lng['aps']['install'] = 'Installa pacchetto';
|
||||
$lng['aps']['data'] = 'Data';
|
||||
$lng['aps']['version'] = 'Versione';
|
||||
$lng['aps']['homepage'] = 'Homepage';
|
||||
$lng['aps']['installed_size'] = 'Dimensioni dopo l\'Installazione';
|
||||
$lng['aps']['categories'] = 'Categorie';
|
||||
$lng['aps']['languages'] = 'Lingue';
|
||||
$lng['aps']['long_description'] = 'Descrizione dettagliata';
|
||||
$lng['aps']['configscript'] = 'Configuratione script';
|
||||
$lng['aps']['changelog'] = 'Changelog';
|
||||
$lng['aps']['license'] = 'Licenza';
|
||||
$lng['aps']['license_link'] = 'Link alla Licenza';
|
||||
$lng['aps']['screenshots'] = 'Screenshots';
|
||||
$lng['aps']['back'] = 'Ritorna alla pagina precedente';
|
||||
$lng['aps']['install_wizard'] = 'Installazione guidata...';
|
||||
$lng['aps']['wizard_error'] = 'Quanto digitato contiene dati non validi. Si prega di correggere per continuare l\'installazione.';
|
||||
$lng['aps']['basic_settings'] = 'Impostazioni di base';
|
||||
$lng['aps']['application_location'] = 'Luogo di installazione';
|
||||
$lng['aps']['application_location_description'] = 'Luogo in cui l\'applicazione verrà installata.';
|
||||
$lng['aps']['no_domains'] = 'Nessun dominio trovato';
|
||||
$lng['aps']['database_password'] = 'Password del database';
|
||||
$lng['aps']['database_password_description'] = 'Password che dovrebbe essere utilizzato per il nuovo database creato.';
|
||||
$lng['aps']['license_agreement'] = 'Accordo';
|
||||
$lng['aps']['cancel_install'] = 'Interrompi Installazione';
|
||||
$lng['aps']['notazipfile'] = 'Il file caricato non è un file zip';
|
||||
$lng['aps']['filetoobig'] = 'Il file è troppo grande.';
|
||||
$lng['aps']['filenotcomplete'] = 'Il file non è stato caricato completamente.';
|
||||
$lng['aps']['phperror'] = 'C\'è stato un errore interno a PHP. Il codice errore dell\'upload PHP è #';
|
||||
$lng['aps']['moveproblem'] = 'Lo script non è riuscito a spostare i file caricati nella cartella di destinazione. Si prega di assicurarsi che tutti i permessi siano impostati correttamente.';
|
||||
$lng['aps']['uploaderrors'] = '<strong>Errori per il file<em>%s</em></strong><br/><ul>%s</ul>';
|
||||
$lng['aps']['nospecialchars'] = 'I caratteri speciali non sono ammessi nella ricerca!';
|
||||
$lng['aps']['noitemsfound'] = 'Non sono stati trovati Pacchetti!';
|
||||
$lng['aps']['nopackagesinstalled'] = 'Non hai ancora installato alcun pacchetto che può essere visualizzato.';
|
||||
$lng['aps']['instance_install'] = 'Installazioen di un pacchetto in sospeso';
|
||||
$lng['aps']['instance_task_active'] = 'Installazione in esecuzione in questo momento';
|
||||
$lng['aps']['instance_success'] = 'Pacchetto installato correttamente';
|
||||
$lng['aps']['instance_error'] = 'Pacchetto non installato - si è verificato qualche errore nell\'installazione';
|
||||
$lng['aps']['instance_uninstall'] = 'Pacchetto in attesa di disinstallazione';
|
||||
$lng['aps']['unknown_status'] = 'Errore - Valore sconosciuto';
|
||||
$lng['aps']['currentstatus'] = 'Stato attuale';
|
||||
$lng['aps']['activetasks'] = 'Lavori attuali';
|
||||
$lng['aps']['task_install'] = 'Installationi in attesa';
|
||||
$lng['aps']['task_remove'] = 'Disinstallationi in attesa';
|
||||
$lng['aps']['task_reconfigure'] = 'Riconfigurazioni in attesa';
|
||||
$lng['aps']['task_upgrade'] = 'Aggiornamenti in attesa';
|
||||
$lng['aps']['no_task'] = 'Nessun lavoro in attesa';
|
||||
$lng['aps']['applicationlinks'] = 'Collegamenti applicazioni';
|
||||
$lng['aps']['mainsite'] = 'Sito principale';
|
||||
$lng['aps']['uninstall'] = 'Disinstallare Pacchetto';
|
||||
$lng['aps']['reconfigure'] = 'Modifica impostazioni';
|
||||
$lng['aps']['erroronnewinstance'] = '<strong>Questo pacchetto non può essere installato.</strong><br/><br/>Si prega di tornare alla pagina precedente dei pacchetti e avviare una nuova installazione';
|
||||
$lng['aps']['successonnewinstance'] = '<strong><em>%s</em> verrò installato ora.</strong><br/><br/>Torna indietro in "Mie Pacchetti" e attendere che l\'installazione sia conclusa. Questo può richiedere del tempo.';
|
||||
$lng['aps']['php_misc_handler'] = 'PHP - Varie - Il Parser PHP non supporta estensioni di file diverse da .php';
|
||||
$lng['aps']['php_misc_directoryhandler'] = 'PHP - Varie - Non c\'è supporto per le cartelle che disabilitano gli Handlers PHP.';
|
||||
$lng['aps']['asp_net'] = 'ASP.NET - Pacchetto non supportato.';
|
||||
$lng['aps']['cgi'] = 'CGI - Pacchetto non support.';
|
||||
$lng['aps']['php_extension'] = 'PHP - Estensione "%s" mancante.';
|
||||
$lng['aps']['php_function'] = 'PHP - Funzione "%s" mancante.';
|
||||
$lng['aps']['php_configuration'] = 'PHP - COnfigurazione - Le impostazioni correnti "%s" non sono supportate dal Pacchetto.';
|
||||
$lng['aps']['php_configuration_post_max_size'] = 'PHP - Configurazione - "post_max_size" valore troppo basso.';
|
||||
$lng['aps']['php_configuration_memory_limit'] = 'PHP - Configurazione - "memory_limit" valore troppo basso.';
|
||||
$lng['aps']['php_configuration_max_execution_time'] = 'PHP - Configuration - "max_execution_time" valore troppo basso.';
|
||||
$lng['aps']['php_general_old'] = 'PHP - Generale - la versione di PHP è troppo vecchia.';
|
||||
$lng['aps']['php_general_new'] = 'PHP - Generale - la versione di PHP è troppo recente.';
|
||||
$lng['aps']['db_mysql_support'] = 'Database - Il Pacchetto necessita di un altro tipo di database oltre a MySQL.';
|
||||
$lng['aps']['db_mysql_version'] = 'Database - Il server MySQL è troppo vecchio.';
|
||||
$lng['aps']['webserver_module'] = 'Webserver - Modulo "%s" mancante.';
|
||||
$lng['aps']['webserver_fcgid'] = 'Webserver - Questo Pacchetto richiede moduli aggiuntivi del Webserver. Nell\'ambiante FastCGI/mod_fcgid la funzione "apache_get_modules" non esiste. Il Pacchetto non può essere installato perchè il programma di installazione APS non è in grado di verificare se questi moduli sono installati.';
|
||||
$lng['aps']['webserver_htaccess'] = 'Webserver - Questo Pacchetto richiede che i file .htaccess vengano analizzati dal Webserver. Il pacchetto non può essere installato perch¸ il programma di installazione APS non è in grado di determinare se questo è attivato.';
|
||||
$lng['aps']['misc_configscript'] = 'Varie - Il linguaggio dello script di configurazione non è supportato.';
|
||||
$lng['aps']['misc_charset'] = 'Varie - Nella versione attuale dell\'installatore non è possibile convalidare i campi del modulo dal wizard su un set di caratteri specifici.';
|
||||
$lng['aps']['misc_version_already_installed'] = 'La stessa versione del pacchetto è già installata.';
|
||||
$lng['aps']['misc_only_newer_versions'] = 'Per motivi di sicurezza solo le versioni più recenti dei Pacchetti possono essere installate se sono già presenti nel sistema';
|
||||
$lng['aps']['erroronscan'] = '<strong>Errori da <em>%s</em></strong><ul>%s</ul>';
|
||||
$lng['aps']['invalidzipfile'] = '<strong>Errori per <em>%s</em></strong><br/><ul><li>Questo non è un file zip APS valido!</li></ul>';
|
||||
$lng['aps']['successpackageupdate'] = '<strong><em>%s</em> installato con successo come Pacchetto di aggiornamento</strong>';
|
||||
$lng['aps']['successpackageinstall'] = '<strong><em>%s</em> installato con successo come nuovo Pacchetto</strong>';
|
||||
$lng['aps']['class_zip_missing'] = 'SimpleXML Class, la funzione exec o la funzione ZIP non sono presenti o non sono abilitate! Per ulteriori informazioni su questo problema guarda il manuale di questo module.';
|
||||
$lng['aps']['dir_permissions'] = 'Il processo PHP/Webserver deve essere in grado di scrivere nelle cartelle {$path}temp/ e {$path}packages/';
|
||||
$lng['aps']['initerror'] = '<strong>Ci sono alcuni problemi con questo modulo:</strong><ul>%s</ul>Risolvi questi problemi, altrimenti il modulo non può essere utilizzato!';
|
||||
$lng['aps']['iderror'] = 'Id specificato errato!';
|
||||
$lng['aps']['nopacketsforinstallation'] = 'Non ci sono pacchetti da installare.';
|
||||
$lng['aps']['nopackagestoinstall'] = 'Non ci sono pacchetti da visualizzare o installare.';
|
||||
$lng['aps']['nodomains'] = 'Selezionare un dominio dalla lista. Se non ne è presente nessuno, il pacchetto non può essere installato!';
|
||||
$lng['aps']['wrongpath'] = 'Questo percorso contiene caratteri non validi oppure c\'è già installata un\'altra applicazione.';
|
||||
$lng['aps']['dbpassword'] = 'Specificare una password con una lunghezza minima di 8 caratteri.';
|
||||
$lng['aps']['error_text'] = 'Specificare un testo senza caratteri speciali.';
|
||||
$lng['aps']['error_email'] = 'Specificare un indirizzo e-mail valido.';
|
||||
$lng['aps']['error_domain'] = 'Specificare un URL valido come http://www.esempio.com/';
|
||||
$lng['aps']['error_integer'] = 'Specificare un valore numerico (formato Intero) es. <em>5</em> o <em>7</em>.';
|
||||
$lng['aps']['error_float'] = 'Specificare un valore numerico (formato Float) es. <em>5,2432</em> o <em>7,5346</em>.';
|
||||
$lng['aps']['error_password'] = 'Specificare una password.';
|
||||
$lng['aps']['error_license'] = 'Sì, ho letto la licenza e saranno rispettate le condizioni.';
|
||||
$lng['aps']['error_licensenoaccept'] = 'È necessario accettare la licenza per installare questa applicazione.';
|
||||
$lng['aps']['stopinstall'] = 'Interrompi Installazione';
|
||||
$lng['aps']['installstopped'] = 'L\'installazione di questo pacchetto è stata interrotta con successo.';
|
||||
$lng['aps']['installstoperror'] = 'L\'installazione non può essere più interrotta perch¸ l\'installazione è già iniziata. Se si desidera disinstallare il Pacchetto, aspettare che l\'installazione sia finita e dopo andare in "I miei Pacchetti" per avviare la disinstallazione.';
|
||||
$lng['aps']['waitfortask'] = 'Non ci sono azioni da selezionare. Attendere fino a quando tutti i lavori non sono finiti.';
|
||||
$lng['aps']['removetaskexisting'] = '<strong>Esiste già un lavoro di Disinstallazione.</strong><br/><br/>Si prega di tornare a "I miei Pacchetti" e attendere che la disinstallazione sia terminata.';
|
||||
$lng['aps']['packagewillberemoved'] = '<strong>Il pacchetto verrà disinstallato ora.</strong><br/><br/>Si prega di tornare a "I miei Pacchetti" e attendere che la disinstallazione sia terminata.';
|
||||
$lng['question']['reallywanttoremove'] = '<strong>Sei sicuro di voler disinstallare questo pacchetto?</strong><br/><br/>Tutti i contenuti del database e i file verranno cancellati. Assicurarsi di effettuare un backup manuale dei file necessari per ogni utilizzo successivo!<br/><br/>';
|
||||
$lng['aps']['searchoneresult'] = '%s Pacchetto trovato';
|
||||
$lng['aps']['searchmultiresult'] = '%s Pacchetti trovati';
|
||||
$lng['question']['reallywanttostop'] = 'Sei sicuro di voler interrompere l\'installazione di questo pacchetto?<br/><br/>';
|
||||
$lng['aps']['packagenameandversion'] = 'Nome Pacchetto & Versione';
|
||||
$lng['aps']['package_locked'] = 'Bloccato';
|
||||
$lng['aps']['package_enabled'] = 'Abilitato';
|
||||
$lng['aps']['lock'] = 'Blocca';
|
||||
$lng['aps']['unlock'] = 'Abilita';
|
||||
$lng['aps']['remove'] = 'Rimuovi';
|
||||
$lng['aps']['allpackages'] = 'Tutti i Pacchetti';
|
||||
$lng['question']['reallyremovepackages'] = '<strong>Sei sicuro di voler cancellare questi pacchetti?</strong><br/><br/>I Pacchetti con dipendenze possono essere rimossi solo se vengono rimosse le rispettive Istanze!<br/><br/>';
|
||||
$lng['aps']['nopackagesinsystem'] = 'Non c\erano installati pacchetti nel sistema che potevano essere gestiti.';
|
||||
$lng['aps']['packagenameandstatus'] = 'Nome Pacchetto & Stato';
|
||||
$lng['aps']['activate_aps']['title'] = 'Abilita l\'installatore APS';
|
||||
$lng['aps']['activate_aps']['description'] = 'Qui l\'installer APS può essere abilitato e disabilitato globalmente.';
|
||||
$lng['aps']['packages_per_page']['title'] = 'Pacchetti per pagina';
|
||||
$lng['aps']['packages_per_page']['description'] = 'Quanti pacchetti devono essere visualizzati per pagina ai clienti?';
|
||||
$lng['aps']['upload_fields']['title'] = 'Campi di caricamento per pagina';
|
||||
$lng['aps']['upload_fields']['description'] = 'Quanti campi di caricamento devono essere visualizzati nella pagina per installare nuovi pacchetti nel sistema?';
|
||||
$lng['aps']['exceptions']['title'] = 'Eccezioni per la validazione dei pacchetti';
|
||||
$lng['aps']['exceptions']['description'] = 'Alcuni pacchetti hanno bisogno di particolari parametri di configurazione o moduli. L\'installatore non riesce sempre a determinare se queste opzioni/estensioni siano disponibili. Per questo motivo è ora possibile definire delle eccezioni per far sì che i pacchetti possano essere installati nel sistema. Si possono solo selezionare opzioni che corrispondono alla reale configuazione dell\'installatore. Per ulteriori informazioni su questo problema leggere il manuale di questo modulo.';
|
||||
$lng['aps']['settings_php_extensions'] = 'Estensioni PHP';
|
||||
$lng['aps']['settings_php_configuration'] = 'Configurazione PHP';
|
||||
$lng['aps']['settings_webserver_modules'] = 'Moduli Webserver';
|
||||
$lng['aps']['settings_webserver_misc'] = 'Varie Webserver';
|
||||
$lng['aps']['specialoptions'] = 'Opzioni speciali';
|
||||
$lng['aps']['removeunused'] = 'Rimuovi i pacchetti non utilizzati';
|
||||
$lng['aps']['enablenewest'] = 'Abilita le nuove versioni dei pacchetti e blocca le altre';
|
||||
$lng['aps']['installations'] = 'Installazioni';
|
||||
$lng['aps']['statistics'] = 'Statistiche';
|
||||
$lng['aps']['numerofpackagesinstalled'] = '%s Pacchetti installati<br/>';
|
||||
$lng['aps']['numerofpackagesenabled'] = '%s Pacchetti abilitati<br/>';
|
||||
$lng['aps']['numerofpackageslocked'] = '%s Pacchetti bloccati<br/>';
|
||||
$lng['aps']['numerofinstances'] = '%s Instanza installate<br/>';
|
||||
$lng['question']['reallydoaction'] = '<strong>Sei sicuro di voler eseguire le azioni selezionate?</strong><br/><br/>I dati cancellati durante l\'operazione non possono essere ripristinati in seguito.<br/><br/>';
|
||||
$lng['aps']['linktolicense'] = 'Collegamento alla licenza';
|
||||
$lng['aps']['initerror_customer'] = 'Attualmente c\'è un problema con questa estensione di Froxlor. Contattare l\'amministratore per ulteriori informazioni.';
|
||||
$lng['aps']['numerofinstances'] = '%s Installazioni eseguite<br/>';
|
||||
$lng['aps']['numerofinstancessuccess'] = '%s Installazioni completate<br/>';
|
||||
$lng['aps']['numerofinstanceserror'] = '%s Installazioni fallite<br/>';
|
||||
$lng['aps']['numerofinstancesaction'] = '%s Installazioni/Disinstallazioni pianificate';
|
||||
$lng['aps']['downloadallpackages'] = 'Scarica tutti i pacchetti dal server di distribuzione';
|
||||
$lng['aps']['updateallpackages'] = 'Aggiorna tutti i pacchetti dal server di distribuzione';
|
||||
$lng['aps']['downloadtaskexists'] = 'Esiste già un processo per lo scaricamento di tutti i pacchetti. Si prega di attendere la conclusione del lavoro.';
|
||||
$lng['aps']['downloadtaskinserted'] = 'Il processo per lo scaricamento di tutti i pacchetti è stato creato. Questo può richiedere diversi minuti.';
|
||||
$lng['aps']['updatetaskexists'] = 'Esiste già un processo per l\'aggiornamento di tutti i pacchetti. Si prega di attendere la conclusione del lavoro.';
|
||||
$lng['aps']['updatetaskinserted'] = 'Il processo per l\'aggiornamento di tutti i pacchetti è stato creato. Questo può richiedere diversi minuti.';
|
||||
$lng['aps']['canmanagepackages'] = 'Può gestire paccheti APS';
|
||||
$lng['aps']['numberofapspackages'] = 'Quantità di installazioni APS';
|
||||
$lng['aps']['allpackagesused'] = '<strong>Errore</strong><br/><br/>È già stato raggiunto il numero massimo di applicazioni APS installabili.';
|
||||
$lng['aps']['noinstancesexisting'] = 'Attualmente non ci sono istanze che possono essere gestite. Ci deve essere installata almeno una applicazione da un cliente.';
|
||||
$lng['aps']['lightywarning'] = 'Attenzione';
|
||||
$lng['aps']['lightywarningdescription'] = 'Si sta utilizzando lighttpd come webserver con Froxlor. Il modulo APS è stato scritto principalmente per Apache, per cui è possibile che alcune caratteristiche non funzionino con lighttpd. Si prega di ricordarsi di questa cosa quando si usa il modulo APS. Se hai trovato o visto dei problemi con il modulo APS e lighttpd segnalalo agli sviluppatori che così possono correggerli entro la prossima versione di Froxlor.';
|
||||
$lng['error']['customerdoesntexist'] = 'Il cliente che si è selezionato non esiste.';
|
||||
$lng['error']['admindoesntexist'] = 'L\'amministratore che si è selezionato non esiste.';
|
||||
|
||||
@@ -1161,7 +975,6 @@ $lng['serversettings']['mod_fcgid']['maxrequests']['description'] = 'Quante rich
|
||||
// fix bug #1124
|
||||
$lng['admin']['webserver'] = 'Webserver';
|
||||
$lng['error']['admin_domain_emailsystemhostname'] = 'L\'hostname del server non può essere utilizzato come dominio email.';
|
||||
$lng['aps']['license_link'] = 'Collegamento alla licenza';
|
||||
|
||||
// ADDED IN 1.4.2.1-1
|
||||
|
||||
@@ -1195,9 +1008,6 @@ $lng['panel']['toomanydirs'] = 'Troppe sottocartelle. Rifare tornando indietro n
|
||||
$lng['panel']['abort'] = 'Termina';
|
||||
$lng['serversettings']['cron']['debug']['title'] = 'Debug Cronscript';
|
||||
$lng['serversettings']['cron']['debug']['description'] = 'Attiva per mantenere il file lock dopo l\'avvio di cron, solo per debug<br /><b>Attenzione:</b>Mantenendo il file di lock al successivo avvio cron potrebbe non funzionare correttamente';
|
||||
$lng['autoresponder']['date_from'] = 'Data di partenza';
|
||||
$lng['autoresponder']['date_until'] = 'Data di fine';
|
||||
$lng['autoresponder']['startenddate'] = 'Data di Inizio/Fine';
|
||||
$lng['panel']['not_activated'] = 'non attivato';
|
||||
$lng['panel']['off'] = 'off';
|
||||
$lng['update']['updateinprogress_onlyadmincanlogin'] = 'Una nuova versione di Froxlor è stata installata ma non ancora impostata.<br />Solo l\'amministratore può accedere e completare l\'aggiornamento.';
|
||||
@@ -1270,9 +1080,6 @@ $lng['crondesc']['cron_unknown_desc'] = 'nessuna descrizione fornita';
|
||||
$lng['admin']['cron']['add'] = 'Aggiungi cronjob';
|
||||
$lng['crondesc']['cron_tasks'] = 'generazione del file di configurazione';
|
||||
$lng['crondesc']['cron_legacy'] = 'legacy (vecchi) cronjob';
|
||||
$lng['crondesc']['cron_apsinstaller'] = 'Installatore APS';
|
||||
$lng['crondesc']['cron_autoresponder'] = 'autorisponditore e-mail';
|
||||
$lng['crondesc']['cron_apsupdater'] = 'aggiornamento pacchetti APS';
|
||||
$lng['crondesc']['cron_traffic'] = 'calcolo del traffico';
|
||||
$lng['crondesc']['cron_ticketsreset'] = 'reset dei contatori dei ticket';
|
||||
$lng['crondesc']['cron_ticketarchive'] = 'archiviazione vecchi ticket';
|
||||
@@ -1298,7 +1105,6 @@ $lng['ftp']['editpassdescription'] = 'Imposta una nuova password o lascia vuoto
|
||||
$lng['customer']['sendinfomail'] = 'Inviami i dati via email';
|
||||
$lng['customer']['mysql_add']['infomail_subject'] = '[Froxlor] Nuovo database creato';
|
||||
$lng['customer']['mysql_add']['infomail_body']['main'] = "Hello {CUST_NAME},\n\nhai appena aggiunto un nuovo database. Ecco le informazioni inserite:\n\nNome database: {DB_NAME}\nPassword: {DB_PASS}\nDescrizione: {DB_DESC}\nDB-Hostname: {DB_SRV}\n{PMA_URI}\nCordiali Saluti, Team Froxlor";
|
||||
$lng['error']['domains_cantdeletedomainwithapsinstances'] = 'Non è possibile eliminare un dominio che è utilizzato da un pacchetto installato da APS. È necessario disinstallare prima il pacchetto APS.';
|
||||
$lng['serversettings']['awstats_path'] = 'Percorso a AWStats \'awstats_buildstaticpages.pl\'';
|
||||
$lng['serversettings']['awstats_conf'] = 'Cartella della configurazione di AWStats';
|
||||
$lng['error']['overviewsettingoptionisnotavalidfield'] = 'Woops, un campo che dovrebbe essere mostrato come opzione in Impostazioni-Principale non è un tipo esclusivo. Si possono rimproverare gli sviluppatori per questo. Questo non deve accadere!';
|
||||
@@ -1347,12 +1153,6 @@ $lng['serversettings']['customredirect_default']['description'] = 'Imposta il co
|
||||
|
||||
// ADDED IN FROXLOR 0.9.7-svn2
|
||||
$lng['error']['pathmaynotcontaincolon'] = 'Il percorso che hai inserito non dovrebbe contenere i due punti (:). Inserisci un percorso valido.';
|
||||
$lng['tasks']['aps_task_install'] = 'Installazione di uno o più pacchetti APS';
|
||||
$lng['tasks']['aps_task_remove'] = 'Rimozione di uno o più pacchetti APS';
|
||||
$lng['tasks']['aps_task_reconfigure'] = 'Riconfigurazioni di uno o più pacchetti APS';
|
||||
$lng['tasks']['aps_task_upgrade'] = 'Aggiornamento di uno o più pacchetti APS';
|
||||
$lng['tasks']['aps_task_sysupdate'] = 'Aggiornare tutti i pacchetti APS';
|
||||
$lng['tasks']['aps_task_sysdownload'] = 'Scaricamento dei nuovi pacchetti APS';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.7-svn3
|
||||
|
||||
@@ -1371,9 +1171,6 @@ $lng['error']['exception'] = '%s';
|
||||
$lng['serversettings']['mail_also_with_mxservers'] = 'Crea mail-, imap-, pop3- and smtp-"A record" anche con MX-Servers impostato';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.10-svn1
|
||||
$lng['aps']['nocontingent'] = 'Il tuo APS contingente è insufficiente. Non è possibile installare qualsiasi pacchetto.';
|
||||
$lng['aps']['packageneedsdb'] = 'Questo pacchetto ha bisogno di un database, ma il tuo potenziale è esaurito';
|
||||
$lng['aps']['cannoteditordeleteapsdb'] = 'I database APS qui non possono essere modificati o rimossi';
|
||||
$lng['admin']['webserver_user'] = 'Utente Webserver';
|
||||
$lng['admin']['webserver_group'] = 'Gruppo Webserver';
|
||||
|
||||
@@ -1382,7 +1179,7 @@ $lng['serversettings']['froxlordirectlyviahostname'] = 'Accedi direttamente a Fr
|
||||
|
||||
// ADDED IN FROXLOR 0.9.11-svn1
|
||||
$lng['serversettings']['panel_password_regex']['title'] = 'Espressione per le password';
|
||||
$lng['serversettings']['panel_password_regex']['description'] = 'Qui è possibile impostare una espressione regolare per la complessità delle password.<br />Vuoto = nessun requisito specificato<br />(<a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/En-password-regex-examples">aiuto/esempi regex</a>)';
|
||||
$lng['serversettings']['panel_password_regex']['description'] = 'Qui è possibile impostare una espressione regolare per la complessità delle password.<br />Vuoto = nessun requisito specificato';
|
||||
$lng['error']['notrequiredpasswordcomplexity'] = 'La complessita della password specificata non è soddisfacente.<br />Si prega di contattare l\'amministratore se avete domande sulla complessità della password';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.11-svn2
|
||||
@@ -1396,7 +1193,7 @@ $lng['serversettings']['perl_path']['description'] = 'Rilevante solo se si utili
|
||||
// ADDED IN FROXLOR 0.9.12-svn1
|
||||
$lng['admin']['fcgid_settings'] = 'FCGID';
|
||||
$lng['serversettings']['mod_fcgid_ownvhost']['title'] = 'Abilita FCGID per i vhost Froxlor';
|
||||
$lng['serversettings']['mod_fcgid_ownvhost']['description'] = 'Se attivato, Froxlor verrà eseguito con un utente locale<br /><strong>ATTENZIONE:</strong>Questo richiede una configurazione manuale, vedi <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/FCGID_-_handbook">FCGID - handbook</a>';
|
||||
$lng['serversettings']['mod_fcgid_ownvhost']['description'] = 'Se attivato, Froxlor verrà eseguito con un utente locale<br /><strong>ATTENZIONE:</strong>Questo richiede una configurazione manuale, vedi <a target="blank" href="http://redmine.froxlor.org/projects/froxlor/wiki/HandbookApache2_fcgid">FCGID - handbook</a>';
|
||||
$lng['admin']['mod_fcgid_user'] = 'Utente locale per FCGID (Froxlor vhost)';
|
||||
$lng['admin']['mod_fcgid_group'] = 'Gruppo locale per FCGID (Froxlor vhost)';
|
||||
|
||||
@@ -1439,9 +1236,6 @@ $lng['extras']['directoryprotection_edit'] = 'modifica la protezione della direc
|
||||
$lng['admin']['templates']['forgotpwd'] = 'Mail di notifica per il reset della password';
|
||||
$lng['admin']['templates']['password_reset'] = 'Notifica al cliente per il reset della password';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.13-svn1
|
||||
$lng['customer']['autoresponder'] = 'Risponditore Automatico';
|
||||
|
||||
// ADDED IN FROXLOR 0.9.14-svn1
|
||||
$lng['serversettings']['mod_fcgid']['defaultini_ownvhost'] = 'Configurazione di Default di PHP per Froxlor-vhost';
|
||||
|
||||
@@ -1550,16 +1344,3 @@ $lng['traffic']['months']['total'] = 'Totale';
|
||||
$lng['traffic']['details'] = 'Dettagli';
|
||||
$lng['menue']['traffic']['table'] = 'Traffico';
|
||||
$lng['error']['admin_domain_emailsystemhostname'] = 'Spiacente, l\'hostname di sistema non può essere usato come dominio di un cliente';
|
||||
$lng['backup_allowed'] = 'Backup permesso';
|
||||
$lng['extras']['backup_create'] = 'Creare il Backup?';
|
||||
$lng['extras']['backup_info'] = 'Il Backup sarà eseguito una volta al giorno nella cartella ...';
|
||||
$lng['extras']['backup_info_sep'] = 'Contiene gli archivi compressi dei file HTML Files e dei Database.';
|
||||
$lng['extras']['backup_info_big'] = 'Contiene un archivio compresso dei file HTML Files e dei Database.';
|
||||
$lng['extras']['backup_count_info'] = '<br /><br />Si tenga in considerazione che il backup utilizza lo spazio web!';
|
||||
$lng['serversettings']['backup_count'] = 'Viene sottratta la dimensione del backup dalla spazio web disponibile?';
|
||||
$lng['serversettings']['backup_enabled'] = 'Attivo il Backup?';
|
||||
$lng['serversettings']['backupdir']['description'] = 'Qual\'è il nome della cartella di backup dell\'utente?';
|
||||
$lng['serversettings']['mysqldump_path']['description'] = 'Percorso del comando mysqldump?';
|
||||
$lng['serversettings']['backup_bigfile'] = 'Salvare il backup in un unico grande file al posto di salvare separatamente i file html e i database?';
|
||||
$lng['serversettings']['backup_ftp_enabled'] = 'Attiva o l\'upload FTP?';
|
||||
$lng['serversettings']['backup_ftp_user'] = 'Utente FTP:';
|
||||
|
||||
@@ -547,17 +547,6 @@ $lng['customer']['title'] = 'Tytuł';
|
||||
$lng['customer']['country'] = 'Kraj';
|
||||
|
||||
|
||||
$lng['menue']['email']['autoresponder'] = 'Autoresponder';
|
||||
$lng['autoresponder']['active'] = 'Aktywny';
|
||||
$lng['autoresponder']['autoresponder_add'] = 'Dodaj autoresponder';
|
||||
$lng['autoresponder']['autoresponder_edit'] = 'Edytuj autoresponder';
|
||||
$lng['autoresponder']['autoresponder_new'] = 'Utwórz nowy autoresponder';
|
||||
$lng['autoresponder']['subject'] = 'Temat';
|
||||
$lng['autoresponder']['message'] = 'Wiadomość';
|
||||
$lng['autoresponder']['account'] = 'Konto';
|
||||
$lng['autoresponder']['sender'] = 'Nadawca';
|
||||
$lng['question']['autoresponderdelete'] = 'Czy napewno chcesz skasować autoresponder?';
|
||||
$lng['serversettings']['autoresponder_active']['title'] = 'Użyj modułu autorespondera';
|
||||
$lng['admin']['know_what_youre_doing'] = 'Zmień TYLKO jeśli wiesz co robisz!';
|
||||
$lng['admin']['show_version_login']['title'] = 'Pokazuj wersję Froxlora przy logowaniu';
|
||||
$lng['admin']['show_version_login']['description'] = 'Pokazuj wersję Froxlora w stopce struno logowania';
|
||||
@@ -592,79 +581,6 @@ $lng['error']['filecontentnotset'] = 'Plik nie może być pusty!';
|
||||
$lng['admin']['expert_settings'] = 'Ustawienia Experta!';
|
||||
$lng['admin']['mod_fcgid_starter']['title'] = 'Procesów PHO na tą Domenę (pozostaw puste dla wartości domyślej)';
|
||||
|
||||
//added with aps installer
|
||||
|
||||
$lng['admin']['aps'] = 'Instalator aplikacji';
|
||||
$lng['customer']['aps'] = 'Instalator aplikacji';
|
||||
$lng['aps']['scan'] = 'Szukaj aktualizacji';
|
||||
$lng['aps']['upload'] = 'Upload nowych paczek';
|
||||
$lng['aps']['managepackages'] = 'Zarządzaj paczkami';
|
||||
$lng['aps']['manageinstances'] = 'Zarządzaj Instalacjami';
|
||||
$lng['aps']['overview'] = 'Przegląd paczek';
|
||||
$lng['aps']['status'] = 'Moje paczki';
|
||||
$lng['aps']['search'] = 'Szukaj paczki';
|
||||
$lng['aps']['search_description'] = 'Nazwa, Opis, Słowa kluczowe, Wersja';
|
||||
$lng['aps']['detail'] = 'Więcej informacji';
|
||||
$lng['aps']['install'] = 'Instaluj paczkę';
|
||||
$lng['aps']['data'] = 'Dane';
|
||||
$lng['aps']['version'] = 'Wersja';
|
||||
$lng['aps']['homepage'] = 'Strona domowa';
|
||||
$lng['aps']['installed_size'] = 'Rozmiar po instalacji';
|
||||
$lng['aps']['categories'] = 'Kategorie';
|
||||
$lng['aps']['languages'] = 'Języki';
|
||||
$lng['aps']['long_description'] = 'Długi opis';
|
||||
$lng['aps']['configscript'] = 'Skrypt konfiguracyjny';
|
||||
$lng['aps']['changelog'] = 'Hostoria zmian';
|
||||
$lng['aps']['license'] = 'Licencja';
|
||||
$lng['aps']['license_link'] = 'Link do licencji';
|
||||
$lng['aps']['screenshots'] = 'Zrzuty ekranowe';
|
||||
$lng['aps']['back'] = 'Powrót do listy';
|
||||
$lng['aps']['basic_settings'] = 'Proste ustawienia';
|
||||
$lng['aps']['application_location'] = 'Lokalizacji instalacji';
|
||||
$lng['aps']['application_location_description'] = 'Lokalizacja, gdzie ma być przeprowadzona instalacja.';
|
||||
$lng['aps']['no_domains'] = 'Nie znaleziono domen';
|
||||
$lng['aps']['database_password'] = 'Hasło bazy danych';
|
||||
$lng['aps']['cancel_install'] = 'Przerwij instalację';
|
||||
$lng['aps']['notazipfile'] = 'Uploadowany plik nie jest plikiem typu ZIP.';
|
||||
$lng['aps']['filetoobig'] = 'Plik jest za duży.';
|
||||
$lng['aps']['filenotcomplete'] = 'Plik nie został załadowany w całońci.';
|
||||
$lng['aps']['noitemsfound'] = 'Nie znaleziono paczek!';
|
||||
$lng['aps']['instance_install'] = 'Instalacja Paczki w toku';
|
||||
$lng['aps']['instance_task_active'] = 'Instalacja właśnie jest realizowana';
|
||||
$lng['aps']['instance_success'] = 'Paczka jest zainstalowana/Instalacja przebiegła pomyślnie';
|
||||
$lng['aps']['instance_error'] = 'Paczka nie została zainstalowana - Wystąpiły błędy podczas instalacji';
|
||||
$lng['aps']['instance_uninstall'] = 'Deinstalacja w toku';
|
||||
$lng['aps']['unknown_status'] = 'Błąd o nieznanej wartości';
|
||||
$lng['aps']['currentstatus'] = 'Obecny status';
|
||||
$lng['aps']['activetasks'] = 'Obecne zadanie';
|
||||
$lng['aps']['task_install'] = 'Instalacja w toku';
|
||||
$lng['aps']['task_remove'] = 'Deinstalacja w toku';
|
||||
$lng['aps']['task_reconfigure'] = 'Rekonfiguracja w toku';
|
||||
$lng['aps']['task_upgrade'] = 'Aktualizacja w toku';
|
||||
$lng['aps']['no_task'] = 'Brak zaplanowanych zadań';
|
||||
$lng['aps']['applicationlinks'] = 'Linki aplikacji';
|
||||
$lng['aps']['mainsite'] = 'Strona główna aplikacji';
|
||||
$lng['aps']['uninstall'] = 'Odinstaluj paczkę';
|
||||
$lng['aps']['reconfigure'] = 'Zmiana ustawień';
|
||||
$lng['aps']['successonnewinstance'] = '<strong><em>%s</em> zostanie zainstalowany.</strong><br/><br/>Wróć do zakładki "Moje paczki" i poczekaj aż instalator oprogramowania skończy instalację. Może to chwilę zająć.';
|
||||
$lng['aps']['asp_net'] = 'ASP.NET - Paczka nie jest wspierana.';
|
||||
$lng['aps']['cgi'] = 'CGI - Paczka nie jest wspierana.';
|
||||
$lng['aps']['php_extension'] = 'PHP - Brakujący moduł "%s".';
|
||||
$lng['aps']['php_function'] = 'PHP - Brakująca funkcja "%s".';
|
||||
$lng['aps']['php_configuration'] = 'PHP - Configuracja - Current "%s" setting not supported by Package.';
|
||||
$lng['aps']['php_configuration_post_max_size'] = 'PHP - Configuracja - "post_max_size" ma za małą wartość.';
|
||||
$lng['aps']['php_configuration_memory_limit'] = 'PHP - Configuracja - "memory_limit" ma za małą wartość.';
|
||||
$lng['aps']['php_configuration_max_execution_time'] = 'PHP - Configuracja - "max_execution_time" ma za małą wartość.';
|
||||
$lng['aps']['php_general_old'] = 'PHP - Ogólne - Wersja PHP jest za stara.';
|
||||
$lng['aps']['php_general_new'] = 'PHP - Ogólne - Wersja PHP jest za nowa.';
|
||||
$lng['aps']['db_mysql_version'] = 'Baza danych - Serwer MySQL jest za stary.';
|
||||
$lng['aps']['webserver_module'] = 'Webserwer - Brakujący moduł "%s".';
|
||||
$lng['aps']['nopacketsforinstallation'] = 'Brak paczek do instalacji.';
|
||||
$lng['aps']['waitfortask'] = 'Brak akcji do wybrania. Oczykiwanie na zakończenie wszystkich zadań.';
|
||||
$lng['aps']['removetaskexisting'] = '<strong>There is already a task for Uninstallation.</strong><br/><br/>Proszć wróć do zakładki "Moje Paczki" i poczekaj, aż deinstalacja zostanie zakończona.';
|
||||
$lng['aps']['packagewillberemoved'] = '<strong>Paczka zostanie odinstalowana.</strong><br/><br/>Proszć wróć do zakładki "Moje Paczki" i poczekaj, aż deinstalacja zostanie zakończona.';
|
||||
$lng['question']['reallywanttoremove'] = '<strong>Czy na pewno chcesz odinstalować tą paczkę?</strong><br/><br/>Wszystkie bazy danych i pliki zostaną usunięte. Be sure to make a manual backup of a files you need for any further usage!<br/><br/>';
|
||||
|
||||
// ADDED IN 1.2.19-svn38
|
||||
|
||||
$lng['admin']['phpserversettings'] = 'Ustawienia PHP';
|
||||
@@ -674,16 +590,11 @@ $lng['admin']['phpserversettings'] = 'Ustawienia PHP';
|
||||
$lng['admin']['spfsettings'] = 'Ustawienia SPF dla domeny';
|
||||
$lng['spf']['use_spf'] = 'SPF dla domeny aktywne?';
|
||||
$lng['spf']['spf_entry'] = 'SPF entry for all domains';
|
||||
$lng['autoresponder']['date_from'] = 'Data początkowa';
|
||||
$lng['autoresponder']['date_until'] = 'Data końcowa';
|
||||
$lng['autoresponder']['startenddate'] = 'Początek/koniec daty';
|
||||
$lng['panel']['not_activated'] = 'Nie aktywowany';
|
||||
$lng['update']['update'] = 'Aktualizacja Froxlora';
|
||||
$lng['admin']['cron']['cronsettings'] = 'ustawienia Cronjob';
|
||||
$lng['crondesc']['cron_tasks'] = 'przebudowanie plików konfiguracyjnych';
|
||||
$lng['crondesc']['cron_legacy'] = 'legacy (old) cronjob';
|
||||
$lng['crondesc']['cron_apsinstaller'] = 'Instalator aplikacji';
|
||||
$lng['crondesc']['cron_apsupdater'] = 'Aktualizacja pakietów instalatora aplikacji';
|
||||
$lng['crondesc']['cron_traffic'] = 'obliczanie ruchu';
|
||||
$lng['crondesc']['cron_ticketsreset'] = 'resetowanie licznika zgłoszeń';
|
||||
$lng['crondesc']['cron_ticketarchive'] = 'archiwizowanie starych zgłoszeń';
|
||||
|
||||
@@ -765,23 +765,8 @@ $lng['serversettings']['allow_password_reset']['description'] = 'Os clientes pod
|
||||
$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á enviada para seu endereço de e-mail';
|
||||
$lng['panel']['not_supported'] = 'Não suportado em:';
|
||||
$lng['menue']['email']['autoresponder'] = 'Auto-Responder';
|
||||
$lng['autoresponder']['active'] = 'Ativar';
|
||||
$lng['autoresponder']['autoresponder_add'] = 'Adicionar Auto-Responder';
|
||||
$lng['autoresponder']['autoresponder_edit'] = 'Edita Auto-Responder';
|
||||
$lng['autoresponder']['autoresponder_new'] = 'Criar novo Auto-Responder';
|
||||
$lng['autoresponder']['subject'] = 'Assunto';
|
||||
$lng['autoresponder']['message'] = 'Mensagem';
|
||||
$lng['autoresponder']['account'] = 'Aconta';
|
||||
$lng['autoresponder']['sender'] = 'Remetente';
|
||||
$lng['question']['autoresponderdelete'] = 'Você deseja apagar o auto-responder?';
|
||||
$lng['error']['noemailaccount'] = 'Pode haver duas razões pelas quais você não pode criar uma nova resposta automática: Você precisará de pelo menos um e-mail para criar um novo utilitário de resposta automática. Em segundo lugar, pode ser possível que todas as contas já tenham uma resposta automática configuradas';
|
||||
$lng['error']['missingfields'] = 'Nem todos os campos necessários estavam no campo.';
|
||||
$lng['error']['accountnotexisting'] = 'Esta conta não existe.';
|
||||
$lng['error']['autoresponderalreadyexists'] = 'Já existe um auto-responder configurado para esta conta.';
|
||||
$lng['error']['invalidautoresponder'] = 'Esta determinada está inválida.';
|
||||
$lng['serversettings']['autoresponder_active']['title'] = 'Usar módulo de auto-responder';
|
||||
$lng['serversettings']['autoresponder_active']['description'] = 'Você deseja utilizar o módulo do auto-responder?';
|
||||
$lng['admin']['security_settings'] = 'Opções de Segurança';
|
||||
$lng['admin']['know_what_youre_doing'] = 'Somente altere, se você sabe o que está fazendo';
|
||||
$lng['admin']['show_version_login']['title'] = 'Mostrar versão do Froxlor no login';
|
||||
@@ -840,167 +825,6 @@ $lng['serversettings']['index_file_extension']['title'] = 'Extensão do arquivo
|
||||
$lng['error']['index_file_extension'] = 'A extensão do índice do arquivo deve ficar entre 1 e 6 caracteres. A prorrogação só pode conter caracteres como az, AZ e 0-9';
|
||||
$lng['admin']['expert_settings'] = 'Configurações Avançadas';
|
||||
$lng['admin']['mod_fcgid_starter']['title'] = 'Processos PHP para este domínio (vazio para usar valor padrão)';
|
||||
$lng['admin']['aps'] = 'APS Instalado';
|
||||
$lng['customer']['aps'] = 'Instalador do APS';
|
||||
$lng['aps']['scan'] = 'Procurar por novos pacotes';
|
||||
$lng['aps']['upload'] = 'Atualizar novos pacotes';
|
||||
$lng['aps']['managepackages'] = 'Gerenciar Pacotes';
|
||||
$lng['aps']['manageinstances'] = 'Gerenciar Estâncias';
|
||||
$lng['aps']['overview'] = 'Resumo de Pacote';
|
||||
$lng['aps']['status'] = 'Meus Pacotes';
|
||||
$lng['aps']['search'] = 'Procurar por Pacotes';
|
||||
$lng['aps']['upload_description'] = 'Por favor seleciona o instalador APS (zipfiles) para istalar no sistema';
|
||||
$lng['aps']['search_description'] = 'Nome, Descrição, Palavra Chave, Versão';
|
||||
$lng['aps']['detail'] = 'Mais informação';
|
||||
$lng['aps']['install'] = 'Pacote de Instalação';
|
||||
$lng['aps']['data'] = 'Data';
|
||||
$lng['aps']['version'] = 'Versão';
|
||||
$lng['aps']['homepage'] = 'Homepage';
|
||||
$lng['aps']['installed_size'] = 'Tamanho após instalação';
|
||||
$lng['aps']['categories'] = 'Categorias';
|
||||
$lng['aps']['languages'] = 'Línguas';
|
||||
$lng['aps']['long_description'] = 'Descrição Longa';
|
||||
$lng['aps']['configscript'] = 'Configuração de Script';
|
||||
$lng['aps']['changelog'] = 'Log de Alterações';
|
||||
$lng['aps']['license'] = 'Licença';
|
||||
$lng['aps']['license_link'] = 'Caminho para Licença';
|
||||
$lng['aps']['screenshots'] = 'Screenshots';
|
||||
$lng['aps']['back'] = 'Voltar para Visão Geral';
|
||||
$lng['aps']['install_wizard'] = 'Assistente de Instalação';
|
||||
$lng['aps']['wizard_error'] = 'Yocê preencheu com dados inválidos. Por favor corrija você mesmo para continuar a instalação';
|
||||
$lng['aps']['basic_settings'] = 'Configurações Básicas';
|
||||
$lng['aps']['application_location'] = 'Local de Instalação';
|
||||
$lng['aps']['application_location_description'] = 'Local aonde a aplicação vai ser instalada';
|
||||
$lng['aps']['no_domains'] = 'Domínios não encontrados';
|
||||
$lng['aps']['database_password'] = 'Senha de Banco de Dados';
|
||||
$lng['aps']['database_password_description'] = 'Senha que deve ser utilizada para novos bancos de dados';
|
||||
$lng['aps']['license_agreement'] = 'Contrato';
|
||||
$lng['aps']['cancel_install'] = 'Cancelar Instalação';
|
||||
$lng['aps']['notazipfile'] = 'O arquivo de upload não é um arquivo .zip';
|
||||
$lng['aps']['filetoobig'] = 'O arquivo é muito grande';
|
||||
$lng['aps']['filenotcomplete'] = 'O arquivo não foi enviado corretamente';
|
||||
$lng['aps']['phperror'] = 'Ocorreu um erro interno no PHP. O código de erro é #';
|
||||
$lng['aps']['moveproblem'] = 'O script falhou em fazer o upload dos arquivos para diretório de destino. Por favor tenha certeza de que as permissões estão setadas corretamente.';
|
||||
$lng['aps']['uploaderrors'] = '<strong>Erros de Arquivo <em>%s</em></strong><br/><ul>%s</ul>';
|
||||
$lng['aps']['nospecialchars'] = 'Sarácters especiais não são aceitos nos termos de pesquisa';
|
||||
$lng['aps']['noitemsfound'] = 'Nenhum pacote foi encontrado';
|
||||
$lng['aps']['nopackagesinstalled'] = 'Você não tem nenhum pacote instalado.';
|
||||
$lng['aps']['instance_install'] = 'Pendência de Instalação de Pacote';
|
||||
$lng['aps']['instance_task_active'] = 'Instalação está em execução neste momento';
|
||||
$lng['aps']['instance_success'] = 'Pacote está instalado corretamente';
|
||||
$lng['aps']['instance_error'] = 'Pacote não está instalado corretamente, erros ocorreram durante a instalação';
|
||||
$lng['aps']['instance_uninstall'] = 'Pendência de Desinstalação de Pacotes';
|
||||
$lng['aps']['unknown_status'] = 'Erro, valor desconhecido';
|
||||
$lng['aps']['currentstatus'] = 'Status Atual';
|
||||
$lng['aps']['activetasks'] = 'Status de Tarejas';
|
||||
$lng['aps']['task_install'] = 'Instalação pendente';
|
||||
$lng['aps']['task_remove'] = 'Desinstação pendente';
|
||||
$lng['aps']['task_reconfigure'] = 'Reconfiguração Pendente';
|
||||
$lng['aps']['task_upgrade'] = 'Atualizar pendência';
|
||||
$lng['aps']['no_task'] = 'Sem tarefas pendentes';
|
||||
$lng['aps']['applicationlinks'] = 'Links de Aplicações';
|
||||
$lng['aps']['mainsite'] = 'Site Principal';
|
||||
$lng['aps']['uninstall'] = 'Desinstalar Pacote';
|
||||
$lng['aps']['reconfigure'] = 'Alterar configurações';
|
||||
$lng['aps']['erroronnewinstance'] = '<strong>Este pacote não pode ser instalado.</strong><br/><br/>Por favor volte a visualização de pacotes e comece uma nova instalação.';
|
||||
$lng['aps']['successonnewinstance'] = '<strong><em>%s</em> vai ser instalado agora.</strong><br/><br/>Volte para "Meus Pacotes" e espere a instalação acabar. Isto pode demorar alguns minutos.';
|
||||
$lng['aps']['php_misc_handler'] = 'PHP - Não tem suporte para outras extensões além de .php .';
|
||||
$lng['aps']['php_misc_directoryhandler'] = 'PHP - Não tem suporte para diretórios.';
|
||||
$lng['aps']['asp_net'] = 'ASP.NET - Pacote não suportado';
|
||||
$lng['aps']['cgi'] = 'CGI - Pacote não suportado';
|
||||
$lng['aps']['php_extension'] = 'Extensão PHP "%s" missing';
|
||||
$lng['aps']['php_function'] = 'Função PHP "%s" missing';
|
||||
$lng['aps']['php_configuration'] = 'Configuração de PHP atual "%s" não suportado pelo pacote';
|
||||
$lng['aps']['php_configuration_post_max_size'] = 'Configuração do PHP - "post_max_size" valor muito baixo';
|
||||
$lng['aps']['php_configuration_memory_limit'] = 'Configuração do PHP - "memory_limit" valor muito baixo';
|
||||
$lng['aps']['php_configuration_max_execution_time'] = 'Configuração do PHP - "max_execution_time" valor muito baixo';
|
||||
$lng['aps']['php_general_old'] = 'PHP - Geral - Versão do PHP Muito Antiga';
|
||||
$lng['aps']['php_general_new'] = 'PHP - Geral - Versão do PHP Muito Nova';
|
||||
$lng['aps']['db_mysql_support'] = 'Base de Dados - Este pacote precisa outra base de dados do que MySQL';
|
||||
$lng['aps']['db_mysql_version'] = 'Base de Dados - Servidor MySQL é muito antigo';
|
||||
$lng['aps']['webserver_module'] = 'Servidor Web - Módulo "%s" não encontrado';
|
||||
$lng['aps']['misc_configscript'] = 'Misc - A linguagem de configuração do script não é suportadaützt.';
|
||||
$lng['aps']['misc_version_already_installed'] = 'A mesma versão do pacote já está instalada.';
|
||||
$lng['aps']['misc_version_already_installed'] = 'Mesma versão de pacote instalado.';
|
||||
$lng['aps']['misc_only_newer_versions'] = 'Por razões de segurança somente pacotes instalados podem ser reinstalados e atualizados.';
|
||||
$lng['aps']['erroronscan'] = '<strong>Erros para <em>%s</em></strong><ul>%s</ul>';
|
||||
$lng['aps']['invalidzipfile'] = '<strong>Erros para <em>%s</em></strong><br/><ul><li>Este não é um pacote valido de APS compactado!</li></ul>';
|
||||
$lng['aps']['successpackageupdate'] = '<strong><em>%s</em> Pacote atualizado com sucesso</strong>';
|
||||
$lng['aps']['successpackageinstall'] = '<strong><em>%s</em> Novo pacote instalado com sucesso</strong>';
|
||||
$lng['aps']['class_zip_missing'] = 'SimpleXML Class, funções exec ou funções ZIP podem estar perdidas ou desabilitadas! Para futuras informações sobre este problema procure no manual sobre este módulo';
|
||||
$lng['aps']['dir_permissions'] = 'O PHP/Servidor Web tem que estar apto em escrever nos diretórios /var/www/froxlor/temp/ e /var/www/froxlor/packages/';
|
||||
$lng['aps']['initerror'] = '<strong>Foi encontrado erros neste módulo:</strong><ul>%s</ul>Corrija o problema, ou o módulo não poderá ser usado!';
|
||||
$lng['aps']['iderror'] = 'ID incorretamente especificado';
|
||||
$lng['aps']['nopacketsforinstallation'] = 'Nenhum para para instalar';
|
||||
$lng['aps']['nopackagestoinstall'] = 'Nenhum pacote para visualizar ou instalar';
|
||||
$lng['aps']['nodomains'] = 'Seleciona um domínio da lisa. Se não tiver nenhum, o pacote não pode ser instalado';
|
||||
$lng['aps']['wrongpath'] = 'Either this path contains invalid characters or there is another application installed already.';
|
||||
$lng['aps']['dbpassword'] = 'Especifique uma senha com um mínimo de 8 carácters';
|
||||
$lng['aps']['error_text'] = 'Especifique um texto sem carácters especiais';
|
||||
$lng['aps']['error_email'] = 'Especifique um endereço de e-mail válido';
|
||||
$lng['aps']['error_domain'] = 'Especifique uma URL válida como http://www.exemplo.com/';
|
||||
$lng['aps']['error_integer'] = 'Especifique um valor númerico (Formato-Integer)';
|
||||
$lng['aps']['error_float'] = 'Especifique um valor númerico (Formato-Float)';
|
||||
$lng['aps']['error_password'] = 'Especifique uma senha';
|
||||
$lng['aps']['error_license'] = 'Yes, I have the license and will abide by its terms.';
|
||||
$lng['aps']['error_licensenoaccept'] = 'Você deve aceitar a licença de instalação desta aplicação';
|
||||
$lng['aps']['stopinstall'] = 'Cancelar Instalação';
|
||||
$lng['aps']['installstopped'] = 'A instalação deste pacote foi cancelada com sucesso';
|
||||
$lng['aps']['installstoperror'] = 'A instalação não pode ser abortada porque a instalação já foi iniciada. Se você deseja remover o pacote, primeiro esperer instalar, depois remova-o em "Meus Pacotes".';
|
||||
$lng['aps']['waitfortask'] = 'Não tem opções para selecionar. Espere o final de todas as tarefas para terminar';
|
||||
$lng['aps']['removetaskexisting'] = '<strong>Existe uma tarefa para desinstação.</strong><br/><br/>Por favor volte para "Meus Pacotes" e espere terminar.';
|
||||
$lng['aps']['packagewillberemoved'] = '<strong>O pacote vai ser desinstalado agora.</strong><br/><br/>Por favor volte para "Meus Pacotes" e espere terminar.';
|
||||
$lng['question']['reallywanttoremove'] = '<strong>Você realmente deseja desinstalar este pacote?</strong><br/><br/>Todo conteúdo de banco de dados e arquivo irá ser apagado. Tenha certeza que você tem o backup para uso futuro!<br/><br/>';
|
||||
$lng['aps']['searchoneresult'] = '%s pacote achado';
|
||||
$lng['aps']['searchmultiresult'] = '%s pacotes achados';
|
||||
$lng['question']['reallywanttostop'] = 'Você deseja cancelar a instalação deste pacote?';
|
||||
$lng['aps']['packagenameandversion'] = 'Nome do Pacote & Versão';
|
||||
$lng['aps']['package_locked'] = 'Destrava';
|
||||
$lng['aps']['package_enabled'] = 'Trava';
|
||||
$lng['aps']['lock'] = 'Trava';
|
||||
$lng['aps']['unlock'] = 'Destrava';
|
||||
$lng['aps']['remove'] = 'Remover';
|
||||
$lng['aps']['allpackages'] = 'Todos os pacotes';
|
||||
$lng['question']['reallyremovepackages'] = '<strong>Do you really want to delete this 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'] = 'Nome do Pacote & Status';
|
||||
$lng['aps']['activate_aps']['title'] = 'A\'tiva instalados APS';
|
||||
$lng['aps']['activate_aps']['description'] = 'Aqui o instalador do APS pode ser ativado ou desativado globalmente';
|
||||
$lng['aps']['packages_per_page']['title'] = 'Pacotes por página';
|
||||
$lng['aps']['packages_per_page']['description'] = 'Quantos pacotes devem aparecer por página para os clientes ';
|
||||
$lng['aps']['upload_fields']['title'] = 'Upload de campos por página';
|
||||
$lng['aps']['upload_fields']['description'] = 'Quantos campos devem aparecer por página para a instalação de novos pacotes no sistema?';
|
||||
$lng['aps']['exceptions']['title'] = 'Exceção para validação de pacote';
|
||||
$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'] = 'Extensões do PHP';
|
||||
$lng['aps']['settings_php_configuration'] = 'Configuração do PHP';
|
||||
$lng['aps']['settings_webserver_modules'] = 'Módulos do Webserver';
|
||||
$lng['aps']['settings_webserver_misc'] = 'Servidor Web Variados';
|
||||
$lng['aps']['specialoptions'] = 'Opções Especiais';
|
||||
$lng['aps']['removeunused'] = 'Remover pacotes não usados';
|
||||
$lng['aps']['enablenewest'] = 'Ativa nova versão de pacote, tranca outras';
|
||||
$lng['aps']['installations'] = 'Instalações';
|
||||
$lng['aps']['statistics'] = 'Estatísticas';
|
||||
$lng['aps']['numerofpackagesinstalled'] = '%s pacotes instalados';
|
||||
$lng['aps']['numerofpackagesenabled'] = '%s pacotes ativos';
|
||||
$lng['aps']['numerofpackageslocked'] = '%s Pacotes Trancados';
|
||||
$lng['aps']['numerofinstances'] = '%s Instalação de todos<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'] = 'Caminho para Licença';
|
||||
$lng['aps']['initerror_customer'] = 'Existe um problema com esta extensão do Froxlor. Contate seu administrador para maiores informações.';
|
||||
$lng['aps']['numerofinstancessuccess'] = '%s instalações executadas';
|
||||
$lng['aps']['numerofinstanceserror'] = '%s instalações falhadas';
|
||||
$lng['aps']['numerofinstancesaction'] = '%s planejou instalações/desinstalações';
|
||||
$lng['aps']['downloadallpackages'] = 'Fazer download de todos os pacotes da distribuição do servidor';
|
||||
$lng['aps']['updateallpackages'] = 'Atualizar todos os pacote pela distribuição do servidor';
|
||||
$lng['aps']['downloadtaskexists'] = 'Existe downloads em andamento. Por favor espere terminar.';
|
||||
$lng['aps']['downloadtaskinserted'] = 'Uma tarefa de download de fotos os pacotes foi criada. Esta tarefa pode demorar alguns minutos.';
|
||||
$lng['aps']['updatetaskexists'] = 'Existe uma atualização em andamento. Por favor espere esta atualização terminar.';
|
||||
$lng['aps']['updatetaskinserted'] = 'Uma tarefa para a atualização de todos os pacotes foi criado. Esta tarefa pode demorar alguns minutos.';
|
||||
$lng['aps']['canmanagepackages'] = 'Pode gerenciar pacotes APS';
|
||||
$lng['aps']['numberofapspackages'] = 'Quantia de instalações APS';
|
||||
$lng['aps']['allpackagesused'] = '<strong>Erro</strong><br/><br/>Você já atingiu o número máximo de instalação de apliçações APS';
|
||||
$lng['aps']['noinstancesexisting'] = 'Não existem estâncias para administrar.';
|
||||
$lng['error']['customerdoesntexist'] = 'O cliente que você escolheu não existe';
|
||||
$lng['error']['admindoesntexist'] = 'O administrador que você escolheu não existe';
|
||||
$lng['serversettings']['session_allow_multiple_login']['title'] = 'AAtiva login múltiplo';
|
||||
|
||||
1
packages/.gitignore
vendored
1
packages/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
*
|
||||
@@ -28,7 +28,7 @@ if (isset($argv[1]) && strtolower($argv[1]) == '--help') {
|
||||
echo "\n*** Froxlor Master Cronjob ***\n\n";
|
||||
echo "Below are possible parameters for this file\n\n";
|
||||
echo "--force\t\t\tforces re-generating of config-files (webserver, etc.)\n";
|
||||
echo "--force-[cronname]\tforces the given cron to run, e.g. --force-backup, --force-traffic\n\n";
|
||||
echo "--force-[cronname]\tforces the given cron to run, e.g. --force-mailboxsize, --force-traffic\n\n";
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
<?php if (!defined('MASTER_CRONJOB')) die('You cannot access this file directly!');
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Cron
|
||||
*
|
||||
*/
|
||||
|
||||
$Aps = new ApsInstaller($settings);
|
||||
$Aps->InstallHandler();
|
||||
@@ -1,21 +0,0 @@
|
||||
<?php if (!defined('MASTER_CRONJOB')) die('You cannot access this file directly!');
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Cron
|
||||
*
|
||||
*/
|
||||
|
||||
$Aps = new ApsUpdater($cronlog);
|
||||
$Aps->UpdateHandler();
|
||||
@@ -1,258 +0,0 @@
|
||||
<?php if (!defined('MASTER_CRONJOB')) die('You cannot access this file directly!');
|
||||
|
||||
/**
|
||||
* This file is part of the Froxlor project.
|
||||
* Copyright (c) 2003-2009 the SysCP Team (see authors).
|
||||
* 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 Florian Lippert <flo@syscp.org> (2003-2009)
|
||||
* @author Remo Fritzsche
|
||||
* @author Manuel Aller
|
||||
* @author Michael Schlechtinger
|
||||
* @author Froxlor team <team@froxlor.org> (2010-)
|
||||
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
|
||||
* @package Cron
|
||||
*
|
||||
* @todo skip mail parsing after x bytes for large mails
|
||||
*/
|
||||
|
||||
$mail = new PHPMailer(true);
|
||||
|
||||
//dont do anything when module is disabled
|
||||
if ((int)$settings['autoresponder']['autoresponder_active'] == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
//only send autoresponder to mails which were delivered since last run
|
||||
if ((int)$settings['autoresponder']['last_autoresponder_run'] == 0) {
|
||||
//mails from last 5 minutes, otherwise all mails will be parsed -> mailbomb prevention
|
||||
$cycle = 300;
|
||||
} else {
|
||||
// calculate seconds since last check
|
||||
$cycle = time() - (int)$settings['autoresponder']['last_autoresponder_run'];
|
||||
//prevent mailbombs when cycle is bigger than two days
|
||||
if($cycle > (2 * 60 * 60 * 24))$cycle = (60 * 60 * 24);
|
||||
}
|
||||
|
||||
// set last_autoresponder_run
|
||||
$upd_stmt = Database::prepare("
|
||||
UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = :timeval
|
||||
WHERE `settinggroup` = 'autoresponder' AND `varname` = 'last_autoresponder_run'
|
||||
");
|
||||
Database::pexecute($upd_stmt, array('timeval' => time()));
|
||||
|
||||
// get all customer set ip autoresponders
|
||||
$result_stmt = Database::query("
|
||||
SELECT * FROM `" . TABLE_MAIL_AUTORESPONDER . "` INNER JOIN `" . TABLE_MAIL_USERS . "`
|
||||
ON `" . TABLE_MAIL_AUTORESPONDER . "`.`email` = `" . TABLE_MAIL_USERS . "`.`email`
|
||||
WHERE `enabled` = 1
|
||||
");
|
||||
|
||||
if (Database::num_rows() > 0) {
|
||||
|
||||
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
//check if specific autoresponder should be used
|
||||
$ts_now = time();
|
||||
$ts_start = (int)$row['date_from'];
|
||||
$ts_end = (int)$row['date_until'];
|
||||
|
||||
$row['email'] = strtolower($row['email']);
|
||||
|
||||
// not yet
|
||||
if($ts_start != -1 && $ts_start > $ts_now) continue;
|
||||
// already ended
|
||||
if($ts_end != -1 && $ts_end < $ts_now) continue;
|
||||
|
||||
// setup mail-path (e.g. /var/customers/mail/[loginname]/[user@domain.tld]/new
|
||||
$path = makeCorrectDir($row['homedir'] . $row['maildir'] . "new/");
|
||||
|
||||
// if the directory does not exist, inform syslog
|
||||
if (!is_dir($path)) {
|
||||
$cronlog->logAction(CRON_ACTION, LOG_WARNING, "Error accessing maildir: " . $path);
|
||||
continue;
|
||||
}
|
||||
|
||||
// get all files
|
||||
$its = new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($path)
|
||||
);
|
||||
|
||||
$responded_counter = 0;
|
||||
foreach ($its as $fullFilename => $it ) {
|
||||
if ($it->getFilename() == '.' || $it->getFilename() == '..') {
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* is the time passed between now and
|
||||
* the time we received the mail lower/equal
|
||||
* than our cycle-seconds?
|
||||
*/
|
||||
$filemtime = $it->getMTime();
|
||||
if (time() - $filemtime <= $cycle) {
|
||||
// why not read up to k lines?
|
||||
// I've been patching this forever, to avoid FATAL ERROR / memory exhausted
|
||||
// (fgets() is now binary safe, too)
|
||||
// $content = file($fullFilename);
|
||||
$lcount = 0; $content = array(); $handle = @fopen($fullFilename, "r");
|
||||
if ($handle) {
|
||||
// 1023 lines of an email should be enough to analyze it
|
||||
while (($lcount++<1023) && (($buffer = fgets($handle)) !== false)) {
|
||||
$content[]=$buffer;
|
||||
}
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
// error reading mail contents or just empty
|
||||
if (count($content) == 0) {
|
||||
$cronlog->logAction(CRON_ACTION, LOG_WARNING, "Unable to read mail from maildir: " . dirname($fullFilename));
|
||||
continue;
|
||||
}
|
||||
|
||||
$match = array();
|
||||
$from = '';
|
||||
$to = '';
|
||||
$sender = '';
|
||||
$spam = false;
|
||||
foreach ($content as $line) {
|
||||
// header ends on first empty line, skip rest of mail
|
||||
if (strlen(rtrim($line)) == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
//fetching from field
|
||||
if (!strlen($from)
|
||||
&& preg_match("/^From:(.+)<(.*)>$/", $line, $match)
|
||||
) {
|
||||
$from = strtolower($match[2]);
|
||||
}
|
||||
elseif (!strlen($from)
|
||||
&& preg_match("/^From:\s+(.*@.*)$/", $line, $match)
|
||||
) {
|
||||
$from = strtolower($match[1]);
|
||||
}
|
||||
|
||||
//fetching to field
|
||||
if ((!strlen($to) || $to != $row['email'])
|
||||
&& preg_match("/^To:(.+)<(.*)>$/", $line, $match)
|
||||
) {
|
||||
$to = strtolower($match[2]);
|
||||
}
|
||||
elseif ((!strlen($to) || $to != $row['email'])
|
||||
&& preg_match("/^To:\s+(.*@.*)$/", $line, $match)
|
||||
) {
|
||||
$to = strtolower($match[1]);
|
||||
}
|
||||
/*
|
||||
* if we still don't have a To:-address
|
||||
* OR even worse, the $to is NOT the mail-address
|
||||
* of the customer which autoresponder this is
|
||||
* we have to check for CC too, #476
|
||||
*/
|
||||
elseif ((!strlen($to) || $to != $row['email'])
|
||||
&& preg_match("/^Cc:(.+)<(.*)>$/", $line, $match)
|
||||
) {
|
||||
$to = strtolower($match[2]);
|
||||
}
|
||||
elseif ((!strlen($to) || $to != $row['email'])
|
||||
&& preg_match("/^Cc:\s+(.*@.*)$/", $line, $match)
|
||||
) {
|
||||
$to = strtolower($match[1]);
|
||||
}
|
||||
|
||||
// fetching sender field
|
||||
if (!strlen($sender)
|
||||
&& preg_match("/^Sender:(.+)<(.*)>$/", $line, $match)
|
||||
) {
|
||||
$sender = strtolower($match[2]);
|
||||
}
|
||||
elseif (!strlen($sender)
|
||||
&& preg_match("/Sender:\s+(.*@.*)$/", $line, $match)
|
||||
) {
|
||||
$sender = strtolower($match[1]);
|
||||
}
|
||||
|
||||
//check for amavis/spamassassin spam headers
|
||||
if (preg_match("/^X-Spam-Status: (Yes|No)(.*)$/", $line, $match)) {
|
||||
if(strtolower($match[1]) == 'yes') {
|
||||
$spam = true;
|
||||
}
|
||||
}
|
||||
|
||||
//check for precedence header
|
||||
if (preg_match("/^Precedence: (bulk|list|junk)(.*)$/", $line, $match)) {
|
||||
// use the spam flag to skip reply
|
||||
$spam = true;
|
||||
}
|
||||
}
|
||||
|
||||
// check if the receiver is really the one
|
||||
// with the autoresponder
|
||||
if (!strlen($to) || $to != $row['email']) {
|
||||
$to = '';
|
||||
}
|
||||
|
||||
//skip mail when marked as spam
|
||||
if ($spam == true) {
|
||||
continue;
|
||||
}
|
||||
|
||||
//error while parsing mail
|
||||
if ($to == '' || $from == '') {
|
||||
$cronlog->logAction(CRON_ACTION, LOG_WARNING, "No valid headers found in mail to parse");
|
||||
continue;
|
||||
}
|
||||
|
||||
//important! prevent mailbombs when mail comes from a maildaemon/mailrobot
|
||||
//robot/daemon mails must go to Sender: field in envelope header
|
||||
//refers to "Das Postfix-Buch" / RFC 2822
|
||||
if ($sender != '') {
|
||||
$from = $sender;
|
||||
}
|
||||
|
||||
//make message valid to email format
|
||||
$message = str_replace("\r\n", "\n", $row['message']);
|
||||
|
||||
//check if mail is already an answer
|
||||
$fullcontent = implode("", $content);
|
||||
|
||||
if (strstr($fullcontent, $message) || $from == $to) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$_mailerror = false;
|
||||
try {
|
||||
$mail->CharSet = "UTF-8";
|
||||
$mail->SetFrom($to, $to);
|
||||
$mail->AddReplyTo($to, $to);
|
||||
$mail->Subject = $row['subject'];
|
||||
$mail->AltBody = $message;
|
||||
$html_message = str_replace("\n", "<br />", $message);
|
||||
$mail->MsgHTML(html_entity_decode($html_message));
|
||||
$mail->AddAddress($from, $from);
|
||||
$mail->AddCustomHeader('Precedence: bulk');
|
||||
$mail->Send();
|
||||
} catch(phpmailerException $e) {
|
||||
$mailerr_msg = $e->errorMessage();
|
||||
$_mailerror = true;
|
||||
} catch (Exception $e) {
|
||||
$mailerr_msg = $e->getMessage();
|
||||
$_mailerror = true;
|
||||
}
|
||||
|
||||
if ($_mailerror) {
|
||||
$cronlog->logAction(CRON_ACTION, LOG_WARNING, "Error sending autoresponder mail: " . $mailerr_msg);
|
||||
}
|
||||
|
||||
$mail->ClearAddresses();
|
||||
$responded_counter++;
|
||||
}
|
||||
}
|
||||
$cronlog->logAction(CRON_ACTION, LOG_INFO, "Responded to '" . $responded_counter . "' mails from '".$path."'");
|
||||
}
|
||||
}
|
||||
@@ -1,158 +0,0 @@
|
||||
<?php if (!defined('MASTER_CRONJOB')) die('You cannot access this file directly!');
|
||||
|
||||
/**
|
||||
* 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 Cron
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Backup
|
||||
*/
|
||||
if ($settings['system']['backup_enabled'] == '1') {
|
||||
|
||||
fwrite($debugHandler, 'backup customers started...' . "\n");
|
||||
|
||||
// get sql-root access data for mysqldump
|
||||
Database::needRoot(true);
|
||||
Database::needSqlData();
|
||||
$sql_root = Database::getSqlData();
|
||||
Database::needRoot(false);
|
||||
|
||||
$result_stmt = Database::query("
|
||||
SELECT customerid, loginname, guid, documentroot, backup_allowed, backup_enabled
|
||||
FROM `" . TABLE_PANEL_CUSTOMERS . "` ORDER BY `customerid` ASC;
|
||||
");
|
||||
|
||||
while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
|
||||
fwrite($debugHandler, 'backup for ' . $row['loginname'] . ' started...' . "\n");
|
||||
|
||||
// backup
|
||||
if ($row['backup_allowed'] == '1'
|
||||
&& $row['backup_enabled'] == '1'
|
||||
) {
|
||||
// get uid & gid from ftp table
|
||||
$ftp_result_stmt = Database::prepare("
|
||||
SELECT uid, gid FROM `" . TABLE_FTP_USERS . "`
|
||||
WHERE `username` = :loginname
|
||||
");
|
||||
$ftp_row = Database::pexecute_first($ftp_result_stmt, array('loginname' => $row['loginname']));
|
||||
|
||||
// create backup dir an set rights
|
||||
$_backupdir = makeCorrectDir($settings['system']['backup_dir'] . $row['loginname']);
|
||||
if (!file_exists($_backupdir)) {
|
||||
safe_exec('install -d ' . escapeshellarg($_backupdir) . ' -o ' . escapeshellarg($ftp_row['uid']) . ' -g ' . escapeshellarg($ftp_row['gid']) . ' -m ' . '0500');
|
||||
}
|
||||
|
||||
// create customers html backup
|
||||
safe_exec('tar -C ' . escapeshellarg($row['documentroot']) . ' -c -z -f ' . escapeshellarg($_backupdir) . '/' . escapeshellarg($row['loginname']) . 'html.tar.gz .');
|
||||
|
||||
// get customer dbs
|
||||
$dbs_result_stmt = Database::prepare("
|
||||
SELECT `databasename` FROM `" . TABLE_PANEL_DATABASES . "`
|
||||
WHERE `customerid` = :customerid
|
||||
");
|
||||
Database::pexecute($dbs_result_stmt, array('customerid' => $row['customerid']));
|
||||
|
||||
while ($dbs_row = $dbs_result_stmt->fetch(PDO::FETCH_ASSOC)){
|
||||
// create customers sql backup
|
||||
safe_exec(escapeshellcmd($settings['system']['backup_mysqldump_path']) . ' --opt --force --allow-keywords -u ' . escapeshellarg($sql_root['user']) . ' -p' . escapeshellarg($sql_root['passwd']) . ' -h ' . $sql_root['host'] . ' -B ' . escapeshellarg($dbs_row['databasename']) . ' -r ' . escapeshellarg($_backupdir) . '/' . escapeshellarg($dbs_row['databasename']) . '.sql' );
|
||||
// compress sql backup
|
||||
safe_exec('tar -C ' . escapeshellarg($_backupdir) . ' -c -z -f ' . escapeshellarg($settings['system']['backup_dir']) . $row['loginname'] . '/' . escapeshellarg($dbs_row['databasename']) . '.tar.gz ' . escapeshellarg($dbs_row['databasename']) . '.sql');
|
||||
// remove uncompresed sql files
|
||||
safe_exec('rm ' . escapeshellarg($_backupdir) . '/' . escapeshellarg($dbs_row['databasename']) . '.sql');
|
||||
}
|
||||
|
||||
// create 1 big file with html & db
|
||||
if ($settings['system']['backup_bigfile'] == 1) {
|
||||
safe_exec('tar -C ' . escapeshellarg($_backupdir) . '/' . ' --exclude=' . escapeshellarg($row['loginname']) . '.tar.gz -c -z -f ' . escapeshellarg($_backupdir) . '/' . escapeshellarg($row['loginname']) . '.tar.gz .');
|
||||
// remove separated files
|
||||
$tmp_files = scandir($_backupdir);
|
||||
foreach ($tmp_files as $tmp_file) {
|
||||
if (preg_match('/.*(html|sql|aps).*\.tar\.gz$/', $tmp_file) && !preg_match('/^' . $row['loginname'] . '\.tar\.gz$/', $tmp_file)) {
|
||||
safe_exec('rm ' . escapeshellarg($_backupdir) . '/' . escapeshellarg($tmp_file));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//remove big file if separated backups are used
|
||||
if (file_exists(makeCorrectFile($_backupdir . '/' . $row['loginname'] . '.tar.gz'))) {
|
||||
safe_exec('rm ' . escapeshellarg($_backupdir) . '/' . escapeshellarg($row['loginname']) . '.tar.gz');
|
||||
}
|
||||
}
|
||||
|
||||
// chown & chmod files to prevent manipulation
|
||||
safe_exec('chown ' . escapeshellarg($row['guid']) . ':' . escapeshellarg($row['guid']) . ' ' . escapeshellarg($_backupdir) . '/*');
|
||||
safe_exec('chmod 0400 ' . escapeshellarg($_backupdir) . '/*');
|
||||
|
||||
// create ftp backup user
|
||||
$user_result_stmt = Database::prepare("
|
||||
SELECT username, password FROM `" . TABLE_FTP_USERS . "`
|
||||
WHERE `customerid` = :customerid AND `username` = :username;
|
||||
");
|
||||
$user_row = Database::pexecute_first($user_result_stmt, array('customerid' => $row['customerid'], 'username' => $row['loginname']));
|
||||
|
||||
$ins_stmt = Database::prepare("
|
||||
REPLACE INTO `" . TABLE_FTP_USERS . "`
|
||||
(`customerid`, `username`, `password`, `homedir`, `login_enabled`, `uid`, `gid`)
|
||||
VALUES
|
||||
(:customerid, :username, :password, :homedir, 'y', :guid, :guid)
|
||||
");
|
||||
$ins_data = array(
|
||||
'customerid' => $row['customerid'],
|
||||
'username' => $row['loginname']."_backup",
|
||||
'password' => $user_row['password'],
|
||||
'homedir' => makeCorrectDir($settings['system']['backup_dir'].'/'.$row['loginname'].'/'),
|
||||
'guid' => $row['guid']
|
||||
);
|
||||
Database::pexecute($ins_stmt, $ins_data);
|
||||
|
||||
if ($settings['system']['backup_ftp_enabled'] == '1') {
|
||||
// upload backup to customers ftp server
|
||||
$_ftpdir = makeCorrectDir($settings['system']['backup_dir'].'/'.$row['loginname'].'/');
|
||||
$ftp_files = scandir($_ftpdir);
|
||||
|
||||
foreach ($ftp_files as $ftp_file) {
|
||||
if (preg_match('/.*\.tar\.gz$/', $ftp_file)) {
|
||||
|
||||
$ftp_con = ftp_connect($settings['system']['backup_ftp_server']);
|
||||
$ftp_login = ftp_login($ftp_con, $settings['system']['backup_ftp_user'], $settings['system']['backup_ftp_pass']);
|
||||
|
||||
// Check whether to use passive mode or not
|
||||
if ($settings['system']['backup_ftp_passive'] == 1) {
|
||||
ftp_pasv($ftp_con, true);
|
||||
} else {
|
||||
ftp_pasv($ftp_con, false);
|
||||
}
|
||||
$_file = makeCorrectFile($_ftpdir.'/'.$ftp_file);
|
||||
$ftp_upload = ftp_put($ftp_con, $ftp_file, $_file, FTP_BINARY);
|
||||
}
|
||||
}
|
||||
}
|
||||
fwrite($debugHandler, 'backup for ' . $row['loginname'] . ' finished...' . "\n");
|
||||
}
|
||||
// delete old backup data (deletes backup if customer or admin disables backup)
|
||||
elseif ($row['backup_allowed'] == '0' || $row['backup_enabled'] == '0') {
|
||||
$_ftpdir = makeCorrectDir($settings['system']['backup_dir'].'/'.$row['loginname'].'/');
|
||||
if (file_exists($_ftpdir)){
|
||||
$files = scandir($_ftpdir);
|
||||
foreach ($files as $file) {
|
||||
if (preg_match('/.*\.tar\.gz$/', $file)){
|
||||
$_file = makeCorrectFile($_ftpdir.'/'.$file);
|
||||
safe_exec('rm -f ' . escapeshellarg($_file));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fwrite($debugHandler, 'backup customers finished...' . "\n");
|
||||
}
|
||||
@@ -168,11 +168,9 @@ while ($row = $result_tasks_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
*/
|
||||
elseif ($row['type'] == '5') {
|
||||
$cronlog->logAction(CRON_ACTION, LOG_INFO, 'Creating new FTP-home');
|
||||
// FIXME %_backup clause not necessary after backup-feature is being removed
|
||||
$result_directories_stmt = Database::query("
|
||||
SELECT `f`.`homedir`, `f`.`uid`, `f`.`gid`, `c`.`documentroot` AS `customerroot`
|
||||
FROM `" . TABLE_FTP_USERS . "` `f` LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING (`customerid`)
|
||||
WHERE `f`.`username` NOT LIKE '%_backup'
|
||||
");
|
||||
|
||||
while ($directory = $result_directories_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
@@ -200,20 +198,7 @@ while ($row = $result_tasks_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Running: rm -rf ' . escapeshellarg($homedir));
|
||||
safe_exec('rm -rf '.escapeshellarg($homedir));
|
||||
}
|
||||
|
||||
// remove backup dir
|
||||
// FIXME remove when backup-feature has been removed
|
||||
$backupdir = makeCorrectDir($settings['system']['backup_dir'] . $row['data']['loginname']);
|
||||
|
||||
if (file_exists($backupdir)
|
||||
&& $backupdir != '/'
|
||||
&& $backupdir != $settings['system']['backup_dir']
|
||||
&& substr($backupdir, 0, strlen($settings['system']['backup_dir'])) == $settings['system']['backup_dir']
|
||||
) {
|
||||
$cronlog->logAction(CRON_ACTION, LOG_NOTICE, 'Running: rm -rf ' . escapeshellarg($backupdir));
|
||||
safe_exec('rm -rf '.escapeshellarg($backupdir));
|
||||
}
|
||||
|
||||
// remove maildir
|
||||
$maildir = makeCorrectDir($settings['system']['vmail_homedir'] . '/' . $row['data']['loginname']);
|
||||
|
||||
|
||||
@@ -409,14 +409,7 @@ while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
/**
|
||||
* Total Usage
|
||||
*/
|
||||
if ($settings['system']['backup_count'] == 0
|
||||
&& file_exists($settings['system']['backup_dir'] . $row['loginname'])
|
||||
) {
|
||||
$backupsize = exec('du -s ' . escapeshellarg($settings['system']['backup_dir']) . $row['loginname'] . '');
|
||||
$diskusage = floatval($webspaceusage + $emailusage + $mysqlusage - $backupsize);
|
||||
} else {
|
||||
$diskusage = floatval($webspaceusage + $emailusage + $mysqlusage);
|
||||
}
|
||||
$diskusage = floatval($webspaceusage + $emailusage + $mysqlusage);
|
||||
|
||||
$upd_data = array(
|
||||
'diskspace' => $current_diskspace['all'],
|
||||
|
||||
1
temp/.gitignore
vendored
1
temp/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
*
|
||||
@@ -1,24 +0,0 @@
|
||||
<div class="messagewrapper">
|
||||
<div class="warningcontainer bradius">
|
||||
<div class="warningtitle">{$lng['question']['question']}</div>
|
||||
<div class="warning">
|
||||
$Message
|
||||
<div style="text-align:right;">
|
||||
<form name="continue" action="$filename" method="post">
|
||||
<input type="submit" name="answer" value="{$lng['panel']['yes']}" />
|
||||
<input type="hidden" name="save" value="1"/>
|
||||
<input type="hidden" name="s" value="$s"/>
|
||||
<input type="hidden" name="action" value="$action"/>
|
||||
$Ids
|
||||
</form>
|
||||
|
||||
<form name="back" action="$filename" method="post">
|
||||
<input type="submit" class="nobutton" name="submit" value="{$lng['panel']['no']}" />
|
||||
<input type="hidden" name="action" value="$action"/>
|
||||
<input type="hidden" name="s" value="$s"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -1 +0,0 @@
|
||||
$footer
|
||||
@@ -1 +0,0 @@
|
||||
$header
|
||||
@@ -1,24 +0,0 @@
|
||||
<if $Type == 0>
|
||||
<div class="warningcontainer bradius">
|
||||
<div class="warningtitle">{$lng['success']['success']}</div>
|
||||
<div class="warning">
|
||||
$Message
|
||||
</div>
|
||||
</div>
|
||||
</if>
|
||||
<if $Type == 1>
|
||||
<div class="errorcontainer bradius">
|
||||
<div class="errortitle">{$lng['error']['error']}</div>
|
||||
<div class="error">
|
||||
$Message
|
||||
</div>
|
||||
</div>
|
||||
</if>
|
||||
<if $Type == 2>
|
||||
<div class="successcontainer bradius">
|
||||
<div class="successtitle">{$lng['success']['success']}</div>
|
||||
<div class="success">
|
||||
$Message
|
||||
</div>
|
||||
</div>
|
||||
</if>
|
||||
@@ -1,58 +0,0 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps.png" alt="" />
|
||||
{$lng['aps']['specialoptions']}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradiusodd">
|
||||
<table class="formtable">
|
||||
<tr>
|
||||
<td><strong>{$lng['aps']['statistics']}</strong></td>
|
||||
<td>$Statistics</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
<br /><br />
|
||||
</section>
|
||||
</article>
|
||||
<br /><br />
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps.png" alt="" />
|
||||
{$lng['aps']['manageinstances']}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradiusodd">
|
||||
<form action="$filename" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['aps']['manageinstances']}</legend>
|
||||
|
||||
<table class="formtable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align:center;">{$lng['aps']['packagenameandstatus']}</th>
|
||||
<th style="text-align:center;">{$lng['aps']['stopinstall']}</th>
|
||||
<th style="text-align:center;">{$lng['aps']['uninstall']}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{$Instances}
|
||||
<td colspan="3"><input class="bottom" type="reset" value="{$lng['panel']['reset']}" /> <input type="submit" name="save" value="{$lng['panel']['save']}" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p style="display: none;">
|
||||
<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" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
<br /><br />
|
||||
</section>
|
||||
</article>
|
||||
@@ -1,5 +0,0 @@
|
||||
<tr>
|
||||
<td class="field_name_border_left" style="padding-left: 2em;">{$Row['name']}, {$Row['firstname']} <if $Row['company'] != ''> | {$Row['company']}</if> ({$Row['loginname']}): {$database}; {$main_domain}</td>
|
||||
<td class="field_name" style="text-align:center;"><if isset($Stop) == true>$Stop</if></td>
|
||||
<td class="field_name" style="text-align:center;"><if isset($Remove) == true>$Remove</if></td>
|
||||
</tr>
|
||||
@@ -1,3 +0,0 @@
|
||||
<tr>
|
||||
<td class="field_display_border_left" colspan="3"><strong>{$Row['Name']} {$Row['Version']} (Release {$Row['Release']})</strong></td>
|
||||
</tr>
|
||||
@@ -1,3 +0,0 @@
|
||||
<tr>
|
||||
<td class="title" colspan="3" style="font-size: 1.1em;"><strong>{$Caption}</strong></td>
|
||||
</tr>
|
||||
@@ -1,110 +0,0 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps.png" alt="" />
|
||||
{$lng['aps']['specialoptions']}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="midform midformaps_2 bradiusodd">
|
||||
|
||||
<form action="$filename" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<p style="margin-left:10px;">
|
||||
<strong>{$lng['admin']['phpsettings']['actions']}</strong>
|
||||
</p>
|
||||
<p style="margin-left:10px;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="action" value="$action" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="save" value="save" />
|
||||
<input type="submit" name="downloadallpackages" value="{$lng['aps']['downloadallpackages']}" />
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<form action="$filename" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<p style="margin-left:10px;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="action" value="$action" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="save" value="save" />
|
||||
<input type="submit" name="updateallpackages" value="{$lng['aps']['updateallpackages']}" />
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<form action="$filename" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<p style="margin-left:10px;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="action" value="$action" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="save" value="save" />
|
||||
<input type="submit" name="enablenewest" value="{$lng['aps']['enablenewest']}" />
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<form action="$filename" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<p style="margin-left:10px;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="action" value="$action" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="save" value="save" />
|
||||
<input type="submit" name="removeunused" value="{$lng['aps']['removeunused']}" />
|
||||
</p>
|
||||
</form>
|
||||
|
||||
</section>
|
||||
<br />
|
||||
<section class="midform bradiusodd">
|
||||
<p style="margin-left:10px;"><strong>{$lng['aps']['statistics']}</strong></p>
|
||||
<p style="margin-left:10px;">{$Statistics}</p>
|
||||
</section>
|
||||
</article>
|
||||
<br />
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps.png" alt="" />
|
||||
{$lng['aps']['managepackages']}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
|
||||
<form action="$filename" method="post" enctype="application/x-www-form-urlencoded">
|
||||
|
||||
<table class="bradiusodd aps">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:30%;">{$lng['aps']['packagenameandversion']}</th>
|
||||
<th>{$lng['ticket']['status']}</th>
|
||||
<th>{$lng['aps']['installations']}</th>
|
||||
<th style="width:7%;">{$lng['aps']['lock']}</th>
|
||||
<th style="width:7%;">{$lng['aps']['unlock']}</th>
|
||||
<th style="width:7%;">{$lng['aps']['remove']}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="3" style="border-top:1px solid #666;"><strong>{$lng['aps']['allpackages']}</strong></td>
|
||||
<td style="width:7%;text-align:center;border-top:1px solid #666;"><input type="radio" name="all" value="lock"/></td>
|
||||
<td style="width:7%;text-align:center;border-top:1px solid #666;"><input type="radio" name="all" value="unlock"/></td>
|
||||
<td style="width:7%;text-align:center;border-top:1px solid #666;"><input type="radio" name="all" value="remove"/></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
{$Packages}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p class="submit">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="action" value="$action" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="reset" value="{$lng['panel']['reset']}"/>
|
||||
<input type="submit" name="save" value="{$lng['panel']['save']}"/>
|
||||
</p>
|
||||
|
||||
</form>
|
||||
</section>
|
||||
|
||||
</article>
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
<tr>
|
||||
<td>{$Row2['Version']} (Release {$Row2['Release']})</td>
|
||||
<td><if $Row2['Status'] == PACKAGE_LOCKED>{$lng['aps']['package_locked']}</if><if $Row2['Status'] == PACKAGE_ENABLED>{$lng['aps']['package_enabled']}</if></td>
|
||||
<td>{$Installations}</td>
|
||||
<td style="text-align:center;">$Lock</td>
|
||||
<td style="text-align:center;">$Unlock</td>
|
||||
<td style="text-align:center;"><if $Installations == 0>$Remove</if></td>
|
||||
</tr>
|
||||
@@ -1,30 +0,0 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps.png" alt="" />
|
||||
{$lng['aps']['specialoptions']}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="midform midformaps_2 bradiusodd">
|
||||
|
||||
<form action="$filename" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['aps']['specialoptions']}</legend>
|
||||
<p>
|
||||
<strong>{$lng['admin']['phpsettings']['actions']}</strong>
|
||||
</p>
|
||||
<p class="submit">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="action" value="$action" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="save" value="save" />
|
||||
<input type="submit" name="downloadallpackages" value="{$lng['aps']['downloadallpackages']}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
</section>
|
||||
|
||||
</article>
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
<tr>
|
||||
<td colspan="6" style="border-top: 1px solid #666;border-bottom:1px solid #666;"><strong>{$Row['Name']}</strong></td>
|
||||
</tr>
|
||||
@@ -1,29 +0,0 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps_upload.png" alt="" />
|
||||
{$lng['aps']['upload']}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="midform midformaps_1 bradiusodd">
|
||||
|
||||
<form action="$filename" method="post" enctype="multipart/form-data">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['aps']['upload']}</legend>
|
||||
<p>
|
||||
<strong>{$lng['aps']['upload_description']}</strong><br />
|
||||
<a href="http://www.apsstandard.org/" rel="external">http://www.apsstandard.org/</a>
|
||||
</p>
|
||||
{$Output}
|
||||
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="action" value="$action" />
|
||||
<input type="submit" value="{$lng['aps']['upload']}" />
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
</article>
|
||||
|
||||
@@ -57,18 +57,6 @@ $header
|
||||
<td>{$overview['email_quota_used']} ({$userinfo['email_quota_used']}/{$userinfo['email_quota']})</td>
|
||||
</tr>
|
||||
</if>
|
||||
<if $settings['autoresponder']['autoresponder_active'] == 1>
|
||||
<tr>
|
||||
<td>{$lng['customer']['autoresponder']} ({$lng['admin']['usedmax']}):</td>
|
||||
<td>{$userinfo['email_autoresponder_used']} ({$userinfo['email_autoresponder']})</td>
|
||||
</tr>
|
||||
</if>
|
||||
<if (int)$settings['aps']['aps_active'] == 1>
|
||||
<tr>
|
||||
<td>{$lng['aps']['numberofapspackages']} ({$lng['admin']['used']} ({$lng['admin']['assignedmax']})):</td>
|
||||
<td>{$overview['aps_packages_used']} ({$userinfo['aps_packages_used']}/{$userinfo['aps_packages']})</td>
|
||||
</tr>
|
||||
</if>
|
||||
<tr>
|
||||
<td>{$lng['customer']['ftps']} ({$lng['admin']['used']} ({$lng['admin']['assignedmax']})):</td>
|
||||
<td>{$overview['ftps_used']} ({$userinfo['ftps_used']}/{$userinfo['ftps']})</td>
|
||||
|
||||
@@ -47,12 +47,6 @@
|
||||
<td><span <if $admin['email_quota_used'] == $admin['email_quota_used_new']>style="color:green"<else>style="color:red"</if>><b>{$admin['email_quota_used']} -> {$admin['email_quota_used_new']}</b></span></td>
|
||||
</tr>
|
||||
</if>
|
||||
<if $settings['autoresponder']['autoresponder_active'] == 1>
|
||||
<tr>
|
||||
<td>{$lng['customer']['autoresponder']}:</td>
|
||||
<td><span <if $admin['email_autoresponder_used'] == $admin['email_autoresponder_used_new']>style="color:green"<else>style="color:red"</if>><b>{$admin['email_autoresponder_used']} -> {$admin['email_autoresponder_used_new']}</b></span></td>
|
||||
</tr>
|
||||
</if>
|
||||
<tr>
|
||||
<td>{$lng['customer']['ftps']}:</td>
|
||||
<td><span <if $admin['ftps_used'] == $admin['ftps_used_new']>style="color:green"<else>style="color:red"</if>><b>{$admin['ftps_used']} -> {$admin['ftps_used_new']}</b></span></td>
|
||||
@@ -63,12 +57,6 @@
|
||||
<td><span <if $admin['tickets_used'] == $admin['tickets_used_new']>style="color:green"<else>style="color:red"</if>><b>{$admin['tickets_used']} -> {$admin['tickets_used_new']}</b></span></td>
|
||||
</tr>
|
||||
</if>
|
||||
<if $settings['aps']['aps_active'] == '1'>
|
||||
<tr>
|
||||
<td>{$lng['customer']['aps']}:</td>
|
||||
<td><span <if $admin['aps_packages_used'] == $admin['aps_packages_used_new']>style="color:green"<else>style="color:red"</if>><b>{$admin['aps_packages_used']} -> {$admin['aps_packages_used_new']}</b></span></td>
|
||||
</tr>
|
||||
</if>
|
||||
</table>
|
||||
<br /><br />
|
||||
</section>
|
||||
|
||||
@@ -31,12 +31,6 @@
|
||||
<td><span <if $customer['email_quota_used'] == $customer['email_quota_used_new']>style="color:green"<else>style="color:red"</if>><b>{$customer['email_quota_used']} -> {$customer['email_quota_used_new']}</b></span></td>
|
||||
</tr>
|
||||
</if>
|
||||
<if $settings['autoresponder']['autoresponder_active'] == 1>
|
||||
<tr>
|
||||
<td>{$lng['customer']['autoresponder']}:</td>
|
||||
<td><span <if $customer['email_autoresponder_used'] == $customer['email_autoresponder_used_new']>style="color:green"<else>style="color:red"</if>><b>{$customer['email_autoresponder_used']} -> {$customer['email_autoresponder_used_new']}</b></span></td>
|
||||
</tr>
|
||||
</if>
|
||||
<tr>
|
||||
<td>{$lng['customer']['ftps']}:</td>
|
||||
<td><span <if $customer['ftps_used'] == $customer['ftps_used_new']>style="color:green"<else>style="color:red"</if>><b>{$customer['ftps_used']} -> {$customer['ftps_used_new']}</b></span></td>
|
||||
@@ -47,12 +41,6 @@
|
||||
<td><span <if $customer['tickets_used'] == $customer['tickets_used_new']>style="color:green"<else>style="color:red"</if>><b>{$customer['tickets_used']} -> {$customer['tickets_used_new']}</b></span></td>
|
||||
</tr>
|
||||
</if>
|
||||
<if $settings['aps']['aps_active'] == '1'>
|
||||
<tr>
|
||||
<td>{$lng['customer']['aps']}:</td>
|
||||
<td><span <if $customer['aps_packages_used'] == $customer['aps_packages_used_new']>style="color:green"<else>style="color:red"</if>><b>{$customer['aps_packages_used']} -> {$customer['aps_packages_used_new']}</b></span></td>
|
||||
</tr>
|
||||
</if>
|
||||
</table>
|
||||
<br /><br />
|
||||
</section>
|
||||
|
||||
@@ -77,6 +77,22 @@ $header
|
||||
<td><em>{PASSWORD}</em></td>
|
||||
<td>{$lng['admin']['templates']['PASSWORD']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>{SERVER_HOSTNAME}</em></td>
|
||||
<td>{$lng['admin']['templates']['SERVER_HOSTNAME']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>{SERVER_IP}</em></td>
|
||||
<td>{$lng['admin']['templates']['SERVER_IP']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>{SERVER_PORT}</em></td>
|
||||
<td>{$lng['admin']['templates']['SERVER_PORT']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>{DOMAINNAME}</em></td>
|
||||
<td>{$lng['admin']['templates']['DOMAINNAME']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong>{$lng['admin']['templates']['pop_success']}</strong>
|
||||
|
||||
@@ -78,6 +78,22 @@ $header
|
||||
<td><em>{PASSWORD}</em></td>
|
||||
<td>{$lng['admin']['templates']['PASSWORD']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>{SERVER_HOSTNAME}</em></td>
|
||||
<td>{$lng['admin']['templates']['SERVER_HOSTNAME']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>{SERVER_IP}</em></td>
|
||||
<td>{$lng['admin']['templates']['SERVER_IP']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>{SERVER_PORT}</em></td>
|
||||
<td>{$lng['admin']['templates']['SERVER_PORT']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><em>{DOMAINNAME}</em></td>
|
||||
<td>{$lng['admin']['templates']['DOMAINNAME']}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<strong>{$lng['admin']['templates']['pop_success']}</strong>
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
<div class="messagewrapper">
|
||||
<div class="warningcontainer bradius">
|
||||
<div class="warningtitle">{$lng['question']['question']}</div>
|
||||
<div class="warning">
|
||||
$Message
|
||||
<div style="text-align:right;">
|
||||
<form name="continue" action="$filename" method="post">
|
||||
<input type="submit" name="answer" value="{$lng['panel']['yes']}" />
|
||||
<input type="hidden" name="save" value="1"/>
|
||||
<input type="hidden" name="s" value="$s"/>
|
||||
<input type="hidden" name="action" value="$action"/>
|
||||
$Ids
|
||||
</form>
|
||||
|
||||
<form name="back" action="$filename" method="post">
|
||||
<input type="submit" name="submit" value="{$lng['panel']['no']}" />
|
||||
<input type="hidden" name="action" value="<if isset($action_alt)>$action_alt<else>$action</if>"/>
|
||||
<input type="hidden" name="s" value="$s"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
<if $Groupname != ''>
|
||||
<tr>
|
||||
<td class="title" colspan="3"><strong>$Groupname</strong></td>
|
||||
</tr>
|
||||
</if>
|
||||
<tr>
|
||||
<td class="field_name_border_left" valign="top" width="25%">$Fieldname</td>
|
||||
<td class="field_display" colspan="3">$Fieldvalue</td>
|
||||
</tr>
|
||||
@@ -1 +0,0 @@
|
||||
$footer
|
||||
@@ -1 +0,0 @@
|
||||
$header
|
||||
@@ -1,25 +0,0 @@
|
||||
<if $Type == 0>
|
||||
<div class="warningcontainer bradius">
|
||||
<div class="warningtitle">{$lng['success']['success']}</div>
|
||||
<div class="warning">
|
||||
$Message
|
||||
</div>
|
||||
</div>
|
||||
</if>
|
||||
<if $Type == 1>
|
||||
<div class="errorcontainer bradius">
|
||||
<div class="errortitle">{$lng['error']['error']}</div>
|
||||
<div class="error">
|
||||
$Message
|
||||
</div>
|
||||
</div>
|
||||
</if>
|
||||
<if $Type == 2>
|
||||
<div class="successcontainer bradius">
|
||||
<div class="successtitle">{$lng['success']['success']}</div>
|
||||
<div class="success">
|
||||
$Message
|
||||
</div>
|
||||
</div>
|
||||
</if>
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps.png" alt="{$Xml->name}" />
|
||||
{$Xml->name}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradiusodd">
|
||||
|
||||
<form action="$filename" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$Xml->name}</legend>
|
||||
|
||||
<table class="formtable">
|
||||
<tr>
|
||||
<td colspan="2"><strong>{$lng['aps']['install_wizard']}</strong>
|
||||
<if $ErrorMessage != 0>
|
||||
<div class="dataerror">{$lng['aps']['wizard_error']}</div>
|
||||
</if>
|
||||
</td>
|
||||
<td style="text-align: center; padding: 10px; background-color:#FFFFFF;"><img src="{$Icon}" alt="{$Xml->name} Icon"/></td>
|
||||
</tr>
|
||||
$Data
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<input type="submit" value="{$lng['aps']['install']}" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p style="display: none;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="action" value="install" />
|
||||
<input type="hidden" name="withinput" value="withinput" />
|
||||
<input type="hidden" name="id" value="{$Row['ID']}" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
@@ -1,68 +0,0 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps.png" alt="{$Xml->name}" />
|
||||
{$Xml->name}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradiusodd">
|
||||
|
||||
<fieldset>
|
||||
<legend>Froxlor - </legend>
|
||||
|
||||
<table class="formtable">
|
||||
<tr>
|
||||
<td colspan="2"><strong>$Summary</strong></td>
|
||||
<td style="text-align: center; padding: 10px; background-color:#FFFFFF;"><img src="{$Icon}" alt="{$Xml->name} Icon"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3"><strong>{$lng['aps']['data']}</strong></td>
|
||||
</tr>
|
||||
$Data
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<if $action == 'overview' || $action == 'search'>
|
||||
<form method="get" action="$filename" style="float:left;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="action" value="details" />
|
||||
<input type="hidden" name="id" value="{$Row['ID']}" />
|
||||
<input class="bottom" type="submit" value="{$lng['aps']['detail']}" />
|
||||
</form>
|
||||
</if>
|
||||
<if $action != 'overview' && $action !='search' && $action != 'customerstatus'>
|
||||
<form method="get" action="$filename" style="float:left;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="action" value="overview" />
|
||||
<input class="bottom" type="submit" value="{$lng['aps']['back']}" />
|
||||
</form>
|
||||
</if>
|
||||
<if $action != 'customerstatus' && ( $userinfo['aps_packages'] != $userinfo['aps_packages_used'] ) && $db_info == ''>
|
||||
<form method="get" action="$filename" style="float:left; padding-left: 5px;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="action" value="install" />
|
||||
<input type="hidden" name="id" value="{$Row['ID']}" />
|
||||
<input class="bottom" type="submit" value="{$lng['aps']['install']}" />
|
||||
</form>
|
||||
</if>
|
||||
<if $db_info != ''>
|
||||
<span style="padding-left: 5px;">{$db_info}</span>
|
||||
</if>
|
||||
<if ($action == 'customerstatus') && ($Row['Status'] == 2 || $Row['Status'] == 3)>
|
||||
<form method="get" action="$filename" style="float:left;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="action" value="remove" />
|
||||
<input type="hidden" name="id" value="{$Row['ID']}" />
|
||||
<input class="bottom" type="submit" value="{$lng['aps']['uninstall']}" />
|
||||
</form>
|
||||
</if>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</section>
|
||||
</article>
|
||||
@@ -1,60 +0,0 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps.png" alt="{$Xml->name}" />
|
||||
{$Xml->name}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradiusodd">
|
||||
|
||||
<fieldset>
|
||||
<legend>Froxlor - </legend>
|
||||
|
||||
<table class="formtable">
|
||||
<tr>
|
||||
<td colspan="2"><strong>$Summary</strong></td>
|
||||
<td style="text-align: center; padding: 10px; background-color:#FFFFFF;"><img src="{$Icon}" alt="{$Xml->name} Icon"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3"><strong>{$lng['aps']['data']}</strong></td>
|
||||
</tr>
|
||||
$Data
|
||||
<tr>
|
||||
<td colspan="3">
|
||||
<if $Row['Status'] == INSTANCE_INSTALL>
|
||||
<form method="get" action="$filename" >
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="action" value="stopinstall" />
|
||||
<input type="hidden" name="id" value="{$Row['ID']}" />
|
||||
<input class="bottom" type="submit" value="{$lng['aps']['stopinstall']}" />
|
||||
</form>
|
||||
</if>
|
||||
<if $Row['Status'] == INSTANCE_SUCCESS || $Row['Status'] == INSTANCE_ERROR>
|
||||
<form method="get" action="$filename" style="float:left;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="action" value="remove" />
|
||||
<input type="hidden" name="id" value="{$Row['ID']}" />
|
||||
<input class="bottom" type="submit" value="{$lng['aps']['uninstall']}" />
|
||||
</form>
|
||||
</if>
|
||||
<if $Row['Status'] == INSTANCE_SUCCESS && false == true>
|
||||
<form method="get" action="$filename" style="float:left; padding-left: 5px;">
|
||||
<input type="hidden" name="s" value="$s" />
|
||||
<input type="hidden" name="page" value="$page" />
|
||||
<input type="hidden" name="action" value="reconfigure" />
|
||||
<input type="hidden" name="id" value="{$Row['ID']}" />
|
||||
<input class="bottom" type="submit" value="{$lng['aps']['reconfigure']}" />
|
||||
</form>
|
||||
</if>
|
||||
<if $Row['Status'] == INSTANCE_TASK_ACTIVE || $Row['Status'] == INSTANCE_UNINSTALL>
|
||||
{$lng['aps']['waitfortask']}
|
||||
</if>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</section>
|
||||
</article>
|
||||
@@ -1,34 +0,0 @@
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/aps.png" alt=""{$lng['aps']['search']} />
|
||||
{$lng['aps']['search']}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradiusodd">
|
||||
|
||||
<form action="$filename" method="get" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$lng['aps']['search']}</legend>
|
||||
|
||||
<table class="formtable">
|
||||
<tr>
|
||||
<td>{$lng['aps']['search_description']}</td>
|
||||
<td><input type="text" name="keyword" class="text" value="$Keyword"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: right;" colspan="2"><input type="submit" value="{$lng['aps']['search']}" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p style="display: none;">
|
||||
<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" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
@@ -1,44 +0,0 @@
|
||||
$header
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/icons/autoresponder.png" alt="" />
|
||||
{$lng['menue']['email']['autoresponder']}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
|
||||
<if ($userinfo['email_autoresponder_used'] < $userinfo['email_autoresponder'] || $userinfo['email_autoresponder'] == '-1') && 15 < $count >
|
||||
<div class="overviewadd">
|
||||
<img src="templates/{$theme}/assets/img/icons/autoresponder_add.png" alt="" />
|
||||
<a href="{$linker->getLink(array('section' => 'autoresponder', 'action' => 'add'))}">{$lng['autoresponder']['autoresponder_add']}</a>
|
||||
</div>
|
||||
</if>
|
||||
|
||||
<table class="bradiusodd">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{$lng['emails']['emailaddress']}</th>
|
||||
<th>{$lng['autoresponder']['active']}</th>
|
||||
<th>{$lng['autoresponder']['startenddate']}</th>
|
||||
<th>{$lng['panel']['options']}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{$autoresponder}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<if ($userinfo['email_autoresponder_used'] < $userinfo['email_autoresponder'] || $userinfo['email_autoresponder'] == '-1') >
|
||||
<div class="overviewadd">
|
||||
<img src="templates/{$theme}/assets/img/icons/autoresponder_add.png" alt="" />
|
||||
<a href="{$linker->getLink(array('section' => 'autoresponder', 'action' => 'add'))}">{$lng['autoresponder']['autoresponder_add']}</a>
|
||||
</div>
|
||||
</if>
|
||||
|
||||
</section>
|
||||
</article>
|
||||
$footer
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
$header
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/{$image}" alt="{$title}" />
|
||||
{$title}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradiusodd">
|
||||
|
||||
<form action="{$linker->getLink(array('section' => 'autoresponder'))}" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$title}</legend>
|
||||
|
||||
<table class="formtable">
|
||||
{$autoresponder_add_form}
|
||||
</table>
|
||||
|
||||
<p style="display: none;">
|
||||
<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" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
$footer
|
||||
@@ -1,17 +0,0 @@
|
||||
<tr>
|
||||
<td>{$row['email']}</td>
|
||||
<td>
|
||||
<if $row['enabled'] != 0>{$lng['panel']['yes']}</if>
|
||||
<if $row['enabled'] == 0>{$lng['panel']['no']}</if>
|
||||
</td>
|
||||
<td>$activated_date</td>
|
||||
<td>
|
||||
<a href="{$linker->getLink(array('section' => 'autoresponder', 'action' => 'edit', 'email' => $row['email']))}" style="text-decoration:none;">
|
||||
<img src="templates/{$theme}/assets/img/icons/edit.png" alt="{$lng['panel']['edit']}" />
|
||||
</a>
|
||||
<a href="{$linker->getLink(array('section' => 'autoresponder', 'action' => 'delete', 'email' => $row['email']))}" style="text-decoration:none;">
|
||||
<img src="templates/{$theme}/assets/img/icons/delete.png" alt="{$lng['panel']['delete']}" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
$header
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/{$image}" alt="{$title}" />
|
||||
{$title}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradiusodd">
|
||||
|
||||
<form action="{$linker->getLink(array('section' => 'autoresponder'))}" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$title}</legend>
|
||||
|
||||
<table class="formtable">
|
||||
{$autoresponder_edit_form}
|
||||
</table>
|
||||
|
||||
<p style="display: none;">
|
||||
<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="account" value="$email" />
|
||||
<input type="hidden" name="send" value="send" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
</section>
|
||||
</article>
|
||||
$footer
|
||||
@@ -1,32 +0,0 @@
|
||||
$header
|
||||
<article>
|
||||
<header>
|
||||
<h2>
|
||||
<img src="templates/{$theme}/assets/img/{$image}" alt="{$title}" />
|
||||
{$title}
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<section class="fullform bradiusodd">
|
||||
|
||||
<form action="{$linker->getLink(array('section' => 'extras'))}" method="post" enctype="application/x-www-form-urlencoded">
|
||||
<fieldset>
|
||||
<legend>Froxlor - {$title}</legend>
|
||||
|
||||
<table class="formtable">
|
||||
{$backup_form}
|
||||
</table>
|
||||
|
||||
<p style="display: none;">
|
||||
<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" />
|
||||
</p>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
</section>
|
||||
|
||||
</article>
|
||||
$footer
|
||||
@@ -58,12 +58,6 @@ $header
|
||||
</tr>
|
||||
</if>
|
||||
</tr>
|
||||
<if $settings['autoresponder']['autoresponder_active'] == 1>
|
||||
<tr>
|
||||
<td>{$lng['customer']['autoresponder']} ({$lng['customer']['usedmax']}):</td>
|
||||
<td>{$userinfo['email_autoresponder_used']}/{$userinfo['email_autoresponder']}</td>
|
||||
</tr>
|
||||
</if>
|
||||
<tr>
|
||||
<td>{$lng['customer']['mysqls']} ({$lng['customer']['usedmax']}):</td>
|
||||
<td>{$userinfo['mysqls_used']}/{$userinfo['mysqls']}</td>
|
||||
@@ -72,12 +66,6 @@ $header
|
||||
<td>{$lng['customer']['ftps']} ({$lng['customer']['usedmax']}):</td>
|
||||
<td>{$userinfo['ftps_used']}/{$userinfo['ftps']}</td>
|
||||
</tr>
|
||||
<if (int)$settings['aps']['aps_active'] == 1>
|
||||
<tr>
|
||||
<td>{$lng['aps']['numberofapspackages']} ({$lng['customer']['usedmax']}):</td>
|
||||
<td>{$userinfo['aps_packages_used']}/{$userinfo['aps_packages']}</td>
|
||||
</tr>
|
||||
</if>
|
||||
<if $settings['ticket']['enabled'] == 1 >
|
||||
<tr>
|
||||
<td>{$lng['customer']['tickets']} ({$lng['customer']['usedmax']}):</td>
|
||||
|
||||
@@ -3,16 +3,12 @@
|
||||
<td>{$row['description']}</td>
|
||||
<td>{$row['size']}</td>
|
||||
<if 1 < $count_mysqlservers><td>{$sql_root['caption']}</td></if>
|
||||
<if $row['apsdb'] != '1'>
|
||||
<td>
|
||||
<a href="{$linker->getLink(array('section' => 'mysql', 'page' => 'mysqls', 'action' => 'edit', 'id' => $row['id']))}" style="text-decoration:none;">
|
||||
<img src="templates/{$theme}/assets/img/icons/edit.png" alt="{$lng['panel']['edit']}" />
|
||||
</a>
|
||||
<a href="{$linker->getLink(array('section' => 'mysql', 'page' => 'mysqls', 'action' => 'delete', 'id' => $row['id']))}" style="text-decoration:none;">
|
||||
<img src="templates/{$theme}/assets/img/icons/delete.png" alt="{$lng['panel']['delete']}" />
|
||||
</a>
|
||||
</td>
|
||||
<else>
|
||||
<td>{$lng['aps']['cannoteditordeleteapsdb']}</td>
|
||||
</if>
|
||||
<td>
|
||||
<a href="{$linker->getLink(array('section' => 'mysql', 'page' => 'mysqls', 'action' => 'edit', 'id' => $row['id']))}" style="text-decoration:none;">
|
||||
<img src="templates/{$theme}/assets/img/icons/edit.png" alt="{$lng['panel']['edit']}" />
|
||||
</a>
|
||||
<a href="{$linker->getLink(array('section' => 'mysql', 'page' => 'mysqls', 'action' => 'delete', 'id' => $row['id']))}" style="text-decoration:none;">
|
||||
<img src="templates/{$theme}/assets/img/icons/delete.png" alt="{$lng['panel']['delete']}" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
24
templates/Sparkle/admin/aps/askyesno.tpl
vendored
24
templates/Sparkle/admin/aps/askyesno.tpl
vendored
@@ -1,24 +0,0 @@
|
||||
<div class="messagewrapper">
|
||||
<div class="warningcontainer bradius">
|
||||
<div class="warningtitle">{$lng['question']['question']}</div>
|
||||
<div class="warning">
|
||||
$Message
|
||||
<div style="text-align:right;">
|
||||
<form name="continue" action="$filename" method="post">
|
||||
<input type="submit" name="answer" value="{$lng['panel']['yes']}" />
|
||||
<input type="hidden" name="save" value="1"/>
|
||||
<input type="hidden" name="s" value="$s"/>
|
||||
<input type="hidden" name="action" value="$action"/>
|
||||
$Ids
|
||||
</form>
|
||||
|
||||
<form name="back" action="$filename" method="post">
|
||||
<input type="submit" class="nobutton" name="submit" value="{$lng['panel']['no']}" />
|
||||
<input type="hidden" name="action" value="$action"/>
|
||||
<input type="hidden" name="s" value="$s"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
1
templates/Sparkle/admin/aps/footer.tpl
vendored
1
templates/Sparkle/admin/aps/footer.tpl
vendored
@@ -1 +0,0 @@
|
||||
$footer
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user