Welcome to mirror list, hosted at ThFree Co, Russian Federation.

AdminMenu.php « PluginsFunctions « core - github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 44142e98414325d52d18cc39e0ae9ac89aa8fc17 (plain)
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);
}