From fc0edb2f00bcdc6baaaa29f9041e82f3003b9b44 Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Sun, 07 Jun 2015 12:16:19 -0400
Subject: [PATCH] Merge branch 'master' into 'master'
---
interface/web/nav.php | 140 +++++++++++++++++++++++++++++-----------------
1 files changed, 87 insertions(+), 53 deletions(-)
diff --git a/interface/web/nav.php b/interface/web/nav.php
index 4ca9b4b..773f7d1 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,
@@ -28,73 +28,107 @@
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');
-//die('HHH');
+//** Top Naviation
+if(isset($_GET['nav']) && $_GET['nav'] == 'top') {
-if($_GET["nav"] == 'top') {
-
- $app->tpl->newTemplate("topnav.tpl.htm");
+ $app->tpl->newTemplate('topnav.tpl.htm');
- // Checke User Login and current module
- if(!is_array($_SESSION["s"]['user']) or !is_array($_SESSION["s"]["module"])) {
- // Loading Login Module
- include_once('login/lib/module.conf.php');
- $_SESSION["s"]['module'] = $module;
- $topnav[] = array( 'title' => "Login",
- 'active' => 1);
- $module = null;
- unset($module);
- } else {
- // Loading modules of the user and building top navigation
- $modules = explode(',',$_SESSION["s"]["user"]["modules"]);
+ //* Check User Login and current 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")) {
- 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"]);
+ if(is_file($mt.'/lib/module.conf.php')) {
+ if(!preg_match("/^[a-z]{2,20}$/i", $mt)) die('module name contains unallowed chars.');
+ 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[$module['order'].'-'.$module['name']] = array( 'title' => $app->lng($module['title']),
+ 'active' => $active,
+ 'module' => $module['name']);
}
}
- }
- }
-
- // Topnavigation
- $app->tpl->setLoop('nav_top',$topnav);
-
-}
-
-if($_GET["nav"] == 'side') {
-
- $app->tpl->newTemplate("sidenav.tpl.htm");
-
- // translating module navigation
- $nav_translated = array();
- if(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;
+ ksort($topnav);
}
} else {
- $nav_translated = null;
+ //* Loading Login Module
+ include_once 'login/lib/module.conf.php';
+ $_SESSION['s']['module'] = $module;
+ $topnav[] = array( 'title' => 'Login',
+ 'active' => 1);
+ $module = null;
+ unset($module);
}
- $app->tpl->setLoop('nav_left',$nav_translated);
-
+ //* Topnavigation
+ $app->tpl->setLoop('nav_top', $topnav);
+
+}
+
+//** Side Naviation
+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';
+ } else {
+
+ $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_defaults();
$app->tpl->pparse();
-?>
\ No newline at end of file
+?>
--
Gitblit v1.9.1