]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #2951 not registering utilities menu item by default but added code to automati...
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 26 Feb 2011 23:47:07 +0000 (23:47 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 26 Feb 2011 23:47:07 +0000 (23:47 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8501 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/lib/admin.php
engine/lib/navigation.php

index be01a150cad7298b471b41f6878e08c91f05bca2..b4a55877c082f6a9ef3d3943721aea5094c3282f 100644 (file)
@@ -115,6 +115,8 @@ function elgg_admin_notice_exists($id) {
  *
  * The text of the menu item is obtained from elgg_echo(admin:$parent_id:$menu_id)
  *
+ * This function handles registering the parent if it has not been registered.
+ *
  * @param string $menu_id    The Unique ID of section
  * @param string $parent_id  If a child section, the parent section id.
  * @param int    $weight     The menu item weight
@@ -124,6 +126,11 @@ function elgg_admin_notice_exists($id) {
  */
 function elgg_add_admin_menu_item($menu_id, $parent_id = NULL, $weight = 100) {
 
+       // make sure parent is registered
+       if ($parent_id && !elgg_is_menu_item_registered('page', $parent_id)) {
+               elgg_add_admin_menu_item($parent_id);
+       }
+
        // in the admin section parents never have links
        if ($parent_id) {
                $href = "pg/admin/$parent_id/$menu_id";
@@ -199,9 +206,6 @@ function admin_init() {
        elgg_add_admin_menu_item('simple', 'plugins', 10);
        elgg_add_admin_menu_item('advanced', 'plugins', 20);
 
-       // utilities
-       elgg_add_admin_menu_item('utilities', null, 70);
-
        // dashboard
        elgg_register_menu_item('page', array(
                'name' => 'dashboard',
index 2e6906945054e34bc7208479d277d5eb3f60b4a7..4affc9c308e271a1a14c3d24aff6772565ab6d08 100644 (file)
@@ -75,6 +75,31 @@ function elgg_unregister_menu_item($menu_name, $item_name) {
        return false;
 }
 
+/**
+ * Check if a menu item has been registered
+ *
+ * @param string $menu_name The name of the menu
+ * @param string $item_name The unique identifier for this menu item
+ * 
+ * @return bool
+ * @since 1.8.0
+ */
+function elgg_is_menu_item_registered($menu_name, $item_name) {
+       global $CONFIG;
+
+       if (!isset($CONFIG->menus[$menu_name])) {
+               return false;
+       }
+
+       foreach ($CONFIG->menus[$menu_name] as $index => $menu_object) {
+               if ($menu_object->getName() == $item_name) {
+                       return true;
+               }
+       }
+
+       return false;
+}
+
 /**
  * Adds a breadcrumb to the breadcrumbs stack.
  *