diff --git a/install/froxlor.sql b/install/froxlor.sql
index 119a529f..fded409e 100644
--- a/install/froxlor.sql
+++ b/install/froxlor.sql
@@ -465,7 +465,7 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (18, 'system', 'vmail_homedir', '/var/customers/mail/');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (19, 'system', 'bindconf_directory', '/etc/bind/');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (20, 'system', 'bindreload_command', '/etc/init.d/bind9 reload');
-INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.18-svn1');
+INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.18-svn2');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (23, 'system', 'hostname', 'SERVERNAME');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (24, 'login', 'maxloginattempts', '3');
INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900');
diff --git a/lib/classes/aps/class.ApsParser.php b/lib/classes/aps/class.ApsParser.php
index efb58382..87b12bc0 100644
--- a/lib/classes/aps/class.ApsParser.php
+++ b/lib/classes/aps/class.ApsParser.php
@@ -911,7 +911,7 @@ class ApsParser
if($Error == 1)
{
- self::InfoBox($lng['aps']['nospecialchars']);
+ self::InfoBox($lng['aps']['nospecialchars'], 1);
}
elseif($Error == 2)
{
@@ -948,11 +948,11 @@ class ApsParser
{
if($this->db->num_rows($result) == 1)
{
- self::InfoBox(sprintf($lng['aps']['searchoneresult'], $this->db->num_rows($result)));
+ self::InfoBox(sprintf($lng['aps']['searchoneresult'], $this->db->num_rows($result)), 2);
}
else
{
- self::InfoBox(sprintf($lng['aps']['searchmultiresult'], $this->db->num_rows($result)));
+ self::InfoBox(sprintf($lng['aps']['searchmultiresult'], $this->db->num_rows($result)), 2);
}
while($Row = $this->db->fetch_array($result))
@@ -996,7 +996,7 @@ class ApsParser
//skip if parse of xml has failed
if($Xml == false)continue;
- $Icon = './images/default.png';
+ $Icon = './images/Classic/default.png';
$this->aps_version = isset($Xml->attributes()->version) ? (string)$Xml->attributes()->version : '1.0';
@@ -1162,7 +1162,7 @@ class ApsParser
if($this->db->num_rows($result) == 0)
{
- self::InfoBox($lng['aps']['erroronnewinstance']);
+ self::InfoBox($lng['aps']['erroronnewinstance'], 1);
return false;
}
@@ -1194,7 +1194,7 @@ class ApsParser
//update used counter for packages
$this->db->query('UPDATE `' . TABLE_PANEL_CUSTOMERS . '` SET `aps_packages_used` = `aps_packages_used` + 1 WHERE `customerid` = ' . (int)$CustomerId);
- self::InfoBox(sprintf($lng['aps']['successonnewinstance'], $Xml->name));
+ self::InfoBox(sprintf($lng['aps']['successonnewinstance'], $Xml->name), 2);
unset($Xml);
}
@@ -1735,7 +1735,7 @@ class ApsParser
$Output.= '
' . $Entry . '';
}
- self::InfoBox(sprintf($lng['aps']['erroronscan'], $Xml->name, $Output));
+ self::InfoBox(sprintf($lng['aps']['erroronscan'], $Xml->name, $Output), 1);
return false;
}
else
@@ -1819,11 +1819,11 @@ class ApsParser
if($Newer == 1)
{
- self::InfoBox(sprintf($lng['aps']['successpackageupdate'], $Xml->name));
+ self::InfoBox(sprintf($lng['aps']['successpackageupdate'], $Xml->name), 2);
}
else
{
- self::InfoBox(sprintf($lng['aps']['successpackageinstall'], $Xml->name));
+ self::InfoBox(sprintf($lng['aps']['successpackageinstall'], $Xml->name), 2);
}
unset($Xml);
@@ -1870,11 +1870,11 @@ class ApsParser
if(!isset($this->userinfo['customerid']))
{
- self::InfoBox(sprintf($lng['aps']['initerror'], $Error));
+ self::InfoBox(sprintf($lng['aps']['initerror'], $Error), 1);
}
else
{
- self::InfoBox($lng['aps']['initerror_customer']);
+ self::InfoBox($lng['aps']['initerror_customer'], 1);
}
return;
@@ -2139,11 +2139,11 @@ class ApsParser
{
if($i == $_GET['page'])
{
- echo ('' . $i . '');
+ echo ('' . $i . ' ');
}
else
{
- echo ('' . $i . '');
+ echo ('' . $i . ' ');
}
}
@@ -2177,7 +2177,7 @@ class ApsParser
echo ('');
@@ -2935,7 +2935,7 @@ class ApsParser
//icon for package
- $Icon = './images/default.png';
+ $Icon = './images/Classic/default.png';
if($this->aps_version != '1.0')
{
@@ -3342,7 +3342,7 @@ class ApsParser
//return if parse of xml file has failed
if($Xml == false)return false;
- $Icon = './images/default.png';
+ $Icon = './images/Classic/default.png';
$this->aps_version = isset($Xml->attributes()->version) ? (string)$Xml->attributes()->version : '1.0';
@@ -3551,15 +3551,14 @@ class ApsParser
/**
* show a nice looking infobox
*
- * @param message message to display in beautifull layout
+ * @param string $Message message to display in beautifull layout
+ * @param int $Type 0 = warning, 1 = errror, 2 = success
+ *
*/
-
- private function InfoBox($Message)
+ private function InfoBox($Message, $Type = 0)
{
global $lng, $filename, $s, $page, $action;
-
//shows a box with informations
-
eval("echo \"" . getTemplate("aps/infobox") . "\";");
}
@@ -3574,5 +3573,3 @@ class ApsParser
return '' . $Error . '
';
}
}
-
-?>
\ No newline at end of file
diff --git a/lib/classes/output/class.paging.php b/lib/classes/output/class.paging.php
index c3180a26..b6a5094f 100644
--- a/lib/classes/output/class.paging.php
+++ b/lib/classes/output/class.paging.php
@@ -392,19 +392,22 @@ class paging
function getHtmlSortCode($lng, $break = false)
{
- $sortcode = '' . ($break ? '
' : ' ') . ' ';
+ eval("\$sortcode =\"" . getTemplate("misc/htmlsortcode", '1') . "\";");
return $sortcode;
}
@@ -421,14 +424,18 @@ class paging
if($field != ''
&& isset($this->fields[$field]))
{
- $arrowcode = '
';
+ $baseurl = htmlspecialchars($baseurl);
+ $fieldname = htmlspecialchars($field);
+ eval("\$arrowcode =\"" . getTemplate("misc/htmlarrowcode", '1') . "\";");
}
else
{
+ $baseurl = htmlspecialchars($baseurl);
$arrowcode = array();
foreach($this->fields as $fieldname => $fieldcaption)
{
- $arrowcode[$fieldname] = '
';
+ $fieldname = htmlspecialchars($fieldname);
+ eval("\$arrowcode[\$fieldname] =\"" . getTemplate("misc/htmlarrowcode", '1') . "\";");
}
}
@@ -444,14 +451,15 @@ class paging
function getHtmlSearchCode($lng)
{
- $sortcode = $lng['panel']['search'] . ': ';
- return $sortcode;
+ eval("\$searchcode =\"" . getTemplate("misc/htmlsearchcode", '1') . "\";");
+ return $searchcode;
}
/**
@@ -493,16 +501,16 @@ class paging
$stop = $pages;
}
- $pagingcode = '« < ';
+ $pagingcode = '« < ';
for ($i = $start;$i <= $stop;$i++)
{
if($i != $this->pageno)
{
- $pagingcode.= ' ' . $i . ' ';
+ $pagingcode.= ' ' . $i . ' ';
}
else
{
- $pagingcode.= ' ' . $i . ' ';
+ $pagingcode.= ' ' . $i . '/nbsp;';
}
}
diff --git a/lib/functions/froxlor/function.CronjobFunctions.php b/lib/functions/froxlor/function.CronjobFunctions.php
index 3815619c..a081327f 100644
--- a/lib/functions/froxlor/function.CronjobFunctions.php
+++ b/lib/functions/froxlor/function.CronjobFunctions.php
@@ -123,11 +123,11 @@ function getCronjobsLastRun()
if($row['lastrun'] > 0) {
$lastrun = date('d.m.Y H:i:s', $row['lastrun']);
}
-
- $cronjobs_last_run .= '
- | '.$lng['crondesc'][$row['desc_lng_key']].': |
- '.$lastrun.' |
-
';
+
+ $text = $lng['crondesc'][$row['desc_lng_key']];
+ $value = $lastrun;
+
+ eval("\$cronjobs_last_run .= \"" . getTemplate("index/overview_item") . "\";");
}
return $cronjobs_last_run;
@@ -153,10 +153,7 @@ function getOutstandingTasks()
$query = "SELECT * FROM `".TABLE_PANEL_TASKS."` ORDER BY `type` ASC";
$result = $db->query($query);
- $outstanding_tasks = '
- | '.$lng['tasks']['outstanding_tasks'].': |
- ';
-
+ $value = '';
$tasks = '';
while($row = $db->fetch_array($result))
{
@@ -272,12 +269,14 @@ function getOutstandingTasks()
}
if(trim($tasks) == '') {
- $outstanding_tasks .= '- '.$lng['tasks']['noneoutstanding'].'
';
+ $value .= '- '.$lng['tasks']['noneoutstanding'].'
';
} else {
- $outstanding_tasks .= $tasks;
+ $value .= $tasks;
}
-
- $outstanding_tasks .= ' |
';
-
+
+ $value .= '';
+ $text = $lng['tasks']['outstanding_tasks'];
+ eval("\$outstanding_tasks = \"" . getTemplate("index/overview_item") . "\";");
+
return $outstanding_tasks;
}
diff --git a/lib/functions/froxlor/function.updateCounters.php b/lib/functions/froxlor/function.updateCounters.php
index e4d6cf52..7ab5549f 100644
--- a/lib/functions/froxlor/function.updateCounters.php
+++ b/lib/functions/froxlor/function.updateCounters.php
@@ -332,14 +332,15 @@ function updateCounters($returndebuginfo = false)
$admin_resources[$admin['adminid']]['aps_packages_used'] = 0;
}
- $admin['aps_packages_used_new'] = $admin_resources[$admin['adminid']]['aps_packages_used'];
+ $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['subdomains_used_new'] = $admin_resources[$admin['adminid']]['subdomains_used'];
+ $admin['aps_packages_used_new'] = $admin_resources[$admin['adminid']]['aps_packages_used'];
+
$db->query('UPDATE
`' . TABLE_PANEL_ADMINS . '`
SET
diff --git a/lib/functions/output/function.getTemplate.php b/lib/functions/output/function.getTemplate.php
index fbcbd23c..d001e553 100644
--- a/lib/functions/output/function.getTemplate.php
+++ b/lib/functions/output/function.getTemplate.php
@@ -28,16 +28,21 @@
function getTemplate($template, $noarea = 0)
{
- global $templatecache;
+ global $templatecache, $theme;
+
+ if(!isset($theme) || $theme == '')
+ {
+ $theme = 'Froxlor';
+ }
if($noarea != 1)
{
$template = AREA . '/' . $template;
}
- if(!isset($templatecache[$template]))
+ if(!isset($templatecache[$theme][$template]))
{
- $filename = './templates/' . $template . '.tpl';
+ $filename = './templates/' . $theme . '/' . $template . '.tpl';
if(file_exists($filename)
&& is_readable($filename))
@@ -56,8 +61,9 @@ function getTemplate($template, $noarea = 0)
$templatefile = 'TEMPLATE NOT FOUND: ' . $filename;
}
- $templatecache[$template] = $templatefile;
+ $output = $templatefile; // Minify_HTML::minify($templatefile, array('cssMinifier', 'jsMinifier'));
+ $templatecache[$theme][$template] = $output;
}
- return $templatecache[$template];
+ return $templatecache[$theme][$template];
}
diff --git a/lib/functions/output/function.makeyesno.php b/lib/functions/output/function.makeyesno.php
index 6b29584b..da2305be 100644
--- a/lib/functions/output/function.makeyesno.php
+++ b/lib/functions/output/function.makeyesno.php
@@ -39,5 +39,5 @@ function makeyesno($name, $yesvalue, $novalue = '', $yesselected = '', $disabled
} else {
$d = '';
}
- return '';
+ return '';
}
diff --git a/lib/init.php b/lib/init.php
index d33f0530..ebe65fb1 100644
--- a/lib/init.php
+++ b/lib/init.php
@@ -49,7 +49,7 @@ $filename = basename($_SERVER['PHP_SELF']);
if(!file_exists('./lib/userdata.inc.php'))
{
- $config_hint = file_get_contents('./templates/misc/configurehint.tpl');
+ $config_hint = file_get_contents('./templates/Froxlor/misc/configurehint.tpl');
die($config_hint);
}
@@ -67,7 +67,7 @@ require ('./lib/userdata.inc.php');
if(!isset($sql)
|| !is_array($sql))
{
- $config_hint = file_get_contents('./templates/misc/configurehint.tpl');
+ $config_hint = file_get_contents('./templates/Froxlor/misc/configurehint.tpl');
die($config_hint);
}
@@ -161,23 +161,6 @@ if(get_magic_quotes_gpc())
$settings_data = loadConfigArrayDir('./actions/admin/settings/');
$settings = loadSettings($settings_data, $db);
-/*
- * when upgrading from syscp, the header-graphic gets lost
- */
-if(!isset($settings['admin']['froxlor_graphic'])
- || $settings['admin']['froxlor_graphic'] == ''
-) {
- if(isset($settings['admin']['syscp_graphic'])
- && $settings['admin']['syscp_graphic'] != ''
- ){
- $settings['admin']['froxlor_graphic'] = $settings['admin']['syscp_graphic'];
- }
- else
- {
- $settings['admin']['froxlor_graphic'] = 'images/header.gif';
- }
-}
-
/**
* SESSION MANAGEMENT
*/
@@ -261,19 +244,16 @@ $langs = array();
$languages = array();
// query the whole table
-
$query = 'SELECT * FROM `' . TABLE_PANEL_LANGUAGE . '` ';
$result = $db->query($query);
// presort languages
-
while($row = $db->fetch_array($result))
{
$langs[$row['language']][] = $row;
}
// buildup $languages for the login screen
-
foreach($langs as $key => $value)
{
$languages[$key] = $key;
@@ -306,7 +286,6 @@ else
}
// include every english language file we can get
-
foreach($langs['English'] as $key => $value)
{
include_once makeSecurePath($value['file']);
@@ -322,6 +301,28 @@ if($language != 'English')
}
}
+/**
+ * global Theme-variable
+ */
+$theme = isset($settings['panel']['default_theme']) ? $settings['panel']['default_theme'] : 'Froxlor';
+
+/**
+ * overwrite with customer/admin theme if defined
+ */
+if(isset($userinfo['theme']) && $userinfo['theme'] != $theme)
+{
+ $theme = $userinfo['theme'];
+}
+
+/*
+ * check for custom header-graphic
+ */
+$hl_path = 'images/'.$theme;
+$header_logo = $hl_path.'/logo.png';
+if(file_exists($hl_path.'/logo_custom.png')) {
+ $header_logo = $hl_path.'/logo_custom.png';
+}
+
/**
* Redirects to index.php (login page) if no session exists
*/
@@ -455,5 +456,3 @@ if(PHPMailer::ValidateAddress($settings['panel']['adminmail']) !== false)
$mail->AddReplyTo($settings['panel']['adminmail_return'], $settings['panel']['adminmail_defname']);
}
}
-
-?>
diff --git a/lib/navigation/00.froxlor.main.php b/lib/navigation/00.froxlor.main.php
index a9e08637..3531e7e2 100644
--- a/lib/navigation/00.froxlor.main.php
+++ b/lib/navigation/00.froxlor.main.php
@@ -21,7 +21,7 @@ return array (
'customer' => array (
'index' => array (
'url' => 'customer_index.php',
- 'label' => $lng['menue']['main']['main'],
+ 'label' => $lng['admin']['overview'],
'elements' => array (
array (
'label' => $lng['menue']['main']['username'],
@@ -34,6 +34,10 @@ return array (
'url' => 'customer_index.php?page=change_language',
'label' => $lng['menue']['main']['changelanguage'],
),
+ array (
+ 'url' => 'customer_index.php?page=change_theme',
+ 'label' => $lng['menue']['main']['changetheme'],
+ ),
array (
'url' => 'customer_index.php?action=logout',
'label' => $lng['login']['logout'],
@@ -154,6 +158,10 @@ return array (
'url' => 'admin_index.php?page=change_language',
'label' => $lng['menue']['main']['changelanguage'],
),
+ array (
+ 'url' => 'admin_index.php?page=change_theme',
+ 'label' => $lng['menue']['main']['changetheme'],
+ ),
array (
'url' => 'admin_index.php?action=logout',
'label' => $lng['login']['logout'],
@@ -250,4 +258,3 @@ return array (
),
),
);
-?>
\ No newline at end of file
diff --git a/lib/tables.inc.php b/lib/tables.inc.php
index 9e72bd3e..f1bc3c8a 100644
--- a/lib/tables.inc.php
+++ b/lib/tables.inc.php
@@ -73,8 +73,6 @@ define('PACKAGE_ENABLED', 2);
// VERSION INFO
-$version = '0.9.18-svn1';
+$version = '0.9.18-svn2';
$dbversion = '2';
$branding = '';
-
-?>
diff --git a/lng/english.lng.php b/lng/english.lng.php
index 080da75e..57a4805e 100644
--- a/lng/english.lng.php
+++ b/lng/english.lng.php
@@ -70,7 +70,7 @@ $lng['customer']['forwarders'] = 'E-mail-Forwarders';
$lng['customer']['ftps'] = 'FTP-Accounts';
$lng['customer']['subdomains'] = 'Sub-Domain';
$lng['customer']['domains'] = 'Domain';
-$lng['customer']['unlimited'] = 'unlimited';
+$lng['customer']['unlimited'] = '∞';
/**
* Customermenue
@@ -1332,6 +1332,7 @@ $lng['cronmgmt']['weeks'] = 'weeks';
$lng['cronmgmt']['months'] = 'months';
$lng['admin']['cronjob_edit'] = 'Edit cronjob';
$lng['cronjob']['cronjobsettings'] = 'Cronjob settings';
+$lng['cronjob']['cronjobintervalv'] = 'Runtime interval value';
$lng['cronjob']['cronjobinterval'] = 'Runtime interval';
$lng['panel']['options'] = 'options';
$lng['admin']['warning'] = 'WARNING - Please note!';
@@ -1566,3 +1567,9 @@ $lng['mysql']['database_edit'] = 'Edit database';
// ADDED IN FROXLOR 0.9.18
$lng['error']['domains_cantdeletedomainwithaliases'] = 'You cannot delete a domain which is used for alias-domains. You have to delete the aliases first.';
+$lng['serversettings']['default_theme'] = 'Default theme';
+$lng['menue']['main']['changetheme'] = 'Change theme';
+$lng['panel']['theme'] = 'Theme';
+$lng['success']['rebuildingconfigs'] = 'Successfully inserted tasks for rebuild configfiles';
+$lng['panel']['variable'] = 'Variable';
+$lng['panel']['description'] = 'Description';
diff --git a/lng/german.lng.php b/lng/german.lng.php
index 37db6fbd..4e3b49f0 100644
--- a/lng/german.lng.php
+++ b/lng/german.lng.php
@@ -1311,6 +1311,7 @@ $lng['cronmgmt']['weeks'] = 'Wochen';
$lng['cronmgmt']['months'] = 'Monate';
$lng['admin']['cronjob_edit'] = 'Cronjob bearbeiten';
$lng['cronjob']['cronjobsettings'] = 'Cronjob Einstellungen';
+$lng['cronjob']['cronjobintervalv'] = 'Laufzeit-Intervall Wert';
$lng['cronjob']['cronjobinterval'] = 'Laufzeit-Intervall';
$lng['panel']['options'] = 'Optionen';
$lng['admin']['warning'] = 'ACHTUNG - Wichtiger Hinweis!';
@@ -1548,3 +1549,9 @@ $lng['mysql']['database_edit'] = 'Datenbank bearbeiten';
// ADDED IN FROXLOR 0.9.18
$lng['error']['domains_cantdeletedomainwithaliases'] = 'Sie können keine Domain löschen, die noch von Alias-Domains verwendet wird. Löschen Sie zuerst alle Alias-Domains dieser Domain.';
+$lng['serversettings']['default_theme'] = 'Standard Theme';
+$lng['menue']['main']['changetheme'] = 'Theme wechseln';
+$lng['panel']['theme'] = 'Theme';
+$lng['success']['rebuildingconfigs'] = 'Task für das Neuerstellen der Konfigurationen wurde erfolgreich eingetragen';
+$lng['panel']['variable'] = 'Variable';
+$lng['panel']['description'] = 'Beschreibung';