From 2f74cf27ad6fbb852df78bcccca1fb645c8a57e0 Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Wed, 02 Mar 2016 07:19:30 -0500
Subject: [PATCH] Merge branch 'stable-3.1'

---
 interface/web/nav.php |   50 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/interface/web/nav.php b/interface/web/nav.php
index 909392f..8a49edd 100644
--- a/interface/web/nav.php
+++ b/interface/web/nav.php
@@ -28,8 +28,8 @@
 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
-require_once('../lib/config.inc.php');
-require_once('../lib/app.inc.php');
+require_once '../lib/config.inc.php';
+require_once '../lib/app.inc.php';
 
 $app->uses('tpl');
 
@@ -45,38 +45,58 @@
 		/*
 		 * If the dashboard is in the list of modules it always has to be the first!
 		 */
+		/*
 		asort($modules);
 		if (in_array('dashboard', $modules)) {
 			$key = array_search('dashboard', $modules);
 			unset($modules[$key]);
 			$modules = array_merge(array('dashboard'), $modules);
 		}
+		*/
 		if(is_array($modules)) {
 			foreach($modules as $mt) {
 				if(is_file($mt.'/lib/module.conf.php')) {
 					if(!preg_match("/^[a-z]{2,20}$/i", $mt)) die('module name contains unallowed chars.');
-					include_once($mt.'/lib/module.conf.php');
+					if($mt == 'dns'){
+						$dns_servers = $app->db->queryOneRecord("SELECT COUNT(*) as cnt FROM server WHERE dns_server = 1 AND active = 1");
+						if($dns_servers['cnt'] == 0) continue;
+					}
+					if($mt == 'mail'){
+						$mail_servers = $app->db->queryOneRecord("SELECT COUNT(*) as cnt FROM server WHERE mail_server = 1 AND active = 1");
+						if($mail_servers['cnt'] == 0) continue;
+					}
+					if($mt == 'sites'){
+						$web_servers = $app->db->queryOneRecord("SELECT COUNT(*) as cnt FROM server WHERE web_server = 1 AND active = 1");
+						if($web_servers['cnt'] == 0) continue;
+					}
+					
+					include_once $mt.'/lib/module.conf.php';
 					$language = (isset($_SESSION['s']['user']['language']))?$_SESSION['s']['user']['language']:$conf['language'];
 					$app->load_language_file('web/'.$mt.'/lib/'.$language.'.lng');
 					$active = ($module['name'] == $_SESSION['s']['module']['name']) ? 1 : 0;
-					$topnav[] = array(	'title' 	=> $app->lng($module['title']),
-							'active' 	=> $active,
-							'module'	=> $module['name']);
+					$topnav[$module['order'].'-'.$module['name']] = array( 'title'  => $app->lng($module['title']),
+						'active'  => $active,
+						'module' => $module['name']);
 				}
 			}
+			ksort($topnav);
 		}
 	} else {
 		//*  Loading Login Module
-		include_once('login/lib/module.conf.php');
+		/*
+		include_once 'login/lib/module.conf.php';
 		$_SESSION['s']['module'] = $module;
-		$topnav[] = array(	'title' 	=> 'Login',
-				'active' 	=> 1);
+		$topnav[] = array( 'title'  => 'Login',
+			'active'  => 1);
 		$module = null;
 		unset($module);
+		*/
+		header('Location: /login/');
+		die();
 	}
 
 	//* Topnavigation
-	$app->tpl->setLoop('nav_top',$topnav);
+	$app->tpl->setLoop('nav_top', $topnav);
 
 }
 
@@ -84,9 +104,9 @@
 if(isset($_GET['nav']) && $_GET['nav'] == 'side') {
 
 	if(isset($_SESSION['s']['module']['name']) && is_file($_SESSION['s']['module']['name'].'/lib/custom_menu.inc.php')) {
-		include_once($_SESSION['s']['module']['name'].'/lib/custom_menu.inc.php');
+		include_once $_SESSION['s']['module']['name'].'/lib/custom_menu.inc.php';
 	} else {
-	
+
 		$app->tpl->newTemplate('sidenav.tpl.htm');
 
 		//* translating module navigation
@@ -106,8 +126,8 @@
 		} else {
 			$nav_translated = null;
 		}
-		$app->tpl->setLoop('nav_left',$nav_translated);
-	
+		$app->tpl->setLoop('nav_left', $nav_translated);
+
 	}
 
 }
@@ -115,4 +135,4 @@
 $app->tpl_defaults();
 $app->tpl->pparse();
 
-?>
\ No newline at end of file
+?>

--
Gitblit v1.9.1