From aa78fde6a92f66b84d626e114d8b54a5fb6ece0c Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Wed, 14 Nov 2012 07:19:43 -0500
Subject: [PATCH] - Added function for IPv6 prefixes in multiserver mirror setups to nginx plugin.

---
 interface/web/nav.php |   96 ++++++++++++++++++++++++++++--------------------
 1 files changed, 56 insertions(+), 40 deletions(-)

diff --git a/interface/web/nav.php b/interface/web/nav.php
index 1683f6d..909392f 100644
--- a/interface/web/nav.php
+++ b/interface/web/nav.php
@@ -1,7 +1,7 @@
 <?php
 
 /*
-Copyright (c) 2005, Till Brehm, projektfarm Gmbh
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -33,67 +33,83 @@
 
 $app->uses('tpl');
 
-//die('HHH');
-
 //** Top Naviation
 if(isset($_GET['nav']) && $_GET['nav'] == 'top') {
-	
+
 	$app->tpl->newTemplate('topnav.tpl.htm');
 
 	//* Check User Login and current module
-	if(!isset($_SESSION['s']['user']) or !is_array($_SESSION['s']['user']) or !is_array($_SESSION['s']['module'])) {
+	if(isset($_SESSION["s"]["user"]) && $_SESSION["s"]["user"]['active'] == 1 && is_array($_SESSION['s']['module'])) {
+		//* Loading modules of the user and building top navigation
+		$modules = explode(',', $_SESSION['s']['user']['modules']);
+		/*
+		 * 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');
+					$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']);
+				}
+			}
+		}
+	} else {
 		//*  Loading Login Module
 		include_once('login/lib/module.conf.php');
 		$_SESSION['s']['module'] = $module;
 		$topnav[] = array(	'title' 	=> 'Login',
-				  			'active' 	=> 1);
+				'active' 	=> 1);
 		$module = null;
 		unset($module);
-	} else {
-		//* Loading modules of the user and building top navigation
-		$modules = explode(',', $_SESSION['s']['user']['modules']);
-		if(is_array($modules)) {
-			foreach($modules as $mt) {
-				if(is_file($mt.'/lib/module.conf.php')) {
-					include_once($mt.'/lib/module.conf.php');
-					$active = ($module['name'] == $_SESSION['s']['module']['name']) ? 1 : 0;
-					$topnav[] = array(	'title' 	=> $app->lng($module['title']),
-					  				    'active' 	=> $active,
-									    'module'	=> $module['name']);
-				}
-			}
-		}
 	}
 
 	//* Topnavigation
 	$app->tpl->setLoop('nav_top',$topnav);
-	
+
 }
 
 //** Side Naviation
 if(isset($_GET['nav']) && $_GET['nav'] == 'side') {
-	
-	$app->tpl->newTemplate('sidenav.tpl.htm');
-	
-	//* translating module navigation
-	$nav_translated = array();
-	if(isset($_SESSION['s']['module']['nav']) && is_array($_SESSION['s']['module']['nav'])) {
-		foreach($_SESSION['s']['module']['nav'] as $nav) {
-			$tmp_items = array();
-			foreach($nav['items'] as $item) {
-				$item['title'] = $app->lng($item['title']);
-				$tmp_items[] = $item;
-			}
-			$nav['title'] = $app->lng($nav['title']);
-			$nav['items'] = $tmp_items;
-			$nav_translated[] = $nav;
-		}
+
+	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');
 	} else {
-		$nav_translated = null;
+	
+		$app->tpl->newTemplate('sidenav.tpl.htm');
+
+		//* translating module navigation
+		$nav_translated = array();
+		if(isset($_SESSION['s']['module']['nav']) && is_array($_SESSION['s']['module']['nav'])) {
+			foreach($_SESSION['s']['module']['nav'] as $nav) {
+				$tmp_items = array();
+				foreach($nav['items'] as $item) {
+					$item['title'] = $app->lng($item['title']);
+					$tmp_items[] = $item;
+				}
+				$nav['title'] = $app->lng($nav['title']);
+				$nav['startpage'] = $nav['items'][0]['link'];
+				$nav['items'] = $tmp_items;
+				$nav_translated[] = $nav;
+			}
+		} else {
+			$nav_translated = null;
+		}
+		$app->tpl->setLoop('nav_left',$nav_translated);
+	
 	}
 
-	$app->tpl->setLoop('nav_left',$nav_translated);
-	
 }
 
 $app->tpl_defaults();

--
Gitblit v1.9.1