From 4eb8d2a054e69aba568d5435fd1420b5a9367207 Mon Sep 17 00:00:00 2001
From: cfoe <cfoe@ispconfig3>
Date: Wed, 18 Jul 2012 13:45:49 -0400
Subject: [PATCH] added interface + theme options for the end user
---
interface/web/nav.php | 95 +++++++++++++++++++++++++++--------------------
1 files changed, 54 insertions(+), 41 deletions(-)
diff --git a/interface/web/nav.php b/interface/web/nav.php
index 8b22948..423f57e 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,68 +33,81 @@
$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');
+ $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['startpage'] = $_SESSION['s']['module']['startpage'];
- $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