Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Andreas Grundler
2012-09-13 10:30:17 +02:00
594 changed files with 8259 additions and 11884 deletions

2
.gitignore vendored
View File

@@ -1,5 +1,7 @@
packages/*
temp/*
templates/*
install/update.log
.buildpath
.project
.settings/

View File

@@ -99,6 +99,14 @@ return array(
'type' => 'hidden',
'default' => 0,
),
'system_catchall_enabled' => array(
'label' => $lng['serversettings']['catchall_enabled'],
'settinggroup' => 'catchall',
'varname' => 'catchall_enabled',
'type' => 'bool',
'default' => true,
'save_method' => 'storeSettingResetCatchall',
),
),
),
),

View File

@@ -115,13 +115,17 @@ if($page == 'tickets'
if($_cid != $row['customerid'])
{
$cid = $row['customerid'];
$usr = $db->query_first('SELECT `firstname`, `name`, `company`, `loginname` FROM `' . TABLE_PANEL_CUSTOMERS . '`
$usr = $db->query_first('SELECT `customerid`, `firstname`, `name`, `company`, `loginname` FROM `' . TABLE_PANEL_CUSTOMERS . '`
WHERE `customerid` = "' . (int)$cid . '"');
if(isset($usr['loginname'])) {
$customer = getCorrectFullUserDetails($usr) . ' (' . $usr['loginname'] . ')';
//$customer = $usr['firstname'] . " " . $usr['name'] . " (" . $usr['loginname'] . ")";
} else {
if(isset($usr['loginname']))
{
$customer = getCorrectFullUserDetails($usr);
$customerloginname = $usr['loginname'];
$customerid = $usr['customerid'];
}
else
{
$customer = $lng['ticket']['nonexistingcustomer'];
}
eval("\$tickets.=\"" . getTemplate("tickets/tickets_customer") . "\";");
@@ -673,12 +677,17 @@ elseif($page == 'archive'
if($_cid != $ticket['customerid'])
{
$cid = $ticket['customerid'];
$usr = $db->query_first('SELECT `firstname`, `name`, `company`, `loginname` FROM `' . TABLE_PANEL_CUSTOMERS . '`
$usr = $db->query_first('SELECT `customerid`, `firstname`, `name`, `company`, `loginname` FROM `' . TABLE_PANEL_CUSTOMERS . '`
WHERE `customerid` = "' . (int)$cid . '"');
if(isset($usr['loginname'])) {
$customer = getCorrectFullUserDetails($usr) . ' (' . $usr['loginname'] . ')';
} else {
if(isset($usr['loginname']))
{
$customer = getCorrectFullUserDetails($usr);
$customerloginname = $usr['loginname'];
$customerid = $usr['customerid'];
}
else
{
$customer = $lng['ticket']['nonexistingcustomer'];
}

View File

@@ -284,6 +284,12 @@ elseif($page == 'emails')
//$iscatchall = makeyesno('iscatchall', '1', '0', '0');
$email_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/email/formfield.emails_add.php';
if ( $settings['catchall']['catchall_enabled'] != '1' )
{
unset($email_add_data['emails_add']['sections']['section_a']['fields']['iscatchall']);
}
$email_add_form = htmlform::genHTMLForm($email_add_data);
$title = $email_add_data['emails_add']['title'];
@@ -330,6 +336,12 @@ elseif($page == 'emails')
$result = htmlentities_array($result);
$email_edit_data = include_once dirname(__FILE__).'/lib/formfields/customer/email/formfield.emails_edit.php';
if ( $settings['catchall']['catchall_enabled'] != '1' )
{
unset($email_edit_data['emails_edit']['sections']['section_a']['fields']['mail_catchall']);
}
$email_edit_form = htmlform::genHTMLForm($email_edit_data);
$title = $email_edit_data['emails_edit']['title'];
@@ -341,34 +353,41 @@ elseif($page == 'emails')
elseif($action == 'togglecatchall'
&& $id != 0)
{
$result = $db->query_first("SELECT `id`, `email`, `email_full`, `iscatchall`, `destination`, `customerid`, `popaccountid` FROM `" . TABLE_MAIL_VIRTUAL . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
if(isset($result['email'])
&& $result['email'] != '')
if ( $settings['catchall']['catchall_enabled'] == '1' )
{
if($result['iscatchall'] == '1')
{
$db->query("UPDATE `" . TABLE_MAIL_VIRTUAL . "` SET `email` = '" . $db->escape($result['email_full']) . "', `iscatchall` = '0' WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$result['id'] . "'");
}
else
{
$email_parts = explode('@', $result['email_full']);
$email = '@' . $email_parts[1];
$email_check = $db->query_first("SELECT `id`, `email`, `email_full`, `iscatchall`, `destination`, `customerid` FROM `" . TABLE_MAIL_VIRTUAL . "` WHERE `email`='" . $db->escape($email) . "' AND `customerid`='" . (int)$userinfo['customerid'] . "'");
$result = $db->query_first("SELECT `id`, `email`, `email_full`, `iscatchall`, `destination`, `customerid`, `popaccountid` FROM `" . TABLE_MAIL_VIRTUAL . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
if($email_check['email'] == $email)
if(isset($result['email'])
&& $result['email'] != '')
{
if($result['iscatchall'] == '1')
{
standard_error('youhavealreadyacatchallforthisdomain');
exit;
$db->query("UPDATE `" . TABLE_MAIL_VIRTUAL . "` SET `email` = '" . $db->escape($result['email_full']) . "', `iscatchall` = '0' WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$result['id'] . "'");
}
else
{
$db->query("UPDATE `" . TABLE_MAIL_VIRTUAL . "` SET `email` = '$email' , `iscatchall` = '1' WHERE `customerid`='" . $userinfo['customerid'] . "' AND `id`='" . $result['id'] . "'");
$log->logAction(USR_ACTION, LOG_INFO, "edited email address '" . $email . "'");
}
}
$email_parts = explode('@', $result['email_full']);
$email = '@' . $email_parts[1];
$email_check = $db->query_first("SELECT `id`, `email`, `email_full`, `iscatchall`, `destination`, `customerid` FROM `" . TABLE_MAIL_VIRTUAL . "` WHERE `email`='" . $db->escape($email) . "' AND `customerid`='" . (int)$userinfo['customerid'] . "'");
redirectTo($filename, Array('page' => $page, 'action' => 'edit', 'id' => $id, 's' => $s));
if($email_check['email'] == $email)
{
standard_error('youhavealreadyacatchallforthisdomain');
exit;
}
else
{
$db->query("UPDATE `" . TABLE_MAIL_VIRTUAL . "` SET `email` = '$email' , `iscatchall` = '1' WHERE `customerid`='" . $userinfo['customerid'] . "' AND `id`='" . $result['id'] . "'");
$log->logAction(USR_ACTION, LOG_INFO, "edited email address '" . $email . "'");
}
}
redirectTo($filename, Array('page' => $page, 'action' => 'edit', 'id' => $id, 's' => $s));
}
}
else
{
standard_error(array('operationnotpermitted', 'featureisdisabled'), 'Catchall');
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 827 B

File diff suppressed because it is too large Load Diff

View File

@@ -100,23 +100,24 @@ function page_header() {
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="iso-8859-1" />
<meta charset="utf-8" />
<meta http-equiv="Default-Style" content="text/css" />
<link rel="stylesheet" href="../templates/Froxlor/froxlor.css" />
<!--[if IE]><link rel="stylesheet" href="../templates/Froxlor/froxlor_ie.css" /><![endif]-->
<link rel="stylesheet" href="../templates/Froxlor/assets/css/main.css" />
<!--[if IE]><link rel="stylesheet" href="../templates/Froxlor/assets/css/main_ie.css" /><![endif]-->
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../templates/Froxlor/js/froxlor.js"></script>
<script type="text/javascript" src="../templates/Froxlor/assets/js/main.js"></script>
<link href="../templates/Froxlor/assets/img/favicon.ico" rel="icon" type="image/x-icon" />
<title>Froxlor Server Management Panel - Installation</title>
<style>
input {
background: #dae7ee url('../images/Froxlor/icons/text_align_left.png') no-repeat 5px 4px;
background: #dae7ee url('../templates/Froxlor/assets/img/icons/text_align_left.png') no-repeat 5px 4px;
}
input[type="password"] {
background: #dae7ee url('../images/Froxlor/icons/password.png') no-repeat 4px 4px;
background: #dae7ee url('../templates/Froxlor/assets/img/icons/password.png') no-repeat 4px 4px;
}
input[type="submit"] {
background: #ccc url('../images/Froxlor/icons/button_ok.png') no-repeat 4px 8px;
background: #ccc url('../templates/Froxlor/assets/img/icons/button_ok.png') no-repeat 4px 8px;
}
</style>
</head>
@@ -154,13 +155,13 @@ function status_message($case, $text)
function requirement_checks() {
global $lng;
global $lng, $theme;
page_header();
?>
<article class="install bradius">
<header class="dark">
<img src="../images/Froxlor/logo.png" alt="Froxlor Server Management Panel" />
<img src="../templates/Froxlor/assets/img/logo.png" alt="Froxlor Server Management Panel" />
</header>
<section class="installsec">
@@ -520,7 +521,7 @@ if(isset($_POST['installstep'])
?>
<article class="install bradius">
<header class="dark">
<img src="../images/Froxlor/logo.png" alt="Froxlor Server Management Panel" />
<img src="../templates/Froxlor/assets/img/logo.png" alt="Froxlor Server Management Panel" />
</header>
<section class="installsec">
@@ -841,7 +842,7 @@ else
?>
<article class="install bradius">
<header class="dark">
<img src="../images/Froxlor/logo.png" alt="Froxlor Server Management Panel" />
<img src="../templates/Froxlor/assets/img/logo.png" alt="Froxlor Server Management Panel" />
</header>
<section class="installsec">
<h2><?php echo $lng['install']['language']; ?></h2>

View File

@@ -1923,3 +1923,64 @@ if(isFroxlorVersion('0.9.28-svn2')) {
updateToVersion('0.9.28-svn3');
}
if(isFroxlorVersion('0.9.28-svn3'))
{
showUpdateStep("Updating from 0.9.28-svn3 to 0.9.28-svn4", true);
lastStepStatus(0);
if (isset($_POST['classic_theme_replacement']) && $_POST['classic_theme_replacement'] != '')
{
$classic_theme_replacement = $_POST['classic_theme_replacement'];
}
else
{
$classic_theme_replacement = 'Froxlor';
}
showUpdateStep('Setting replacement for the discontinued and removed Classic theme (if active)', true);
// Updating default theme setting
if ($settings['panel']['default_theme'] == 'Classic')
{
$db->query("UPDATE `" . TABLE_PANEL_SETTINGS . "` SET `value` = '".$db->escape($classic_theme_replacement)."' WHERE varname = 'default_theme';");
}
// Updating admin's theme setting
$db->query('UPDATE `' . TABLE_PANEL_ADMINS . '` SET `theme` = \'' . $db->escape($classic_theme_replacement) . '\' WHERE `theme` = \'Classic\'');
// Updating customer's theme setting
$db->query('UPDATE `' . TABLE_PANEL_CUSTOMERS . '` SET `theme` = \'' . $db->escape($classic_theme_replacement) . '\' WHERE `theme` = \'Classic\'');
// Updating theme setting of active sessions
$db->query('UPDATE `' . TABLE_PANEL_SESSIONS . '` SET `theme` = \'' . $db->escape($classic_theme_replacement) . '\' WHERE `theme` = \'Classic\'');
lastStepStatus(0);
showUpdateStep('Altering Froxlor database and tables to use UTF-8. This may take a while..', true);
$db->query('ALTER DATABASE ' . $db->getDbName() . ' CHARACTER SET utf8 COLLATE utf8_general_ci');
$handle = $db->query('SHOW TABLES');
while ($row = $db->fetch_array($handle))
{
foreach ($row as $table)
{
$db->query('ALTER TABLE ' . $table . ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;');
}
}
lastStepStatus(0);
updateToVersion('0.9.28-svn4');
}
if(isFroxlorVersion('0.9.28-svn4')) {
showUpdateStep("Updating from 0.9.28-svn4 to 0.9.28-svn5");
// Catchall functionality (enabled by default) see #1114
$db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('catchall', 'catchall_enabled', '1');");
lastStepStatus(0);
updateToVersion('0.9.28-svn5');
}

View File

@@ -1,60 +0,0 @@
<?php
/*
if(isFroxlorVersion('0.9'))
{
showUpdateStep("Updating from 0.9 to 1.0", false);
showUpdateStep("Converting database tables to UTF-8");
// Convert all data to UTF-8 to have a sane standard across all data
$result = $db->query("SHOW TABLES");
while($table = $db->fetch_array($result, 'num'))
{
$db->query("ALTER TABLE " . $table[0] . " CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;");
$db->query("ALTER TABLE " . $table[0] . " DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");
$affected_columns = array();
$primarykey = "";
$columns = $db->query("SHOW COLUMNS FROM ".$table[0]);
while ($column = $db->fetch_array($columns))
{
if (!(strpos($column['Type'], "char") === false) || !(strpos($column['Type'], "text") === false))
{
$affected_columns[] = $column['Field'];
}
if ($column['Key'] == 'PRI') {
$primarykey = $column['Field'];
}
}
$count_cols = count($affected_columns);
if ($count_cols > 0)
{
$load = "";
foreach($affected_columns as $col)
{
$load .= ", `" . $col . "`";
}
$rows = $db->query("SELECT $primarykey" . $load . " FROM `" . $table[0] . "`");
while ($row = $db->fetch_array($rows))
{
$changes = "";
for ($i = 0; $i < $count_cols; $i++)
{
$base = "`" . $affected_columns[$i] . "` = '" . convertUtf8($row[$affected_columns[$i]]) . "'";
$changes .= ($i == ($count_cols-1)) ? $base : $base . ", ";
}
$db->query("UPDATE `" . $table[0] . "` SET " . $changes . " WHERE `$primarykey` = '" . $db->escape($row[$primarykey]) . "';");
}
}
}
lastStepStatus(0);
}
*/
?>

