diff options
author | mattpiwik <matthieu.aubry@gmail.com> | 2008-04-09 03:40:38 +0400 |
---|---|---|
committer | mattpiwik <matthieu.aubry@gmail.com> | 2008-04-09 03:40:38 +0400 |
commit | 7406a1a81dbd0c4550811670b3614a3699fea6f7 (patch) | |
tree | 96beb3c205902d79dde930ce3838a5c0613dbeae /modules/PluginsFunctions | |
parent | 84c6df9f45eba28bee78feea7a204a25c16904dc (diff) |
- adding Piwik_EditMenuUrl('Visitors', 'Locations', array('module' => 'GeoIp')); which edits the LINK in the menu entry, so that the menu links another plugin instead.
useful for plugin that want to do the same job as an existing plugin, but better :)
git-svn-id: http://dev.piwik.org/svn/trunk@440 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'modules/PluginsFunctions')
-rw-r--r-- | modules/PluginsFunctions/Menu.php | 53 |
1 files changed, 46 insertions, 7 deletions
diff --git a/modules/PluginsFunctions/Menu.php b/modules/PluginsFunctions/Menu.php index 84e06b5a70..6d45f587cc 100644 --- a/modules/PluginsFunctions/Menu.php +++ b/modules/PluginsFunctions/Menu.php @@ -1,5 +1,7 @@ <?php static $mainMenu = array(); +static $menuEditsToApply = array(); +static $menuRenameToApply = array(); // we setup the main categories in a specific order $mainMenu['Dashboard'] = null; @@ -13,6 +15,41 @@ $mainMenu['Live!'] = null; function Piwik_GetMenu() { global $mainMenu; + global $menuEditsToApply; + global $menuRenameToApply; + + // we apply the list of edits we've registered so far + foreach($menuEditsToApply as $edit) + { + $mainMenuToEdit = $edit[0]; + $subMenuToEdit = $edit[1]; + $newUrl = $edit[2]; + if(!isset($mainMenu[$mainMenuToEdit][$subMenuToEdit])) + { + Piwik_AddMenu($mainMenuToEdit, $subMenuToEdit, $newUrl); + } + else + { + $mainMenu[$mainMenuToEdit][$subMenuToEdit] = $newUrl; + } + } + + // we now apply the menu rename + foreach($menuRenameToApply as $rename) + { + $mainMenuOriginal = $rename[0]; + $subMenuOriginal = $rename[1]; + $mainMenuRenamed = $rename[2]; + $subMenuRenamed = $rename[3]; + if(isset($mainMenu[$mainMenuOriginal][$subMenuOriginal])) + { + $save = $mainMenu[$mainMenuOriginal][$subMenuOriginal]; + unset($mainMenu[$mainMenuOriginal][$subMenuOriginal]); + $mainMenu[$mainMenuRenamed][$subMenuRenamed] = $save; + } + } + + // we now do some cleaning on the menu foreach($mainMenu as $key => &$element) { if(is_null($element)) @@ -57,11 +94,13 @@ function Piwik_AddMenu( $mainMenuName, $subMenuName, $url ) function Piwik_RenameMenuEntry($mainMenuOriginal, $subMenuOriginal, $mainMenuRenamed, $subMenuRenamed) { - global $mainMenu; - if(isset($mainMenu[$mainMenuOriginal][$subMenuOriginal])) - { - $save = $mainMenu[$mainMenuOriginal][$subMenuOriginal]; - unset($mainMenu[$mainMenuOriginal][$subMenuOriginal]); - $mainMenu[$mainMenuRenamed][$subMenuRenamed] = $save; - } + global $menuRenameToApply; + $menuRenameToApply[] = array($mainMenuOriginal, $subMenuOriginal, + $mainMenuRenamed, $subMenuRenamed); } + +function Piwik_EditMenuUrl( $mainMenuToEdit, $subMenuToEdit, $newUrl ) +{ + global $menuEditsToApply; + $menuEditsToApply[] = array($mainMenuToEdit, $subMenuToEdit, $newUrl); +}
\ No newline at end of file |