Skip to content
Extraits de code Groupes Projets
Valider 4170bbdf rédigé par mattab's avatar mattab
Parcourir les fichiers

Allow remove top menu entries

parent 1834994a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -29,6 +29,7 @@ abstract class MenuAbstract extends Singleton ...@@ -29,6 +29,7 @@ abstract class MenuAbstract extends Singleton
protected $menu = null; protected $menu = null;
protected $menuEntries = array(); protected $menuEntries = array();
protected $menuEntriesToRemove = array();
protected $edits = array(); protected $edits = array();
protected $renames = array(); protected $renames = array();
protected $orderingApplied = false; protected $orderingApplied = false;
...@@ -44,6 +45,7 @@ abstract class MenuAbstract extends Singleton ...@@ -44,6 +45,7 @@ abstract class MenuAbstract extends Singleton
$this->buildMenu(); $this->buildMenu();
$this->applyEdits(); $this->applyEdits();
$this->applyRenames(); $this->applyRenames();
$this->applyRemoves();
$this->applyOrdering(); $this->applyOrdering();
return $this->menu; return $this->menu;
} }
...@@ -63,21 +65,31 @@ abstract class MenuAbstract extends Singleton ...@@ -63,21 +65,31 @@ abstract class MenuAbstract extends Singleton
*/ */
public function add($menuName, $subMenuName, $url, $displayedForCurrentUser = true, $order = 50, $tooltip = false) public function add($menuName, $subMenuName, $url, $displayedForCurrentUser = true, $order = 50, $tooltip = false)
{ {
if ($displayedForCurrentUser) { if (!$displayedForCurrentUser) {
// make sure the idSite value used is numeric (hack-y fix for #3426) return;
if (!is_numeric(Common::getRequestVar('idSite', false))) { }
$idSites = API::getInstance()->getSitesIdWithAtLeastViewAccess();
$url['idSite'] = reset($idSites);
}
$this->menuEntries[] = array( // make sure the idSite value used is numeric (hack-y fix for #3426)
$menuName, if (!is_numeric(Common::getRequestVar('idSite', false))) {
$subMenuName, $idSites = API::getInstance()->getSitesIdWithAtLeastViewAccess();
$url, $url['idSite'] = reset($idSites);
$order,
$tooltip
);
} }
$this->menuEntries[] = array(
$menuName,
$subMenuName,
$url,
$order,
$tooltip
);
}
public function remove($menuName, $subMenuName = false)
{
$this->menuEntriesToRemove[] = array(
$menuName,
$subMenuName
);
} }
/** /**
...@@ -162,6 +174,23 @@ abstract class MenuAbstract extends Singleton ...@@ -162,6 +174,23 @@ abstract class MenuAbstract extends Singleton
} }
} }
private function applyRemoves()
{
foreach($this->menuEntriesToRemove as $menuToDelete) {
if(empty($menuToDelete[1])) {
// Delete Main Menu
if(isset($this->menu[$menuToDelete[0]])) {
unset($this->menu[$menuToDelete[0]]);
}
} else {
// Delete Sub Menu
if(isset($this->menu[$menuToDelete[0]][$menuToDelete[1]])) {
unset($this->menu[$menuToDelete[0]][$menuToDelete[1]]);
}
}
}
}
/** /**
* Applies renames to the menu. * Applies renames to the menu.
*/ */
......
...@@ -59,6 +59,11 @@ class MenuTop extends MenuAbstract ...@@ -59,6 +59,11 @@ class MenuTop extends MenuAbstract
} }
} }
public static function removeEntry($menuName, $subMenuName = false)
{
MenuTop::getInstance()->remove($menuName, $subMenuName);
}
/** /**
* Directly adds a menu entry containing html. * Directly adds a menu entry containing html.
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter