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 ('

    '); for ($i = 1;$i < $Pages + 1;$i++) { - echo ('' . $i . ''); + echo ('' . $i . ' '); } 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'].': - '; + $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';