View File

@@ -26,7 +26,7 @@
*/
function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version)
{
global $settings, $lng, $db;
global $settings, $lng, $db, $theme;
if(versionInUpdate($current_version, '0.9.4-svn2'))
{
@@ -417,16 +417,38 @@ function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version)
}
if(versionInUpdate($current_version, '0.9.18-svn2'))
{
{
$has_preconfig = true;
$description = 'As you can (obviously) see, Froxlor now comes with a new theme. You also have the possibility to switch back to "Classic" if you want to.';
$question = '<strong>Select default panel theme:</strong>&nbsp;';
$question.= '<select name="update_default_theme">';
$themes = getThemes();
foreach($themes as $theme) {
$question.= makeoption($theme, $theme, 'Froxlor');
foreach($themes as $cur_theme) // $theme is already in use
{
$question.= makeoption($cur_theme, $cur_theme, 'Froxlor');
}
$question.= '</select>';
eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";");
}
if(versionInUpdate($current_version, '0.9.28-svn4'))
{
$has_preconfig = true;
$description = 'This version introduces a lot of profound changes:';
$description .= '<br /><ul><li>Improving the whole template system</li><li>Full UTF-8 support</li><li><strong>Removing support for the former default theme \'Classic\'</strong></li></ul>';
$description .= '<br /><br />Notice: This update will <strong>alter your Froxlor database to use UTF-8</strong> as default charset. ';
$description .= 'Even though this is already tested, we <span style="color:#ff0000;font-weight:bold;">strongly recommend</span> to ';
$description .= 'test this update in a testing environment using your existing data.<br /><br />';
$question = '<strong>Select your preferred Classic Theme replacement:</strong>&nbsp;';
$question.= '<select name="classic_theme_replacement">';
$themes = getThemes();
foreach($themes as $cur_theme)
{
$question.= makeoption($cur_theme, $cur_theme, 'Froxlor');
}
$question.= '</select>';
eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";");
}
}

View File

