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
114
|
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
* @category Piwik
* @package Piwik_Menu
*/
use Piwik\Core\Piwik;
/**
* @package Piwik_Menu
*/
class Piwik_Menu_Admin extends Piwik_Menu_Abstract
{
static private $instance = null;
/**
* @return Piwik_Menu_Admin
*/
static public function getInstance()
{
if (self::$instance == null) {
self::$instance = new self;
}
return self::$instance;
}
/**
* Triggers the AdminMenu.add hook and returns the menu.
*
* @return Array
*/
public function get()
{
if (!$this->menu) {
Piwik_PostEvent('AdminMenu.add');
}
return parent::get();
}
}
/**
* Returns the current AdminMenu name
*
* @return boolean
*/
function Piwik_GetCurrentAdminMenuName()
{
$menu = Piwik_GetAdminMenu();
$currentModule = Piwik::getModule();
$currentAction = Piwik::getAction();
foreach ($menu as $name => $submenu) {
foreach ($submenu as $subMenuName => $parameters) {
if (strpos($subMenuName, '_') !== 0 &&
$parameters['_url']['module'] == $currentModule
&& $parameters['_url']['action'] == $currentAction
) {
return $subMenuName;
}
}
}
return false;
}
/**
* Returns the AdminMenu
*
* @return Array
*/
function Piwik_GetAdminMenu()
{
return Piwik_Menu_Admin::getInstance()->get();
}
/**
* Adds a new AdminMenu entry.
*
* @param string $adminMenuName
* @param string $url
* @param boolean $displayedForCurrentUser
* @param int $order
*/
function Piwik_AddAdminMenu($adminMenuName, $url, $displayedForCurrentUser = true, $order = 10)
{
Piwik_Menu_Admin::getInstance()->add('General_Settings', $adminMenuName, $url, $displayedForCurrentUser, $order);
}
/**
* Adds a new AdminMenu entry with a submenu.
*
* @param string $adminMenuName
* @param string $adminSubMenuName
* @param string $url
* @param boolean $displayedForCurrentUser
* @param int $order
*/
function Piwik_AddAdminSubMenu($adminMenuName, $adminSubMenuName, $url, $displayedForCurrentUser = true, $order = 10)
{
Piwik_Menu_Admin::getInstance()->add($adminMenuName, $adminSubMenuName, $url, $displayedForCurrentUser, $order);
}
/**
* Renames an AdminMenu entry.
*
* @param string $adminMenuOriginal
* @param string $adminMenuRenamed
*/
function Piwik_RenameAdminMenuEntry($adminMenuOriginal, $adminMenuRenamed)
{
Piwik_Menu_Admin::getInstance()->rename($adminMenuOriginal, null, $adminMenuRenamed, null);
}
|