1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id$
*
* @category Piwik
* @package PluginsFunctions
*/
/**
* @package PluginsFunctions
*/
class Piwik_AdminMenu
{
private $adminMenu = null;
private $adminMenuOrdered = null;
static private $instance = null;
/**
* @return Piwik_AdminMenu
*/
static public function getInstance()
{
if (self::$instance == null)
{
$c = __CLASS__;
self::$instance = new $c();
}
return self::$instance;
}
/*
* @return array
*/
public function get()
{
if(!is_null($this->adminMenuOrdered))
{
return $this->adminMenuOrdered;
}
Piwik_PostEvent('AdminMenu.add');
$this->adminMenuOrdered = array();
ksort($this->adminMenu);
foreach($this->adminMenu as $order => $menu)
{
foreach($menu as $key => &$element)
{
if(!is_null($element))
{
$this->adminMenuOrdered[$key] = $element;
}
}
}
return $this->adminMenuOrdered;
}
/*
*
*/
public function add($adminMenuName, $url, $displayedForCurrentUser, $order)
{
if($displayedForCurrentUser
&& !isset($this->adminMenu[$adminMenuName]))
{
$this->adminMenu[$order][$adminMenuName] = $url;
}
}
/*
*
*/
public function rename($adminMenuOriginal, $adminMenuRenamed)
{
$save = $this->adminMenu[$adminMenuOriginal];
unset($this->adminMenu[$adminMenuOriginal]);
$this->adminMenu[$adminMenuRenamed] = $save;
}
}
function Piwik_GetCurrentAdminMenuName()
{
$menu = Piwik_GetAdminMenu();
$currentModule = Piwik::getModule();
$currentAction = Piwik::getAction();
foreach($menu as $name => $parameters)
{
if($parameters['module'] == $currentModule
&& $parameters['action'] == $currentAction)
{
return $name;
}
}
return false;
}
function Piwik_GetAdminMenu()
{
return Piwik_AdminMenu::getInstance()->get();
}
function Piwik_AddAdminMenu( $adminMenuName, $url, $displayedForCurrentUser = true, $order = 10 )
{
return Piwik_AdminMenu::getInstance()->add($adminMenuName, $url, $displayedForCurrentUser, $order);
}
function Piwik_RenameAdminMenuEntry($adminMenuOriginal, $adminMenuRenamed)
{
Piwik_AdminMenu::getInstance()->rename($adminMenuOriginal, $adminMenuRenamed);
}
|