@@ -62,7 +62,7 @@ class ApsParser
private function ManageInstances()
{
global $lng, $filename, $s, $page, $action;
global $lng, $filename, $s, $page, $action, $theme;
$Question = false;
//dont do anything if there is no instance
@@ -170,7 +170,7 @@ class ApsParser
//create table with contents based on instance status
if($Question != true)
{
global $settings;
global $settings, $theme;
$Instances = '';
if((int)$this->userinfo['customers_see_all'] == 1)
@@ -317,7 +317,7 @@ class ApsParser
private function ManagePackages()
{
global $lng, $filename, $s, $page, $action;
global $lng, $filename, $s, $page, $action, $theme;
$Question = false;
if(isset($_POST['save']))
@@ -611,7 +611,7 @@ class ApsParser
private function UploadNewPackages()
{
global $lng, $filename, $s, $page, $action;
global $lng, $filename, $s, $page, $action, $theme;
//define how many files can be uploaded at once
@@ -724,7 +724,7 @@ class ApsParser
private function SearchPackages()
{
global $lng, $filename, $s, $page, $action;
global $lng, $filename, $s, $page, $action, $theme;
$Error = 0;
$Ids = array();
$ShowAll = 0;
@@ -852,7 +852,7 @@ class ApsParser
private function CustomerStatus($CustomerId)
{
global $lng, $filename, $s, $page, $action;
global $lng, $filename, $s, $page, $action, $theme;
$Data = '';
$Fieldname = '';
$Fieldvalue = '';
@@ -877,7 +877,7 @@ class ApsParser
//skip if parse of xml has failed
if($Xml == false)continue;
$Icon = './images/Classic/default.png';
$Icon = 'templates/'.$theme.'/assets/img/default.png';
$this->aps_version = isset($Xml->attributes()->version) ? (string)$Xml->attributes()->version : '1.0';
@@ -1033,7 +1033,7 @@ class ApsParser
private function CreatePackageInstance($PackageId, $CustomerId)
{
global $lng;
global $lng, $theme;
if(!self::IsValidPackageId($PackageId, true))return false;
@@ -1141,7 +1141,7 @@ class ApsParser
private function CheckException($Category, $Item, $Value)
{
global $settings;
global $settings, $theme;
//search for element within system settings
@@ -1164,7 +1164,7 @@ class ApsParser
private function CheckSubmappings($ParentMapping, $Url)
{
global $lng;
global $lng, $theme;
$Error = array();
//check for special PHP handler extensions
@@ -1243,7 +1243,7 @@ class ApsParser
private function InstallNewPackage($Filename)
{
global $lng, $userinfo;
global $lng, $userinfo, $theme;
if(file_exists($Filename)
&& $Xml = self::GetXmlFromZip($Filename))
@@ -1726,7 +1726,7 @@ class ApsParser
public function MainHandler($Action)
{
global $lng, $filename, $s, $page, $action, $Id, $userinfo;
global $lng, $filename, $s, $page, $action, $Id, $userinfo, $theme;
//check for basic functions, classes and permissions
@@ -2810,7 +2810,7 @@ class ApsParser
private function ShowPackageInstaller($PackageId, $WrongData, $CustomerId)
{
global $lng, $filename, $s, $page, $action;
global $lng, $filename, $s, $page, $action, $theme;
$Data = '';
$Fieldname = '';
$Fieldvalue = '';
@@ -2838,7 +2838,7 @@ class ApsParser
//icon for package
$Icon = './images/Classic/default.png';
$Icon = 'templates/'.$theme.'/img/default.png';
if($this->aps_version != '1.0')
{
@@ -3187,7 +3187,7 @@ class ApsParser
{
$Temp.= '<textarea name="text" rows="10" cols="55">';
$FileContent = file_get_contents('./packages/' . $Row['Path'] . '/license.txt');
$Temp.= htmlentities($FileContent, ENT_QUOTES, 'ISO-8859-1');
$Temp.= htmlentities($FileContent, ENT_QUOTES, 'UTF-8');
$Temp.= '</textarea>';
$Groupname = $lng['aps']['license'];
$Fieldname = $lng['aps']['license'];
@@ -3231,7 +3231,7 @@ class ApsParser
private function ShowPackageInfo($PackageId, $All = false)
{
global $lng, $filename, $s, $page, $action, $userinfo;
global $lng, $filename, $s, $page, $action, $userinfo, $theme;
$Data = '';
$Fieldname = '';
$Fieldvalue = '';
@@ -3245,7 +3245,7 @@ class ApsParser
//return if parse of xml file has failed
if($Xml == false)return false;
$Icon = './images/Classic/default.png';
$Icon = 'templates/'.$theme.'/img/default.png';
$this->aps_version = isset($Xml->attributes()->version) ? (string)$Xml->attributes()->version : '1.0';
@@ -3378,7 +3378,7 @@ class ApsParser
if($license->text->name)$Temp = $license->text->name . '<br/>';
$Temp.= '<form name="license" action="#"><textarea name="text" rows="10" cols="70">';
$FileContent = file_get_contents('./packages/' . $Row['Path'] . '/license.txt');
$Temp.= htmlentities($FileContent, ENT_QUOTES, 'ISO-8859-1');
$Temp.= htmlentities($FileContent, ENT_QUOTES, 'UTF-8');
$Temp.= '</textarea></form>';
$Fieldname = $lng['aps']['license'];
$Fieldvalue = $Temp;
@@ -3460,7 +3460,7 @@ class ApsParser
*/
private function InfoBox($Message, $Type = 0)
{
global $lng, $filename, $s, $page, $action;
global $lng, $filename, $s, $page, $action, $theme;
//shows a box with informations
eval("echo \"" . getTemplate("aps/infobox") . "\";");
}

View File

@@ -106,7 +106,7 @@ class db
if(!$this->link_id)
{
//try to connect with no password an change it afterwards. only for root user
//try to connect with no password and change it afterwards. only for root user
if($this->user == 'root')
{
@@ -134,11 +134,8 @@ class db
$this->showerror('Trying to use database ' . $this->database . ' failed, exiting');
}
}
/*
* this is not for 0.9.x
*/
//mysql_query("SET NAMES utf8", $this->link_id);
//mysql_query("SET CHARACTER SET utf8", $this->link_id);
mysql_set_charset('utf8', $this->link_id);
}
/**
@@ -189,7 +186,7 @@ class db
function query($query_str, $unbuffered = false, $suppress_error = false)
{
global $numbqueries;
global $numbqueries, $theme;
if (!mysql_ping($this->link_id))
{
@@ -349,7 +346,7 @@ class db
function showerror($errormsg, $mysqlActive = true)
{
global $filename;
global $filename, $theme;
$text = 'MySQL - Error: ' . str_replace("\n", "\t", $errormsg);
if($mysqlActive)

View File

@@ -26,7 +26,7 @@ class htmlform
public static function genHTMLForm($data = array())
{
global $lng;
global $lng, $theme;
$nob = false;
self::$_form = '';

View File

@@ -421,6 +421,8 @@ class paging
function getHtmlArrowCode($baseurl, $field = '')
{
global $theme;
if($field != ''
&& isset($this->fields[$field]))
{

View File

@@ -2317,4 +2317,4 @@ class phpmailerException extends Exception {
return $errorMsg;
}
}
?>
?>

View File

@@ -89,7 +89,7 @@ class ticket
// initialize purifier
require_once dirname(dirname(__FILE__)).'/htmlpurifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'ISO-8859-1'); // for now
$config->set('Core.Encoding', 'UTF-8'); //htmlpurifier uses utf-8 anyway as default
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$this->_purifier = new HTMLPurifier($config);
@@ -260,7 +260,7 @@ class ticket
public function sendMail($customerid = - 1, $template_subject = null, $default_subject = null, $template_body = null, $default_body = null)
{
global $mail;
global $mail, $theme;
// Some checks are to be made here in the future
@@ -680,13 +680,13 @@ class ticket
private function convertLatin1ToHtml($str)
{
$html_entities = array (
"<EFBFBD>" => "&Auml;",
"<EFBFBD>" => "&auml;",
"<EFBFBD>" => "&Ouml;",
"<EFBFBD>" => "&ouml;",
"<EFBFBD>" => "&Uuml;",
"<EFBFBD>" => "&uuml;",
"<EFBFBD>" => "&szlig;"
"Ä" => "&Auml;",
"ä" => "&auml;",
"Ö" => "&Ouml;",
"ö" => "&ouml;",
"Ü" => "&Uuml;",
"ü" => "&uuml;",
"ß" => "&szlig;"
/*
* @TODO continue this table for all the special-characters
*/

View File

@@ -44,7 +44,7 @@ function includeFunctions($dirname)
function __autoload($classname)
{
global $libdirname;
global $libdirname, $theme;
findIncludeClass($libdirname . '/classes/', $classname);
}

View File

@@ -28,7 +28,7 @@
*/
function domainHasApsInstances($domainid = 0)
{
global $db, $settings;
global $db, $settings, $theme;
if($settings['aps']['aps_active'] == '1')
{

View File

@@ -19,7 +19,7 @@
function correctMysqlUsers($mysql_access_host_array)
{
global $db, $settings, $sql, $sql_root;
global $db, $settings, $sql, $sql_root, $theme;
foreach($sql_root as $mysql_server => $mysql_server_details)
{

View File

@@ -24,7 +24,7 @@
*/
function maildirExists($result = null)
{
global $settings;
global $settings, $theme;
if(is_array($result))
{

View File

@@ -26,7 +26,7 @@
*/
function makeChownWithNewStats($row)
{
global $settings;
global $settings, $theme;
// get correct user
if($settings['system']['mod_fcgid'] == '1' && isset($row['deactivated']) && $row['deactivated'] == '0')

View File

@@ -34,7 +34,7 @@
function makePathfield($path, $uid, $gid, $fieldType, $value = '', $dom = false)
{
global $lng;
global $lng, $theme;
$value = str_replace($path, '', $value);
$field = array();

View File

@@ -33,7 +33,7 @@
function safe_exec($exec_string, &$return_value = false)
{
global $settings;
global $settings, $theme;
//
// define allowed system commands

View File

@@ -27,7 +27,7 @@
*/
function storeDefaultIndex($loginname = null, $destination = null, $logger = null, $force = false)
{
global $db, $settings, $pathtophpfiles;
global $db, $settings, $pathtophpfiles, $theme;
if ($force
|| (int)$settings['system']['store_index_file_subs'] == 1

View File

@@ -17,7 +17,7 @@
function buildFormEx($form, $part = '')
{
global $settings;
global $settings, $theme;
$fields = '';
if(validateFormDefinition($form))

View File

@@ -19,7 +19,7 @@
function getFormFieldOutput($fieldname, $fielddata)
{
global $settings;
global $settings, $theme;
$returnvalue = '';
if(is_array($fielddata) && isset($fielddata['type']) && $fielddata['type'] != '' && function_exists('getFormFieldOutput' . ucfirst($fielddata['type'])))

View File

@@ -19,14 +19,14 @@
function getFormGroupOutput($groupname, $groupdetails)
{
global $lng;
global $lng, $theme;
eval("\$group = \"" . getTemplate("settings/settings_group") . "\";");
return $group;
}
function getFormOverviewGroupOutput($groupname, $groupdetails)
{
global $lng, $settings, $filename, $s;
global $lng, $settings, $filename, $s, $theme;
$group = '';
$title = $groupdetails['title'];

View File

@@ -26,7 +26,7 @@
*/
function correctErrorDocument($errdoc = null)
{
global $settings, $idna_convert;
global $settings, $idna_convert, $theme;
if($errdoc !== null && $errdoc != '')
{

View File

@@ -24,7 +24,7 @@
*/
function getNextCronjobs()
{
global $db;
global $db, $theme;
$query = "SELECT `id`, `cronfile` FROM `".TABLE_PANEL_CRONRUNS."` WHERE `interval` <> '0' AND `isactive` = '1' AND (";
@@ -60,7 +60,7 @@ function getNextCronjobs()
function includeCronjobs($debugHandler, $pathtophpfiles)
{
global $settings;
global $settings, $theme;
$cronjobs = getNextCronjobs();
@@ -84,7 +84,7 @@ function includeCronjobs($debugHandler, $pathtophpfiles)
function getIntervalOptions()
{
global $db, $lng, $cronlog;
global $db, $lng, $cronlog, $theme;
$query = "SELECT DISTINCT `interval` FROM `" . TABLE_PANEL_CRONRUNS . "` ORDER BY `interval` ASC;";
$result = $db->query($query);
@@ -110,7 +110,7 @@ function getIntervalOptions()
function getCronjobsLastRun()
{
global $db, $lng;
global $db, $lng, $theme;
$query = "SELECT `lastrun`, `desc_lng_key` FROM `".TABLE_PANEL_CRONRUNS."` WHERE `isactive` = '1' ORDER BY `cronfile` ASC";
$result = $db->query($query);
@@ -135,7 +135,7 @@ function getCronjobsLastRun()
function toggleCronStatus($module = null, $isactive = 0)
{
global $db;
global $db, $theme;
if($isactive != 1) {
$isactive = 0;
@@ -148,7 +148,7 @@ function toggleCronStatus($module = null, $isactive = 0)
function getOutstandingTasks()
{
global $db, $lng;
global $db, $lng, $theme;
$query = "SELECT * FROM `".TABLE_PANEL_TASKS."` ORDER BY `type` ASC";
$result = $db->query($query);

View File

@@ -29,7 +29,7 @@
function createAWStatsConf($logFile, $siteDomain, $hostAliases, $customerDocroot, $awstats_params = array())
{
global $pathtophpfiles, $settings;
global $pathtophpfiles, $settings, $theme;
// Generation header

View File

@@ -27,7 +27,7 @@
*/
function customerHasPerlEnabled($cid = 0)
{
global $db;
global $db, $theme;
if($cid > 0)
{

View File

@@ -25,7 +25,7 @@
*/
function domainHasMainSubDomains($id = 0)
{
global $db;
global $db, $theme;
$sql = "SELECT COUNT(`id`) as `mainsubs` FROM `".TABLE_PANEL_DOMAINS."` WHERE `ismainbutsubto` = '".(int)$id."'";
$result = $db->query_first($sql);
@@ -47,7 +47,7 @@ function domainHasMainSubDomains($id = 0)
*/
function domainMainToSubExists($id = 0)
{
global $db;
global $db, $theme;
$sql = "SELECT `id` FROM `".TABLE_PANEL_DOMAINS."` WHERE `id` = '".(int)$id."'";
$result = $db->query_first($sql);

View File

@@ -21,7 +21,7 @@
function generatePassword()
{
global $db, $settings;
global $db, $settings, $theme;
return substr(md5(uniqid(microtime(), 1)), 24, 10);
}

View File

@@ -19,7 +19,7 @@
function getAdmins($limit_resource = '')
{
global $db;
global $db, $theme;
$additional_conditions = '';
$additional_conditions_array = array();

View File

@@ -19,7 +19,7 @@
function getCustomerDetail($customerid, $varname)
{
global $db;
global $db, $theme;
$query = 'SELECT `' . $db->escape($varname) . '` FROM `' . TABLE_PANEL_CUSTOMERS . '` WHERE `customerid` = \'' . (int)$customerid . '\'';
$customer = $db->query_first($query);

View File

@@ -9,10 +9,10 @@
*/
function getCustomerIdByDomain($domain = null)
{
global $db;
global $db, $theme;
$result = $db->query_first("SELECT `customerid` FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `domain` = '".$domain."'");
if(is_array($result)
if(is_array($result)
&& isset($result['customerid'])
) {
return $result['customerid'];

View File

@@ -19,7 +19,7 @@
function getCustomers($limit_resource = '')
{
global $db;
global $db, $theme;
$additional_conditions = '';
$additional_conditions_array = array();

View File

@@ -17,7 +17,7 @@
function getFilesystemQuota()
{
global $settings;
global $settings, $theme;
if ($settings['system']['diskquota_enabled'])
{
# Fetch all quota in the desired partition

View File

@@ -19,7 +19,7 @@
function getIpAddresses()
{
global $db;
global $db, $theme;
$query = 'SELECT `id`, `ip`, `port` FROM `' . TABLE_PANEL_IPSANDPORTS . '` ORDER BY `ip` ASC, `port` ASC';
$result = $db->query($query);

View File

@@ -19,7 +19,7 @@
function getIpPortCombinations($ssl = null)
{
global $db;
global $db, $theme;
$additional_conditions = '';
$additional_conditions_array = array();

View File

@@ -19,7 +19,7 @@
function getLanguages()
{
global $db;
global $db, $theme;
$query = 'SELECT * FROM `' . TABLE_PANEL_LANGUAGE . '` ';
$result = $db->query($query);

View File

@@ -9,10 +9,10 @@
*/
function getLoginNameByUid($uid = null)
{
global $db;
global $db, $theme;
$result = $db->query_first("SELECT `loginname` FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `guid` = '".(int)$uid."'");
if(is_array($result)
if(is_array($result)
&& isset($result['loginname'])
) {
return $result['loginname'];

View File

@@ -22,7 +22,7 @@
*/
function getPhpConfigs()
{
global $db;
global $db, $theme;
$query = 'SELECT * FROM `' . TABLE_PANEL_PHPCONFIGS . '` ';
$result = $db->query($query, false, true);

View File

@@ -25,10 +25,10 @@
*/
function getServerId() {
global $server_id;
global $server_id, $theme;
if(isset($server_id)
&& is_numeric($server_id)
if(isset($server_id)
&& is_numeric($server_id)
&& $server_id > 0
) {
return $server_id;

View File

@@ -19,7 +19,7 @@
function getSessionUserDetail($varname)
{
global $userinfo;
global $userinfo, $theme;
if(isset($userinfo[$varname]))
{

View File

@@ -29,7 +29,7 @@
function inserttask($type, $param1 = '', $param2 = '', $param3 = '', $param4 = '')
{
global $db, $settings;
global $db, $settings, $theme;
if($type == '1'
|| $type == '3'

View File

@@ -26,7 +26,7 @@
*/
function isCustomerStdSubdomain($did = 0)
{
global $db;
global $db, $theme;
if($did > 0)
{

View File

@@ -20,7 +20,7 @@
function loadConfigArrayDir()
{
// Workaround until we use gettext
global $lng;
global $lng, $theme;
// we now use dynamic function parameters
// so we can read from more than one directory

View File

@@ -28,7 +28,7 @@
*/
function openRootDB($debugHandler = false, $lockfile = false)
{
global $db_root;
global $db_root, $theme;
require dirname(dirname(dirname(__FILE__))).'/userdata.inc.php';
@@ -68,6 +68,6 @@ function openRootDB($debugHandler = false, $lockfile = false)
function closeRootDB()
{
global $db_root;
global $db_root, $theme;
if(isset($db_root)) unset($db_root);
}

View File

@@ -28,7 +28,7 @@
function updateCounters($returndebuginfo = false)
{
global $db;
global $db, $theme;
$returnval = array();
if($returndebuginfo === true)

View File

@@ -27,7 +27,7 @@
*/
function updateToVersion($new_version = null)
{
global $db, $settings;
global $db, $settings, $theme;
if($new_version !== null && $new_version != '')
{
@@ -48,7 +48,7 @@ function updateToVersion($new_version = null)
*/
function isFroxlor()
{
global $settings;
global $settings, $theme;
if(isset($settings['panel']['frontend'])
&& $settings['panel']['frontend'] == 'froxlor')
@@ -70,7 +70,7 @@ function isFroxlor()
*/
function isFroxlorVersion($to_check = null)
{
global $settings;
global $settings, $theme;
if($settings['panel']['frontend'] == 'froxlor'
&& $settings['panel']['version'] == $to_check)
@@ -92,7 +92,7 @@ function isFroxlorVersion($to_check = null)
*/
function hasUpdates($to_check = null)
{
global $settings;
global $settings, $theme;
if(!isset($settings['panel']['version'])
|| $settings['panel']['version'] != $to_check)
@@ -115,7 +115,7 @@ function hasUpdates($to_check = null)
*/
function showUpdateStep($task = null, $needs_status = true)
{
global $updatelog, $filelog;
global $updatelog, $filelog, $theme;
// output
echo $task;
@@ -141,7 +141,7 @@ function showUpdateStep($task = null, $needs_status = true)
*/
function lastStepStatus($status = -1, $message = '')
{
global $updatelog, $filelog;
global $updatelog, $filelog, $theme;
switch($status)
{

View File

@@ -22,7 +22,7 @@
*/
function getRedirectCodesArray()
{
global $db;
global $db, $theme;
$sql = "SELECT * FROM `".TABLE_PANEL_REDIRECTCODES."` WHERE `enabled` = '1' ORDER BY `id` ASC";
$result = $db->query($sql);
@@ -44,7 +44,7 @@ function getRedirectCodesArray()
*/
function getRedirectCodes()
{
global $db, $lng;
global $db, $lng, $theme;
$sql = "SELECT * FROM `".TABLE_PANEL_REDIRECTCODES."` WHERE `enabled` = '1' ORDER BY `id` ASC";
$result = $db->query($sql);
@@ -68,7 +68,7 @@ function getRedirectCodes()
*/
function getDomainRedirectCode($domainid = 0)
{
global $db;
global $db, $theme;
$code = '';
if($domainid > 0)
@@ -98,7 +98,7 @@ function getDomainRedirectCode($domainid = 0)
*/
function getDomainRedirectId($domainid = 0)
{
global $db;
global $db, $theme;
$code = 1;
if($domainid > 0)
@@ -128,10 +128,10 @@ function getDomainRedirectId($domainid = 0)
*/
function addRedirectToDomain($domainid = 0, $redirect = 1)
{
global $db;
global $db, $theme;
if($domainid > 0)
{
$db->query("INSERT INTO `".TABLE_PANEL_DOMAINREDIRECTS."`
$db->query("INSERT INTO `".TABLE_PANEL_DOMAINREDIRECTS."`
SET `rid` = '".(int)$redirect."', `did` = '".(int)$domainid."'");
}
}
@@ -147,7 +147,7 @@ function addRedirectToDomain($domainid = 0, $redirect = 1)
*/
function updateRedirectOfDomain($domainid = 0, $redirect = false)
{
global $db;
global $db, $theme;
if($redirect == false)
{
@@ -158,7 +158,7 @@ function updateRedirectOfDomain($domainid = 0, $redirect = false)
{
$db->query("DELETE FROM `".TABLE_PANEL_DOMAINREDIRECTS."`
WHERE `did` = '".(int)$domainid."'");
$db->query("INSERT INTO `".TABLE_PANEL_DOMAINREDIRECTS."`
$db->query("INSERT INTO `".TABLE_PANEL_DOMAINREDIRECTS."`
SET `rid` = '".(int)$redirect."', `did` = '".(int)$domainid."'");
}
}
}

View File

@@ -34,7 +34,7 @@
function ask_yesno($text, $yesfile, $params = array(), $targetname = '', $back_nr = 1)
{
global $userinfo, $db, $s, $header, $footer, $lng;
global $userinfo, $db, $s, $header, $footer, $lng, $theme;
$hiddenparams = '';
@@ -58,7 +58,7 @@ function ask_yesno($text, $yesfile, $params = array(), $targetname = '', $back_n
function ask_yesno_withcheckbox($text, $chk_text, $yesfile, $params = array(), $targetname = '', $show_checkbox = true)
{
global $userinfo, $db, $s, $header, $footer, $lng;
global $userinfo, $db, $s, $header, $footer, $lng, $theme;
$hiddenparams = '';

View File

@@ -28,6 +28,8 @@
function buildNavigation($navigation, $userinfo)
{
global $theme;
$returnvalue = '';
foreach($navigation as $box)

View File

@@ -32,7 +32,7 @@
function makeyesno($name, $yesvalue, $novalue = '', $yesselected = '', $disabled = false)
{
global $lng;
global $lng, $theme;
if($disabled) {
$d = ' disabled="disabled"';

View File

@@ -38,7 +38,7 @@
function redirectTo($destination, $get_variables = array(), $isRelative = false)
{
global $s;
global $s, $theme;
if(is_array($get_variables))
{

View File

@@ -28,7 +28,7 @@
function standard_error($errors = '', $replacer = '')
{
global $db, $userinfo, $s, $header, $footer, $lng;
global $db, $userinfo, $s, $header, $footer, $lng, $theme;
$_SESSION['requestData'] = $_POST;
$replacer = htmlentities($replacer);

View File

@@ -27,7 +27,7 @@
function standard_success($success_message = '', $replacer = '', $params = array())
{
global $s, $header, $footer, $lng;
global $s, $header, $footer, $lng, $theme;
if(isset($lng['success'][$success_message]))
{

View File

@@ -31,7 +31,7 @@
* @author Florian Lippert <flo@syscp.org>
*/
function html_entity_decode_array($subject, $fields = '', $complete = false, $quote_style = ENT_COMPAT, $charset = 'ISO-8859-1')
function html_entity_decode_array($subject, $fields = '', $complete = false, $quote_style = ENT_COMPAT, $charset = 'UTF-8')
{
if(is_array($subject))
{

View File

@@ -27,9 +27,21 @@
function html_entity_decode_complete($string)
{
while($string != html_entity_decode($string))
global $theme;
if($theme == 'Classic')
{
$string = html_entity_decode($string);
while($string != html_entity_decode($string))
{
$string = html_entity_decode($string);
}
}
else
{
while($string != html_entity_decode($string, ENT_COMPAT | ENT_HTML5, 'UTF-8'))
{
$string = html_entity_decode($string, ENT_COMPAT | ENT_HTML5, 'UTF-8');
}
}
return $string;

View File

@@ -29,7 +29,7 @@
* @author Florian Lippert <flo@syscp.org>
*/
function htmlentities_array($subject, $fields = '', $quote_style = ENT_QUOTES, $charset = 'ISO-8859-1')
function htmlentities_array($subject, $fields = '', $quote_style = ENT_QUOTES, $charset = 'UTF-8')
{
if(is_array($subject))
{

View File

@@ -19,7 +19,7 @@
function getSetting($settinggroup, $varname)
{
global $settings;
global $settings, $theme;
if(isset($settings[$settinggroup]) && is_array($settings[$settinggroup]) && isset($settings[$settinggroup][$varname]))
{
return $settings[$settinggroup][$varname];

View File

@@ -19,7 +19,7 @@
function saveSetting($settinggroup, $varname, $newvalue)
{
global $db;
global $db, $theme;
$query = 'UPDATE `' . TABLE_PANEL_SETTINGS . '` SET `value` = \'' . $db->escape($newvalue) . '\' WHERE `settinggroup` = \'' . $db->escape($settinggroup) . '\' AND `varname`=\'' . $db->escape($varname) . '\'';
return $db->query($query);
}

View File

@@ -23,7 +23,7 @@ function storeSettingDefaultIp($fieldname, $fielddata, $newfieldvalue)
if($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'defaultip')
{
global $db;
global $db, $theme;
$customerstddomains_result = $db->query('SELECT `standardsubdomain` FROM `' . TABLE_PANEL_CUSTOMERS . '` WHERE `standardsubdomain` <> \'0\'');
$ids = array();

View File

@@ -23,7 +23,7 @@ function storeSettingHostname($fieldname, $fielddata, $newfieldvalue)
if($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'system' && isset($fielddata['varname']) && $fielddata['varname'] == 'hostname')
{
global $db, $idna_convert;
global $db, $idna_convert, $theme;
$newfieldvalue = $idna_convert->encode($newfieldvalue);
$customerstddomains_result = $db->query('SELECT `standardsubdomain` FROM `' . TABLE_PANEL_CUSTOMERS . '` WHERE `standardsubdomain` <> \'0\'');

View File

@@ -0,0 +1,43 @@
<?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 Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Functions
*
*/
function storeSettingResetCatchall($fieldname, $fielddata, $newfieldvalue)
{
$returnvalue = storeSettingField($fieldname, $fielddata, $newfieldvalue);
if($returnvalue !== false
&& is_array($fielddata)
&& isset($fielddata['settinggroup'])
&& $fielddata['settinggroup'] == 'catchall'
&& isset($fielddata['varname'])
&& $fielddata['varname'] == 'catchall_enabled'
&& $newfieldvalue == '0')
{
global $db;
$result = $db->query("SELECT `id`, `email`, `email_full`, `iscatchall` FROM `" . TABLE_MAIL_VIRTUAL . "` WHERE `iscatchall`='1'");
while($result_row = $db->fetch_array($result))
{
$db->query("UPDATE `" . TABLE_MAIL_VIRTUAL . "` SET `email` = '" . $db->escape($result_row['email_full']) . "', `iscatchall` = '0' WHERE `id`='" . (int)$result_row['id'] . "'");
}
}
return $returnvalue;
}
?>

View File

@@ -31,7 +31,7 @@
*/
function checkLastGuid()
{
global $log, $cronlog, $db, $settings;
global $log, $cronlog, $db, $settings, $theme;
$mylog = null;
if (isset($cronlog) && $cronlog instanceof FroxlorLogger) {

View File

@@ -17,7 +17,7 @@
function checkFcgidPhpFpm($fieldname, $fielddata, $newfieldvalue, $allnewfieldvalues)
{
global $settings;
global $settings, $theme;
$returnvalue = array(FORMFIELDS_PLAUSIBILITY_CHECK_OK);

View File

@@ -17,7 +17,7 @@
function checkPathConflicts($fieldname, $fielddata, $newfieldvalue, $allnewfieldvalues)
{
global $settings;
global $settings, $theme;
if((int)$settings['system']['mod_fcgid'] == 1)
{
/**

View File

@@ -19,7 +19,7 @@
function checkUsername($fieldname, $fielddata, $newfieldvalue, $allnewfieldvalues)
{
global $settings;
global $settings, $theme;
if(!isset($allnewfieldvalues['customer_mysqlprefix']))
{
$allnewfieldvalues['customer_mysqlprefix'] = $settings['customer']['mysqlprefix'];

View File

@@ -17,7 +17,7 @@
function setCycleOfCronjob($fieldname, $fielddata, $newfieldvalue, $allnewfieldvalues)
{
global $settings, $db;
global $settings, $db, $theme;
switch($newfieldvalue)
{

View File

@@ -33,7 +33,7 @@
function validate($str, $fieldname, $pattern = '', $lng = '', $emptydefault = array())
{
global $log;
global $log, $theme;
if(!is_array($emptydefault))
{

View File

@@ -28,7 +28,7 @@
*/
function validatePassword($password = null)
{
global $settings;
global $settings, $theme;
if ($settings['panel']['password_min_length'] > 0) {
$password = validate(

View File

@@ -28,7 +28,7 @@
function validateUrl($url)
{
global $idna_convert;
global $idna_convert, $theme;
if(strtolower(substr($url, 0, 7)) != "http://"
&& strtolower(substr($url, 0, 8)) != "https://")

View File

@@ -17,7 +17,7 @@
*
*/
header("Content-Type: text/html; charset=iso-8859-1");
header("Content-Type: text/html; charset=UTF-8");
// prevent Froxlor pages from being cached
header("Cache-Control: no-store, no-cache, must-revalidate");
@@ -67,27 +67,27 @@ unset($value);
unset($key);
$filename = basename($_SERVER['PHP_SELF']);
if(!file_exists('./lib/userdata.inc.php'))
if(!file_exists('lib/userdata.inc.php'))
{
$config_hint = file_get_contents('./templates/Froxlor/misc/configurehint.tpl');
$config_hint = file_get_contents('templates/Froxlor/misc/configurehint.tpl');
die($config_hint);
}
if(!is_readable('./lib/userdata.inc.php'))
if(!is_readable('lib/userdata.inc.php'))
{
die('You have to make the file "./lib/userdata.inc.php" readable for the http-process!');
die('You have to make the file "lib/userdata.inc.php" readable for the http-process!');
}
/**
* Includes the Usersettings eg. MySQL-Username/Passwort etc.
*/
require ('./lib/userdata.inc.php');
require ('lib/userdata.inc.php');
if(!isset($sql)
|| !is_array($sql))
{
$config_hint = file_get_contents('./templates/Froxlor/misc/configurehint.tpl');
$config_hint = file_get_contents('templates/Froxlor/misc/configurehint.tpl');
die($config_hint);
}
@@ -103,13 +103,13 @@ if(isset($sql['root_user']) && isset($sql['root_password']) && (!isset($sql_root
* Includes the Functions
*/
require ('./lib/functions.php');
require ('lib/functions.php');
/**
* Includes the MySQL-Tabledefinitions etc.
*/
require ('./lib/tables.inc.php');
require ('lib/tables.inc.php');
/**
* Includes the MySQL-Connection-Class
@@ -177,7 +177,7 @@ if(get_magic_quotes_gpc())
* Selects settings from MySQL-Table
*/
$settings_data = loadConfigArrayDir('./actions/admin/settings/');
$settings_data = loadConfigArrayDir('actions/admin/settings/');
$settings = loadSettings($settings_data, $db);
/**
@@ -363,8 +363,9 @@ if(isset($userinfo['theme']) && $userinfo['theme'] != $theme)
/*
* check for custom header-graphic
*/
$hl_path = 'images/'.$theme;
$hl_path = 'templates/'.$theme.'/assets/img';
$header_logo = $hl_path.'/logo.png';
if(file_exists($hl_path.'/logo_custom.png')) {
$header_logo = $hl_path.'/logo_custom.png';
}
@@ -448,7 +449,7 @@ if(AREA == 'admin' || AREA == 'customer')
}
else
{
$navigation_data = loadConfigArrayDir('./lib/navigation/');
$navigation_data = loadConfigArrayDir('lib/navigation/');
$navigation = buildNavigation($navigation_data[AREA], $userinfo);
}
unset($navigation_data);
@@ -499,6 +500,8 @@ if($page == '')
* Initialize the mailingsystem
*/
$mail = new PHPMailer(true);
$mail->CharSet = "UTF-8";
if(PHPMailer::ValidateAddress($settings['panel']['adminmail']) !== false)
{
// set return-to address and custom sender-name, see #76

View File

@@ -73,6 +73,6 @@ define('PACKAGE_ENABLED', 2);
// VERSION INFO
$version = '0.9.28-svn3';
$version = '0.9.28-svn5';
$dbversion = '2';
$branding = '';

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -27,13 +27,13 @@ $lng['panel']['create'] = 'opret';
$lng['panel']['save'] = 'gem';
$lng['panel']['yes'] = 'ja';
$lng['panel']['no'] = 'nej';
$lng['panel']['emptyfornochanges'] = 'tom: ingen &aelig;ndringer';
$lng['panel']['emptyfornochanges'] = 'tom: ingen ændringer';
$lng['panel']['emptyfordefault'] = 'tom: standart';
$lng['panel']['path'] = 'Sti';
$lng['panel']['toggle'] = 'Skift';
$lng['panel']['next'] = 'n&aelig;ste';
$lng['panel']['next'] = 'næste';
$lng['panel']['dirsmissing'] = 'Mappe findes ikke!';
$lng['panel']['translator'] = 'Overs&aelig;ttelse af';
$lng['panel']['translator'] = 'Oversættelse af';
/**
* Login
@@ -68,24 +68,24 @@ $lng['customer']['emails'] = 'eMail-Adresser';
$lng['customer']['accounts'] = 'eMail-Kontoer';
$lng['customer']['forwarders'] = 'eMail-Videresendere';
$lng['customer']['ftps'] = 'FTP-Accounts';
$lng['customer']['subdomains'] = 'Sub-Dom&aelig;ne(r)';
$lng['customer']['domains'] = 'Dom&aelig;ne(r)';
$lng['customer']['unlimited'] = 'ubegr&aelig;nset';
$lng['customer']['subdomains'] = 'Sub-Domæne(r)';
$lng['customer']['domains'] = 'Domæne(r)';
$lng['customer']['unlimited'] = 'ubegrænset';
/**
* Customermenue
*/
$lng['menue']['main']['main'] = 'Hjem';
$lng['menue']['main']['changepassword'] = '&aelig;ndre kodeord';
$lng['menue']['main']['changelanguage'] = '&aelig;ndre sprog';
$lng['menue']['main']['changepassword'] = 'ændre kodeord';
$lng['menue']['main']['changelanguage'] = 'ændre sprog';
$lng['menue']['email']['email'] = 'eMail';
$lng['menue']['email']['emails'] = 'Adresser';
$lng['menue']['email']['webmail'] = 'WebMail';
$lng['menue']['mysql']['mysql'] = 'MySQL';
$lng['menue']['mysql']['databases'] = 'Databaser';
$lng['menue']['mysql']['phpmyadmin'] = 'phpMyAdmin';
$lng['menue']['domains']['domains'] = 'Dom&aelig;ner';
$lng['menue']['domains']['domains'] = 'Domæner';
$lng['menue']['domains']['settings'] = 'Indstillinger';
$lng['menue']['ftp']['ftp'] = 'FTP';
$lng['menue']['ftp']['accounts'] = 'Kontoer';
@@ -107,33 +107,33 @@ $lng['index']['accountdetails'] = 'Konto Detaljer';
$lng['changepassword']['old_password'] = 'Old password';
$lng['changepassword']['new_password'] = 'New password';
$lng['changepassword']['new_password_confirm'] = 'Nyt kodeord (bekr&aelig;ft)';
$lng['changepassword']['new_password_ifnotempty'] = 'Nyt kodeord (tom = ingen &aelig;ndringer)';
$lng['changepassword']['also_change_ftp'] = ' skift ogs&aring; kodeordet for hoved-ftp kontoen';
$lng['changepassword']['new_password_confirm'] = 'Nyt kodeord (bekræft)';
$lng['changepassword']['new_password_ifnotempty'] = 'Nyt kodeord (tom = ingen ændringer)';
$lng['changepassword']['also_change_ftp'] = ' skift også kodeordet for hoved-ftp kontoen';
/**
* Domains
*/
$lng['domains']['description'] = 'Her kan du oprette dom&aelig;ner og subdom&aelig;ner i systemet, og &aelig;ndre de stier som er tilknyttet<br />Det tager et stykke tid for &aelig;ndringer at blive opdateret i systemet.';
$lng['domains']['domainsettings'] = 'Dom&aelig;ne indstillinger';
$lng['domains']['domainname'] = 'Dom&aelig;ne navn';
$lng['domains']['subdomain_add'] = 'Opr&aelig;t suddom&aelig;ne';
$lng['domains']['subdomain_edit'] = 'Editer (sub)dom&aelig;ne';
$lng['domains']['wildcarddomain'] = 'Opret som wildcarddom&aelig;ne?';
$lng['domains']['aliasdomain'] = 'Dom&aelig;ne alias';
$lng['domains']['noaliasdomain'] = 'Intet dom&aelig;ne alias';
$lng['domains']['description'] = 'Her kan du oprette domæner og subdomæner i systemet, og ændre de stier som er tilknyttet<br />Det tager et stykke tid for ændringer at blive opdateret i systemet.';
$lng['domains']['domainsettings'] = 'Domæne indstillinger';
$lng['domains']['domainname'] = 'Domæne navn';
$lng['domains']['subdomain_add'] = 'Opræt suddomæne';
$lng['domains']['subdomain_edit'] = 'Editer (sub)domæne';
$lng['domains']['wildcarddomain'] = 'Opret som wildcarddomæne?';
$lng['domains']['aliasdomain'] = 'Domæne alias';
$lng['domains']['noaliasdomain'] = 'Intet domæne alias';
/**
* eMails
*/
$lng['emails']['description'] = 'Her kan du oprette og &aelig;ndre eMail adresser og kontoer.<br />eMail modtages af de adresser du opretter. For at kunne hente eMail skal du oprette en konto til adressen, dette g&oslash;res ved at v&aelig;lge &quot;opret konto&quot; efter du har oprettet eMail adressen.<br />Dit email program skal konfigureres som f&oslash;lger: (Teksk i <i>italisk</i> skrift skal erstattes med de data du taster ind)<br />Hostname: <b><i>Dom&aelig;nenavn</i></b><br />Bruger: <b><i>Konto navn / eMail adresse</i></b><br />Kodeord: <b><i>kodeordet du har valgt</i></b>';
$lng['emails']['description'] = 'Her kan du oprette og ændre eMail adresser og kontoer.<br />eMail modtages af de adresser du opretter. For at kunne hente eMail skal du oprette en konto til adressen, dette gøres ved at vælge "opret konto" efter du har oprettet eMail adressen.<br />Dit email program skal konfigureres som følger: (Teksk i <i>italisk</i> skrift skal erstattes med de data du taster ind)<br />Hostname: <b><i>Domænenavn</i></b><br />Bruger: <b><i>Konto navn / eMail adresse</i></b><br />Kodeord: <b><i>kodeordet du har valgt</i></b>';
$lng['emails']['emailaddress'] = 'eMail-adresse';
$lng['emails']['emails_add'] = 'Opret eMail-adresse';
$lng['emails']['emails_edit'] = 'Editer eMail-adresse';
$lng['emails']['catchall'] = 'Fang-Alt';
$lng['emails']['iscatchall'] = 'Brug som &quot;Fang-Alt&quot; adresse?';
$lng['emails']['iscatchall'] = 'Brug som "Fang-Alt" adresse?';
$lng['emails']['account'] = 'Konto';
$lng['emails']['account_add'] = 'Opret konto';
$lng['emails']['account_delete'] = 'Slet konto';
@@ -146,7 +146,7 @@ $lng['emails']['forwarder_add'] = 'Opret videresender';
* FTP
*/
$lng['ftp']['description'] = 'Her kan du oprette og &aelig;ndre dine FTP kontoer.<br />&aelig;ndringer bliver gennemf&oslash;rt &oslash;jeblikeligt, og kontoerne kan straks tages i brug.';
$lng['ftp']['description'] = 'Her kan du oprette og ændre dine FTP kontoer.<br />ændringer bliver gennemført øjeblikeligt, og kontoerne kan straks tages i brug.';
$lng['ftp']['account_add'] = 'Opret konto';
/**
@@ -161,12 +161,12 @@ $lng['mysql']['database_create'] = 'Opret database';
* Extras
*/
$lng['extras']['description'] = 'Her kan du udf&oslash;re ekstra indstillinger, for eksempel kodeords beskyttelse af mapper.<br />Det tager et stykke tid for &aelig;ndringer at blive opdateret i systemet.';
$lng['extras']['directoryprotection_add'] = 'Tilf&oslash;j mappe beskyttelse';
$lng['extras']['description'] = 'Her kan du udføre ekstra indstillinger, for eksempel kodeords beskyttelse af mapper.<br />Det tager et stykke tid for ændringer at blive opdateret i systemet.';
$lng['extras']['directoryprotection_add'] = 'Tilføj mappe beskyttelse';
$lng['extras']['view_directory'] = 'vis mappe indhold';
$lng['extras']['pathoptions_add'] = 'tilf&oslash;j regler for sti';
$lng['extras']['pathoptions_add'] = 'tilføj regler for sti';
$lng['extras']['directory_browsing'] = 'vis mappe indhold?';
$lng['extras']['pathoptions_edit'] = '&aelig;ndre regler for sti';
$lng['extras']['pathoptions_edit'] = 'ændre regler for sti';
$lng['extras']['error404path'] = '404';
$lng['extras']['error403path'] = '403';
$lng['extras']['error500path'] = '500';
@@ -182,21 +182,21 @@ $lng['extras']['errordocument401path'] = 'URL til ErrorDocument 401';
$lng['error']['error'] = 'Fejl';
$lng['error']['directorymustexist'] = 'Mappen %s eksisterer ikke. Du skal oprette den via din FTP-klient.';
$lng['error']['filemustexist'] = 'Filen %s skal v&aelig;re oprettet.';
$lng['error']['filemustexist'] = 'Filen %s skal være oprettet.';
$lng['error']['allresourcesused'] = 'Du har brugt dine tilladte ressourcer.';
$lng['error']['domains_cantdeletemaindomain'] = 'Du kan ikke slette et eMail-dom&aelig;ne.';
$lng['error']['domains_canteditdomain'] = 'Du kan ikke lave &aelig;ndringer i dette dom&aelig;ne, da det er blevet l&aring;st af administratoren.';
$lng['error']['domains_cantdeletedomainwithemail'] = 'Du kan ikke slette et dom&aelig;ne med tilknyttede eMail-adresser. Slet alle email adresser f&oslash;rst.';
$lng['error']['firstdeleteallsubdomains'] = 'Du skal f&oslash;rst slette alle sub-dom&aelig;ner for du kan oprette et wildcarddom&aelig;ne.';
$lng['error']['youhavealreadyacatchallforthisdomain'] = 'Du har allerede valgt en Fang-Alt adresse for dette dom&aelig;ne.';
$lng['error']['ftp_cantdeletemainaccount'] = 'Du kan ikke slette din prim&aelig;re FTP konto.';
$lng['error']['login'] = 'Den indtastede bruger/kode er ikke korrekt. Fors&oslash;g venligst igen.';
$lng['error']['login_blocked'] = 'Denne konto er blevet midlertidigt lukket grundet for mange fejlagtige logind fors&oslash;g.<br />Fors&oslash;g venligst igen om ' . $settings['login']['deactivatetime'] . ' sekunder.';
$lng['error']['notallreqfieldsorerrors'] = 'Alle kr&aelig;vede felter er ikke udfyldt, eller der er fejl i en eller flere af udfyldningerne.';
$lng['error']['domains_cantdeletemaindomain'] = 'Du kan ikke slette et eMail-domæne.';
$lng['error']['domains_canteditdomain'] = 'Du kan ikke lave ændringer i dette domæne, da det er blevet låst af administratoren.';
$lng['error']['domains_cantdeletedomainwithemail'] = 'Du kan ikke slette et domæne med tilknyttede eMail-adresser. Slet alle email adresser først.';
$lng['error']['firstdeleteallsubdomains'] = 'Du skal først slette alle sub-domæner for du kan oprette et wildcarddomæne.';
$lng['error']['youhavealreadyacatchallforthisdomain'] = 'Du har allerede valgt en Fang-Alt adresse for dette domæne.';
$lng['error']['ftp_cantdeletemainaccount'] = 'Du kan ikke slette din primære FTP konto.';
$lng['error']['login'] = 'Den indtastede bruger/kode er ikke korrekt. Forsøg venligst igen.';
$lng['error']['login_blocked'] = 'Denne konto er blevet midlertidigt lukket grundet for mange fejlagtige logind forsøg.<br />Forsøg venligst igen om ' . $settings['login']['deactivatetime'] . ' sekunder.';
$lng['error']['notallreqfieldsorerrors'] = 'Alle krævede felter er ikke udfyldt, eller der er fejl i en eller flere af udfyldningerne.';
$lng['error']['oldpasswordnotcorrect'] = 'Det gamle kodeord er ikke indtastet korrekt.';
$lng['error']['youcantallocatemorethanyouhave'] = 'Du kan ikke tildele flere ressourcer end du er blevet bevilliget.';
$lng['error']['mustbeurl'] = 'Din indtastning er ikke en gyldig URL (f.eks. http://eksempel.com/fejl404.htm)';
$lng['error']['invalidpath'] = 'Du har valgt en ikke gyldig url (m&aring;ske et problem med mappe list?)';
$lng['error']['invalidpath'] = 'Du har valgt en ikke gyldig url (måske et problem med mappe list?)';
$lng['error']['stringisempty'] = 'Manglende intasting i feltet';
$lng['error']['stringiswrong'] = 'Forkert indtastning i feltet';
$lng['error']['myloginname'] = '\'' . $lng['login']['username'] . '\'';
@@ -208,28 +208,28 @@ $lng['error']['newpasswordconfirmerror'] = 'Det nye kodeord og kontrol indtastni
$lng['error']['myname'] = '\'' . $lng['customer']['name'] . '\'';
$lng['error']['myfirstname'] = '\'' . $lng['customer']['firstname'] . '\'';
$lng['error']['emailadd'] = '\'' . $lng['customer']['email'] . '\'';
$lng['error']['mydomain'] = '\'Dom&aelig;ne\'';
$lng['error']['mydomain'] = '\'Domæne\'';
$lng['error']['mydocumentroot'] = '\'Mapperod\'';
$lng['error']['loginnameexists'] = 'Brugernavnet %s eksisterer allerede';
$lng['error']['emailiswrong'] = 'eMail-Adressen %s indeholder ugyldige tegn eller er ikke komplet';
$lng['error']['loginnameiswrong'] = 'Brugernavnet %s indeholder ugyldige tegn';
$lng['error']['userpathcombinationdupe'] = 'Kombinationen af brugernavn og sti findes allerede.';
$lng['error']['patherror'] = 'Fejl! Sti kan ikke v&aelig;re tom';
$lng['error']['patherror'] = 'Fejl! Sti kan ikke være tom';
$lng['error']['errordocpathdupe'] = 'Indstillinger for stien %s eksisterer allerede';
$lng['error']['adduserfirst'] = 'Opret venligst en kunde f&oslash;rst';
$lng['error']['domainalreadyexists'] = 'Dom&aelig;net %s er allerede delligeret til en kunde';
$lng['error']['adduserfirst'] = 'Opret venligst en kunde først';
$lng['error']['domainalreadyexists'] = 'Domænet %s er allerede delligeret til en kunde';
$lng['error']['nolanguageselect'] = 'Ingen sprog er valgt.';
$lng['error']['nosubjectcreate'] = 'Du skal angive en overskrift for denne eMail skabelon.';
$lng['error']['nomailbodycreate'] = 'Du skal skrive et indhold til denne eMail skabelon.';
$lng['error']['templatenotfound'] = 'Skabelon blev ikke fundet.';
$lng['error']['alltemplatesdefined'] = 'Du kan ikke oprette flere skabeloner da alle sprog allerede er underst&oslash;ttet.';
$lng['error']['wwwnotallowed'] = 'www er ikke tilladt som sub-dom&aelig;ne.';
$lng['error']['subdomainiswrong'] = 'Sub-dom&aelig;net %s indeholder ugyldige tegn.';
$lng['error']['alltemplatesdefined'] = 'Du kan ikke oprette flere skabeloner da alle sprog allerede er understøttet.';
$lng['error']['wwwnotallowed'] = 'www er ikke tilladt som sub-domæne.';
$lng['error']['subdomainiswrong'] = 'Sub-domænet %s indeholder ugyldige tegn.';
$lng['error']['domaincantbeempty'] = 'The domain-name can not be empty.';
$lng['error']['domainexistalready'] = 'Dom&aelig;net %s eksisterer allerede.';
$lng['error']['domainisaliasorothercustomer'] = 'Det valgte alias-dom&aelig;ne er enten selv et alias dom&aelig;ne, eller tilh&oslash;rer en anden kunde.';
$lng['error']['domainexistalready'] = 'Domænet %s eksisterer allerede.';
$lng['error']['domainisaliasorothercustomer'] = 'Det valgte alias-domæne er enten selv et alias domæne, eller tilhører en anden kunde.';
$lng['error']['emailexistalready'] = 'eMail-Adressen %s eksisterer allerede.';
$lng['error']['maindomainnonexist'] = 'Hoved-dom&aelig;net %s eksisterer ikke.';
$lng['error']['maindomainnonexist'] = 'Hoved-domænet %s eksisterer ikke.';
$lng['error']['destinationnonexist'] = 'Opret venligst videresenderen i feltet.';
$lng['error']['destinationalreadyexistasmail'] = 'Videresenderen til %s eksisterer allerede som en aktiv eMail-adresse.';
$lng['error']['destinationalreadyexist'] = 'Der er allerede angivet en videresender til %s .';
@@ -240,27 +240,27 @@ $lng['error']['domainname'] = $lng['domains']['domainname'];
* Questions
*/
$lng['question']['question'] = 'Sikkerhedssp&oslash;rgsm&aring;l';
$lng['question']['admin_customer_reallydelete'] = 'Er du sikker p&aring; du vil slette kunden %s? Dette kan ikke fortrydes!';
$lng['question']['admin_domain_reallydelete'] = 'Er du sikker p&aring; du vil slette dom&aelig;net %s?';
$lng['question']['admin_domain_reallydisablesecuritysetting'] = 'Er du sikker p&aring; du vil deaktivere disse sikkerheds indstillinger (OpenBasedir)?';
$lng['question']['admin_admin_reallydelete'] = 'Er du sikker p&aring; du vil slette administrator %s? Alle kunder og dom&aelig;ner som h&oslash;rer hertil vil blive allokeret til &oslash;verste adminstartor.';
$lng['question']['admin_template_reallydelete'] = 'Er du sikker p&aring; du vil slette skabelonen \'%s*\'?';
$lng['question']['domains_reallydelete'] = 'Er du sikker p&aring; du vil slette dom&aelig;net %s?';
$lng['question']['email_reallydelete'] = 'Er du sikker p&aring; du vil slette eMail-adressen %s?';
$lng['question']['email_reallydelete_account'] = 'Er du sikker p&aring; du vil slette eMail-account fra %s?';
$lng['question']['email_reallydelete_forwarder'] = 'Er du sikker p&aring; du vil slette videresenderen %s?';
$lng['question']['extras_reallydelete'] = 'Er du sikker p&aring; du vil slette mappe beskyttelse for %s?';
$lng['question']['extras_reallydelete_pathoptions'] = 'Er du sikker p&aring; du vil slette regler for stien %s?';
$lng['question']['ftp_reallydelete'] = 'Er du sikker p&aring; du vil slette FTP kontoen %s?';
$lng['question']['mysql_reallydelete'] = 'Er du sikker p&aring; du vil slette databasen %s? Dette kan ikke fortrydes!';
$lng['question']['admin_configs_reallyrebuild'] = 'Er du sikker p&aring; du vil genbygge dine apache og bind konfigurations filer?';
$lng['question']['question'] = 'Sikkerhedsspørgsmål';
$lng['question']['admin_customer_reallydelete'] = 'Er du sikker på du vil slette kunden %s? Dette kan ikke fortrydes!';
$lng['question']['admin_domain_reallydelete'] = 'Er du sikker på du vil slette domænet %s?';
$lng['question']['admin_domain_reallydisablesecuritysetting'] = 'Er du sikker på du vil deaktivere disse sikkerheds indstillinger (OpenBasedir)?';
$lng['question']['admin_admin_reallydelete'] = 'Er du sikker på du vil slette administrator %s? Alle kunder og domæner som hører hertil vil blive allokeret til øverste adminstartor.';
$lng['question']['admin_template_reallydelete'] = 'Er du sikker på du vil slette skabelonen \'%s*\'?';
$lng['question']['domains_reallydelete'] = 'Er du sikker på du vil slette domænet %s?';
$lng['question']['email_reallydelete'] = 'Er du sikker på du vil slette eMail-adressen %s?';
$lng['question']['email_reallydelete_account'] = 'Er du sikker på du vil slette eMail-account fra %s?';
$lng['question']['email_reallydelete_forwarder'] = 'Er du sikker på du vil slette videresenderen %s?';
$lng['question']['extras_reallydelete'] = 'Er du sikker på du vil slette mappe beskyttelse for %s?';
$lng['question']['extras_reallydelete_pathoptions'] = 'Er du sikker på du vil slette regler for stien %s?';
$lng['question']['ftp_reallydelete'] = 'Er du sikker på du vil slette FTP kontoen %s?';
$lng['question']['mysql_reallydelete'] = 'Er du sikker på du vil slette databasen %s? Dette kan ikke fortrydes!';
$lng['question']['admin_configs_reallyrebuild'] = 'Er du sikker på du vil genbygge dine apache og bind konfigurations filer?';
/**
* Mails
*/
$lng['mails']['pop_success']['mailbody'] = 'Hej,\n\ndin eMail konto {EMAIL}\ner blevet oprettet.\n\nDette er en automatisk genereret\neMail, svar er ikke n&oslash;dvendig!\n\nHilsen, din administrator';
$lng['mails']['pop_success']['mailbody'] = 'Hej,\n\ndin eMail konto {EMAIL}\ner blevet oprettet.\n\nDette er en automatisk genereret\neMail, svar er ikke nødvendig!\n\nHilsen, din administrator';
$lng['mails']['pop_success']['subject'] = 'eMail konto er blevet oprettet';
$lng['mails']['createcustomer']['mailbody'] = 'Hej {FIRSTNAME} {NAME},\n\ndette er information til din konto:\n\nBruger: {USERNAME}\nKodeord: {PASSWORD}\n\nHilsen, din administrator';
$lng['mails']['createcustomer']['subject'] = 'Konto information';
@@ -275,39 +275,39 @@ $lng['admin']['systemdetails'] = 'System Detaljer';
$lng['admin']['froxlordetails'] = 'Froxlor Detaljer';
$lng['admin']['installedversion'] = 'Installeret Version';
$lng['admin']['latestversion'] = 'Seneste Version';
$lng['admin']['lookfornewversion']['clickhere'] = 's&oslash;g via webservice';
$lng['admin']['lookfornewversion']['error'] = 'Fejl under l&aelig;sning';
$lng['admin']['lookfornewversion']['clickhere'] = 'søg via webservice';
$lng['admin']['lookfornewversion']['error'] = 'Fejl under læsning';
$lng['admin']['resources'] = 'Ressourcer';
$lng['admin']['customer'] = 'Kunde';
$lng['admin']['customers'] = 'Kunder';
$lng['admin']['customer_add'] = 'Opret kunde';
$lng['admin']['customer_edit'] = 'Editer kunde';
$lng['admin']['domains'] = 'Dom&aelig;ner';
$lng['admin']['domain_add'] = 'Opret dom&aelig;ne';
$lng['admin']['domain_edit'] = 'Editer dom&aelig;ne';
$lng['admin']['subdomainforemail'] = 'Subdom&aelig;ner som eMaildom&aelig;ner';
$lng['admin']['domains'] = 'Domæner';
$lng['admin']['domain_add'] = 'Opret domæne';
$lng['admin']['domain_edit'] = 'Editer domæne';
$lng['admin']['subdomainforemail'] = 'Subdomæner som eMaildomæner';
$lng['admin']['admin'] = 'Admin';
$lng['admin']['admins'] = 'Admins';
$lng['admin']['admin_add'] = 'Opret administrator';
$lng['admin']['admin_edit'] = 'Editer administrator';
$lng['admin']['customers_see_all'] = 'Kan se alle kunder?';
$lng['admin']['domains_see_all'] = 'Kan se alle dom&aelig;ner?';
$lng['admin']['change_serversettings'] = 'Kan &aelig;ndre server indstillinger?';
$lng['admin']['domains_see_all'] = 'Kan se alle domæner?';
$lng['admin']['change_serversettings'] = 'Kan ændre server indstillinger?';
$lng['admin']['server'] = 'Server';
$lng['admin']['serversettings'] = 'Indstillinger';
$lng['admin']['rebuildconf'] = 'Genbyg konfigurations filer';
$lng['admin']['stdsubdomain'] = 'Standart subdom&aelig;ne';
$lng['admin']['stdsubdomain_add'] = 'Opret standart subdom&aelig;ne';
$lng['admin']['stdsubdomain'] = 'Standart subdomæne';
$lng['admin']['stdsubdomain_add'] = 'Opret standart subdomæne';
$lng['admin']['deactivated'] = 'Deaktiveret';
$lng['admin']['deactivated_user'] = 'Deaktiver Bruger';
$lng['admin']['sendpassword'] = 'Send kodeord';
$lng['admin']['ownvhostsettings'] = 'Egne vHost-indstillinger';
$lng['admin']['configfiles']['serverconfiguration'] = 'Konfiguration';
$lng['admin']['configfiles']['files'] = '<b>Konfigurationsfiler:</b> Lav venligst &aelig;ndringerne i de f&oslash;lgende filer eller opret<br />dem med dette indhold hvis de ikke eksisterer.<br /><b>Bem&aelig;rk:</b> MySQL Kodeordet er ikke blevet &aelig;ndre af sikkerhedsgrunde.<br />Udskift venligst &quot;MYSQL_PASSWORD&quot; manuelt. Hvis du har glemt dit MySQL kodeord<br />er det at finde i &quot;lib/userdata.inc.php&quot;.';
$lng['admin']['configfiles']['commands'] = '<b>Kommandoer:</b> Udf&oslash;r disse kommandoer i shell\'et.';
$lng['admin']['configfiles']['restart'] = '<b>Genstart:</b> Udf&oslash;r disse kommandoer i shell\'et for at aktivere den nye konfiguration.';
$lng['admin']['configfiles']['files'] = '<b>Konfigurationsfiler:</b> Lav venligst ændringerne i de følgende filer eller opret<br />dem med dette indhold hvis de ikke eksisterer.<br /><b>Bemærk:</b> MySQL Kodeordet er ikke blevet ændre af sikkerhedsgrunde.<br />Udskift venligst "MYSQL_PASSWORD" manuelt. Hvis du har glemt dit MySQL kodeord<br />er det at finde i "lib/userdata.inc.php".';
$lng['admin']['configfiles']['commands'] = '<b>Kommandoer:</b> Udfør disse kommandoer i shell\'et.';
$lng['admin']['configfiles']['restart'] = '<b>Genstart:</b> Udfør disse kommandoer i shell\'et for at aktivere den nye konfiguration.';
$lng['admin']['templates']['templates'] = 'Skabeloner';
$lng['admin']['templates']['template_add'] = 'Tilf&oslash;j skabelon';
$lng['admin']['templates']['template_add'] = 'Tilføj skabelon';
$lng['admin']['templates']['template_edit'] = 'Editer skabelon';
$lng['admin']['templates']['action'] = 'Handling';
$lng['admin']['templates']['email'] = 'E-Mail';
@@ -326,14 +326,14 @@ $lng['admin']['templates']['EMAIL'] = 'Udskiftes med adressen af POP3/IMAP konto
* Serversettings
*/
$lng['serversettings']['session_timeout']['title'] = 'S&aelig;ssion Timeout';
$lng['serversettings']['session_timeout']['description'] = 'Hvor l&aelig;nge skal en bruger v&aelig;re inaktiv f&oslash;r s&aelig;ssionen bliver ugyldig (i sekunder)?';
$lng['serversettings']['accountprefix']['title'] = 'Kundepr&aelig;fiks';
$lng['serversettings']['accountprefix']['description'] = 'Hvilket pr&aelig;fiks skal kunde kontoer have?';
$lng['serversettings']['mysqlprefix']['title'] = 'SQL Pr&aelig;fiks';
$lng['serversettings']['mysqlprefix']['description'] = 'Hvilket pr&aelig;fiks skal MySQL databaser have?';
$lng['serversettings']['ftpprefix']['title'] = 'FTP Pr&aelig;fiks';
$lng['serversettings']['ftpprefix']['description'] = 'Hvilket pr&aelig;fiks skal FTP kontoer have?';
$lng['serversettings']['session_timeout']['title'] = 'Sæssion Timeout';
$lng['serversettings']['session_timeout']['description'] = 'Hvor længe skal en bruger være inaktiv før sæssionen bliver ugyldig (i sekunder)?';
$lng['serversettings']['accountprefix']['title'] = 'Kundepræfiks';
$lng['serversettings']['accountprefix']['description'] = 'Hvilket præfiks skal kunde kontoer have?';
$lng['serversettings']['mysqlprefix']['title'] = 'SQL Præfiks';
$lng['serversettings']['mysqlprefix']['description'] = 'Hvilket præfiks skal MySQL databaser have?';
$lng['serversettings']['ftpprefix']['title'] = 'FTP Præfiks';
$lng['serversettings']['ftpprefix']['description'] = 'Hvilket præfiks skal FTP kontoer have?';
$lng['serversettings']['documentroot_prefix']['title'] = 'Dokument mappe';
$lng['serversettings']['documentroot_prefix']['description'] = 'Hvor skal data opbevares?';
$lng['serversettings']['logfiles_directory']['title'] = 'Logfilmappe';
@@ -349,7 +349,7 @@ $lng['serversettings']['bindconf_directory']['description'] = 'Hvor er bind\'s k
$lng['serversettings']['bindreload_command']['title'] = 'Bind genstart kommando';
$lng['serversettings']['bindreload_command']['description'] = 'Hvad er kommandoen til at genstarte bind?';
$lng['serversettings']['binddefaultzone']['title'] = 'Bind default zone';
$lng['serversettings']['binddefaultzone']['description'] = 'Hvad er navnet p&aring; default zone?';
$lng['serversettings']['binddefaultzone']['description'] = 'Hvad er navnet på default zone?';
$lng['serversettings']['vmail_uid']['title'] = 'Mails-Uid';
$lng['serversettings']['vmail_uid']['description'] = 'Hvilket UserID skal mails bruge?';
$lng['serversettings']['vmail_gid']['title'] = 'Mails-Gid';
@@ -357,26 +357,26 @@ $lng['serversettings']['vmail_gid']['description'] = 'Hvilket GroupID skal mails
$lng['serversettings']['vmail_homedir']['title'] = 'Mails-Homedir';
$lng['serversettings']['vmail_homedir']['description'] = 'Hvor skal alle mails opbevares?';
$lng['serversettings']['adminmail']['title'] = 'Afsender';
$lng['serversettings']['adminmail']['description'] = 'Hvilken adresse skal eMails sendt fra kontrol panelet v&aelig;re?';
$lng['serversettings']['adminmail']['description'] = 'Hvilken adresse skal eMails sendt fra kontrol panelet være?';
$lng['serversettings']['phpmyadmin_url']['title'] = 'phpMyAdmin URL';
$lng['serversettings']['phpmyadmin_url']['description'] = 'Hvad er URL\'en til phpMyAdmin? (skal starte med http://)';
$lng['serversettings']['webmail_url']['title'] = 'WebMail URL';
$lng['serversettings']['webmail_url']['description'] = 'Hvad er URL\'en til WebMail? (skal starte med http://)';
$lng['serversettings']['webftp_url']['title'] = 'WebFTP URL';
$lng['serversettings']['webftp_url']['description'] = 'Hvad er URL\'en til WebFTP? (skal starte med http://)';
$lng['serversettings']['language']['description'] = 'Hvilket sprog er standart p&aring; din server?';
$lng['serversettings']['maxloginattempts']['title'] = 'Maksimum log ind fors&oslash;g';
$lng['serversettings']['maxloginattempts']['description'] = 'Maksimum log ind fors&oslash;g hvorefter kontoen bliver sp&aelig;rret.';
$lng['serversettings']['deactivatetime']['title'] = 'Sp&aelig;rrings periode';
$lng['serversettings']['deactivatetime']['description'] = 'Tid i sekunder en konto skal forblive sp&aelig;rret.';
$lng['serversettings']['language']['description'] = 'Hvilket sprog er standart på din server?';
$lng['serversettings']['maxloginattempts']['title'] = 'Maksimum log ind forsøg';
$lng['serversettings']['maxloginattempts']['description'] = 'Maksimum log ind forsøg hvorefter kontoen bliver spærret.';
$lng['serversettings']['deactivatetime']['title'] = 'Spærrings periode';
$lng['serversettings']['deactivatetime']['description'] = 'Tid i sekunder en konto skal forblive spærret.';
$lng['serversettings']['pathedit']['title'] = 'Sti valg type';
$lng['serversettings']['pathedit']['description'] = 'SKal sti v&aelig;lges via et indtastningfelt eller en dropdown menu?';
$lng['serversettings']['pathedit']['description'] = 'SKal sti vælges via et indtastningfelt eller en dropdown menu?';
/**
* CHANGED BETWEEN 1.2.12 and 1.2.13
*/
$lng['mysql']['description'] = 'Her kan du oprette og editere dine MySQL-Databaser.<br />&aelig;ndringerne er &oslash;jeblikkelige og databaserne kan bruges med det samme.<br />I menuen til venstre finder du v&aelig;rkt&oslash;jet phpMyAdmin hvilket kan bruges til nemt at administrere din(e) database(r).<br /><br />For at g&oslash;re brug af databaser i dine egne php-scripts skal de f&oslash;lgende indstillinger bruges: (Teksk i <i>italisk</i> skrift skal erstattes med de data du taster ind)<br />V&aelig;rt: <b><SQL_HOST></b><br />Bruger: <b><i>Databasenavn</i></b><br />Kodeord: <b><i>kodeordet du har valgt</i></b><br />Database: <b><i>Databasenavn</i></b>';
$lng['mysql']['description'] = 'Her kan du oprette og editere dine MySQL-Databaser.<br />ændringerne er øjeblikkelige og databaserne kan bruges med det samme.<br />I menuen til venstre finder du værktøjet phpMyAdmin hvilket kan bruges til nemt at administrere din(e) database(r).<br /><br />For at gøre brug af databaser i dine egne php-scripts skal de følgende indstillinger bruges: (Teksk i <i>italisk</i> skrift skal erstattes med de data du taster ind)<br />Vært: <b><SQL_HOST></b><br />Bruger: <b><i>Databasenavn</i></b><br />Kodeord: <b><i>kodeordet du har valgt</i></b><br />Database: <b><i>Databasenavn</i></b>';
/**
* ADDED BETWEEN 1.2.12 and 1.2.13
@@ -384,16 +384,16 @@ $lng['mysql']['description'] = 'Her kan du oprette og editere dine MySQL-Databas
$lng['serversettings']['paging']['title'] = 'Genstande per side';
$lng['serversettings']['paging']['description'] = 'Hvor mange genstande skal vises per side? (0 = brug ikke side inddeling)';
$lng['error']['ipstillhasdomains'] = 'IP/Port kombinationen du vil slette har stadig dom&aelig;ner tilknyttet. Overf&oslash;r disse dom&aelig;ner til en anden IP/Port kombination for at slette denne.';
$lng['error']['cantdeletedefaultip'] = 'Du kan ikke slette standart IP/Port kombinationen for s&aelig;lgere. Opret venligst en anden IP/Port kombination som standart f&oslash;rst.';
$lng['error']['cantdeletesystemip'] = 'Du kan ikke slette den sidste system IP. Opret en ny IP/Port f&oslash;rst eller lav denne om.';
$lng['error']['ipstillhasdomains'] = 'IP/Port kombinationen du vil slette har stadig domæner tilknyttet. Overfør disse domæner til en anden IP/Port kombination for at slette denne.';
$lng['error']['cantdeletedefaultip'] = 'Du kan ikke slette standart IP/Port kombinationen for sælgere. Opret venligst en anden IP/Port kombination som standart først.';
$lng['error']['cantdeletesystemip'] = 'Du kan ikke slette den sidste system IP. Opret en ny IP/Port først eller lav denne om.';
$lng['error']['myipaddress'] = '\'IP\'';
$lng['error']['myport'] = '\'Port\'';
$lng['error']['myipdefault'] = 'Do skal v&aelig;lge en IP/Port kombination som skal bruges som standart.';
$lng['error']['myipdefault'] = 'Do skal vælge en IP/Port kombination som skal bruges som standart.';
$lng['error']['myipnotdouble'] = 'Denne IP/Port kombination eksisterer allerede.';
$lng['question']['admin_ip_reallydelete'] = 'Er du sikker p&aring; du vil slette IP-adressen %s?';
$lng['question']['admin_ip_reallydelete'] = 'Er du sikker på du vil slette IP-adressen %s?';
$lng['admin']['ipsandports']['ipsandports'] = 'IP\'er og Porte';
$lng['admin']['ipsandports']['add'] = 'Tilf&oslash;j IP/Port';
$lng['admin']['ipsandports']['add'] = 'Tilføj IP/Port';
$lng['admin']['ipsandports']['edit'] = 'Editer IP/Port';
$lng['admin']['ipsandports']['ipandport'] = 'IP/Port';
$lng['admin']['ipsandports']['ip'] = 'IP';
@@ -401,50 +401,50 @@ $lng['admin']['ipsandports']['port'] = 'Port';
// ADDED IN 1.2.13-rc3
$lng['error']['cantchangesystemip'] = 'Du kan ikke &aelig;ndre den sidste system IP. Opret endten en ny IP/Port kombination til system IP\'en eller skift system IP\'en.';
$lng['question']['admin_domain_reallydocrootoutofcustomerroot'] = 'Er du sikker p&aring; du vil &aelig;ndre mappe roden for dette dom&aelig;ne til en sti som ikke er i kundes mappe?';
$lng['error']['cantchangesystemip'] = 'Du kan ikke ændre den sidste system IP. Opret endten en ny IP/Port kombination til system IP\'en eller skift system IP\'en.';
$lng['question']['admin_domain_reallydocrootoutofcustomerroot'] = 'Er du sikker på du vil ændre mappe roden for dette domæne til en sti som ikke er i kundes mappe?';
// ADDED IN 1.2.14-rc1
$lng['admin']['memorylimitdisabled'] = 'Deaktiveret';
$lng['error']['loginnameissystemaccount'] = 'Du kan ikke oprette konto\'er hvis navn minder om system kontoer. Fors&oslash;g venligst med et andet navn.';
$lng['error']['loginnameissystemaccount'] = 'Du kan ikke oprette konto\'er hvis navn minder om system kontoer. Forsøg venligst med et andet navn.';
$lng['domain']['openbasedirpath'] = 'OpenBasedir-sti';
$lng['domain']['docroot'] = 'Sti fra feltet ovenfor';
$lng['domain']['homedir'] = 'Hjemme mappe';
$lng['admin']['valuemandatory'] = 'Denne v&aelig;rdi er obligatorisk';
$lng['admin']['valuemandatorycompany'] = 'Enten &quot;Navn&quot;, &quot;Efternavn&quot; eller &quot;Firma&quot skal v&aelig;re udfyldt';
$lng['admin']['valuemandatory'] = 'Denne værdi er obligatorisk';
$lng['admin']['valuemandatorycompany'] = 'Enten "Navn", "Efternavn" eller "Firma" skal være udfyldt';
$lng['menue']['main']['username'] = 'Logget ind som: ';
$lng['panel']['urloverridespath'] = 'URL (Tilsides&aelig;tter sti)';
$lng['panel']['urloverridespath'] = 'URL (Tilsidesætter sti)';
$lng['panel']['pathorurl'] = 'Sti eller URL';
$lng['error']['sessiontimeoutiswrong'] = '&quot;Session Timeout&quot; m&aring; kun best&aring; af tal.';
$lng['error']['maxloginattemptsiswrong'] = '&quot;Max Login Attempts&quot; m&aring; kun best&aring; af tal.';
$lng['error']['deactivatetimiswrong'] = '&quot;Deactivate Time&quot; m&aring; kun best&aring; af tal.';
$lng['error']['accountprefixiswrong'] = '&quopt;Kundepr&aelig;fiks&quot; er ikke korrekt.';
$lng['error']['mysqlprefixiswrong'] = '&quot;SQL Pr&aelig;fiks&quot; er ikke korrekt.';
$lng['error']['ftpprefixiswrong'] = '&quot;FTP Pr&aelig;fiks&quot; er ikke korrekt.';
$lng['error']['ipiswrong'] = '&quot;IP-Adresse&quot; er ikke en gyldig IP adresse';
$lng['error']['vmailuidiswrong'] = '&quot;Mails-uid&quot; er ikke korrekt. UID skal best&aring; af tal.';
$lng['error']['vmailgidiswrong'] = '&quot;Mails-gid&quot; er ikke korrekt. GID skal best&aring; af tal.';
$lng['error']['adminmailiswrong'] = '&quot;Afsender-adresse&quot; er ikke en gyldig eMail adresse.';
$lng['error']['pagingiswrong'] = '&quot;Genstande per side&quot; m&aring; kun best&aring; af tal.';
$lng['error']['sessiontimeoutiswrong'] = '"Session Timeout" må kun bestå af tal.';
$lng['error']['maxloginattemptsiswrong'] = '"Max Login Attempts" må kun bestå af tal.';
$lng['error']['deactivatetimiswrong'] = '"Deactivate Time" må kun bestå af tal.';
$lng['error']['accountprefixiswrong'] = '&quopt;Kundepræfiks" er ikke korrekt.';
$lng['error']['mysqlprefixiswrong'] = '"SQL Præfiks" er ikke korrekt.';
$lng['error']['ftpprefixiswrong'] = '"FTP Præfiks" er ikke korrekt.';
$lng['error']['ipiswrong'] = '"IP-Adresse" er ikke en gyldig IP adresse';
$lng['error']['vmailuidiswrong'] = '"Mails-uid" er ikke korrekt. UID skal bestå af tal.';
$lng['error']['vmailgidiswrong'] = '"Mails-gid" er ikke korrekt. GID skal bestå af tal.';
$lng['error']['adminmailiswrong'] = '"Afsender-adresse" er ikke en gyldig eMail adresse.';
$lng['error']['pagingiswrong'] = '"Genstande per side" må kun bestå af tal.';
$lng['error']['phpmyadminiswrong'] = 'phpMyAdmin linket er ikke gyldigt.';
$lng['error']['webmailiswrong'] = 'WebMail linket er ikke gyldigt.';
$lng['error']['webftpiswrong'] = 'WebFTP linket er ikke gyldigt.';
$lng['domains']['hasaliasdomains'] = 'Har aliasdom&aelig;ne(r)';
$lng['domains']['hasaliasdomains'] = 'Har aliasdomæne(r)';
$lng['serversettings']['defaultip']['title'] = 'Standart IP/Port';
$lng['serversettings']['defaultip']['description'] = 'Hvilket IP/Port kombination skal bruges som standart?';
$lng['domains']['statstics'] = 'Forbrugs statestik';
$lng['panel']['ascending'] = 'kronologisk';
$lng['panel']['decending'] = 'omvendt kronologisk';
$lng['panel']['search'] = 'S&oslash;g';
$lng['panel']['search'] = 'Søg';
$lng['panel']['used'] = 'brugt';
$lng['error']['stringformaterror'] = 'Den indtastede v&aelig;rdi i feltet &quot;%s&quot; er ugyldig';
$lng['error']['stringformaterror'] = 'Den indtastede værdi i feltet "%s" er ugyldig';
// ADDED IN 1.2.15-svn1
$lng['admin']['serversoftware'] = 'Serversoftware';
$lng['admin']['phpversion'] = 'PHP-Version';
$lng['admin']['phpmemorylimit'] = 'PHP Hukommelses Gr&aelig;se';
$lng['admin']['phpmemorylimit'] = 'PHP Hukommelses Græse';
$lng['admin']['mysqlserverversion'] = 'MySQL Server Version';
$lng['admin']['mysqlclientversion'] = 'MySQL Klient Version';
$lng['admin']['webserverinterface'] = 'Webserver Brugerflade';

Some files were not shown because too many files have changed in this diff Show More