]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
admin menu uses weights for ordering
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sun, 13 Feb 2011 18:48:40 +0000 (18:48 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sun, 13 Feb 2011 18:48:40 +0000 (18:48 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8201 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/classes/ElggMenuBuilder.php
engine/classes/ElggMenuItem.php
engine/lib/admin.php
languages/en.php
views/default/layout/shells/admin/menu.php

index f51ec8c62eb6af67809944d2c7e73288f1693da7..33abc0c6b70a782420ff0f63a72f558710336dd6 100644 (file)
@@ -179,9 +179,12 @@ class ElggMenuBuilder {
                        case 'title':
                                $sort_callback = array('ElggMenuBuilder', 'compareByTitle');
                                break;
-                       case 'name';
+                       case 'name':
                                $sort_callback = array('ElggMenuBuilder', 'compareByName');
                                break;
+                       case 'weight':
+                               $sort_callback = array('ElggMenuBuilder', 'compareByWeight');
+                               break;
                        case 'order':
                                // use registration order
                                return;
@@ -244,4 +247,18 @@ class ElggMenuBuilder {
 
                return strcmp($a, $b);
        }
+
+       /**
+        * Compare two menu items by their weight
+        *
+        * @param ElggMenuItem $a
+        * @param ElggMenuItem $b
+        * @return bool
+        */
+       public static function compareByWeight($a, $b) {
+               $a = $a->getWeight();
+               $b = $b->getWeight();
+
+               return $a > $b;
+       }
 }
index a190a89efdec685f029a9e433eae70bcebd3ac3f..108cb56f23002b6bcce5bc8b3f4ff2c25112b55c 100644 (file)
@@ -38,6 +38,11 @@ class ElggMenuItem {
         */
        protected $tooltip = '';
 
+       /**
+        * @var int Menu weight - smaller weights float to the top
+        */
+       protected $weight = 100;
+
        /**
         * @var bool Is this the currently selected menu item
         */
@@ -226,6 +231,26 @@ class ElggMenuItem {
                return $this->tooltip;
        }
 
+       /**
+        * Set the weight of the menu item
+        *
+        * @param int $weight The lower weight items float to the top of the menu
+        *
+        * @return void
+        */
+       public function setWeight($weight) {
+               $this->weight = $weight;
+       }
+
+       /**
+        * Get the weight of the menu item
+        *
+        * @return int
+        */
+       public function getWeight() {
+               return $this->weight;
+       }
+
        /**
         * Set the section identifier
         *
index 77dcb5bd0f1345b3b06e45f5032a95512ebf393a..ea18d9e3fb0fb955ed49dc82aaad6ea10646cace 100644 (file)
@@ -23,7 +23,7 @@ function elgg_admin_add_plugin_settings_menu() {
                return FALSE;
        }
 
-       elgg_add_admin_menu_item('plugin_settings', elgg_echo('admin:plugin_settings'));
+       elgg_add_admin_menu_item('plugin_settings', elgg_echo('admin:plugin_settings'), null, 51);
 
        foreach ($active_plugins as $plugin) {
                $plugin_id = $plugin->getID();
@@ -43,10 +43,12 @@ function elgg_admin_add_plugin_settings_menu() {
  * @param string $section_id    The Unique ID of section
  * @param string $section_title Human readable section title.
  * @param string $parent_id     If a child section, the parent section id.
+ * @param int    $weight        The menu item weight
  *
  * @return bool
+ * @since 1.8.0
  */
-function elgg_add_admin_menu_item($section_id, $section_title, $parent_id = NULL) {
+function elgg_add_admin_menu_item($section_id, $section_title, $parent_id = NULL, $weight = 100) {
 
        // in the admin section parents never have links
        if ($parent_id) {
@@ -66,6 +68,7 @@ function elgg_add_admin_menu_item($section_id, $section_title, $parent_id = NULL
                'title' => $section_title,
                'context' => 'admin',
                'parent_name' => $parent_id,
+               'weight' => $weight,
        ));
 }
 
@@ -98,32 +101,32 @@ function admin_init() {
        elgg_view_register_simplecache('js/admin');
 
        // statistics
-       elgg_add_admin_menu_item('statistics', elgg_echo('admin:statistics'));
+       elgg_add_admin_menu_item('statistics', elgg_echo('admin:statistics'), null, 60);
        elgg_add_admin_menu_item('overview', elgg_echo('admin:statistics:overview'), 'statistics');
 
        // site
-       elgg_add_admin_menu_item('site', elgg_echo('admin:site'));
-       elgg_add_admin_menu_item('basic', elgg_echo('admin:site:basic'), 'site');
-       elgg_add_admin_menu_item('advanced', elgg_echo('admin:site:advanced'), 'site');
+       elgg_add_admin_menu_item('site', elgg_echo('admin:site'), null, 20);
+       elgg_add_admin_menu_item('basic', elgg_echo('admin:site:basic'), 'site', 10);
+       elgg_add_admin_menu_item('advanced', elgg_echo('admin:site:advanced'), 'site', 20);
 
        // appearance
-       elgg_add_admin_menu_item('appearance', elgg_echo('admin:appearance'));
-       elgg_add_admin_menu_item('menu_items', elgg_echo('admin:appearance:menu_items'), 'appearance');
-       elgg_add_admin_menu_item('profile_fields', elgg_echo('admin:appearance:profile_fields'), 'appearance');
+       elgg_add_admin_menu_item('appearance', elgg_echo('admin:appearance'), null, 30);
+       elgg_add_admin_menu_item('menu_items', elgg_echo('admin:appearance:menu_items'), 'appearance', 10);
+       elgg_add_admin_menu_item('profile_fields', elgg_echo('admin:appearance:profile_fields'), 'appearance', 20);
 
        // users
-       elgg_add_admin_menu_item('users', elgg_echo('admin:users'));
-       elgg_add_admin_menu_item('online', elgg_echo('admin:users:online'), 'users');
-       elgg_add_admin_menu_item('newest', elgg_echo('admin:users:newest'), 'users');
-       elgg_add_admin_menu_item('add', elgg_echo('admin:users:add'), 'users');
+       elgg_add_admin_menu_item('users', elgg_echo('admin:users'), null, 40);
+       elgg_add_admin_menu_item('add', elgg_echo('admin:users:add'), 'users', 10);
+       elgg_add_admin_menu_item('online', elgg_echo('admin:users:online'), 'users', 20);
+       elgg_add_admin_menu_item('newest', elgg_echo('admin:users:newest'), 'users', 30);
 
        // plugins
-       elgg_add_admin_menu_item('plugins', elgg_echo('admin:plugins'));
-       elgg_add_admin_menu_item('simple', elgg_echo('admin:plugins:simple'), 'plugins');
-       elgg_add_admin_menu_item('advanced', elgg_echo('admin:plugins:advanced'), 'plugins');
+       elgg_add_admin_menu_item('plugins', elgg_echo('admin:plugins'), null, 50);
+       elgg_add_admin_menu_item('simple', elgg_echo('admin:plugins:simple'), 'plugins', 10);
+       elgg_add_admin_menu_item('advanced', elgg_echo('admin:plugins:advanced'), 'plugins', 20);
 
-       // plugins
-       elgg_add_admin_menu_item('utilities', elgg_echo('admin:utilities'));
+       // utilities
+       elgg_add_admin_menu_item('utilities', elgg_echo('admin:utilities'), null, 70);
 
        // dashboard
        elgg_register_menu_item('page', array(
@@ -131,6 +134,7 @@ function admin_init() {
                'url' => 'pg/admin/dashboard',
                'title' => elgg_echo('admin:dashboard'),
                'context' => 'admin',
+               'weight' => 10,
        ));
 
        // widgets
index 5195264bd9b00b57c6278c37e2999b8e8790e655..99107b464ed4a9b21ed97bfb3622d39395639de1 100644 (file)
@@ -537,9 +537,9 @@ $english = array(
        'admin:users:opt:description' => "Configure users and account information. ",
        'admin:users:find' => 'Find',
 
-       'admin:site' => "Site Settings",
-       'admin:site:basic' => 'Basic',
-       'admin:site:advanced' => 'Advanced',
+       'admin:site' => "Site",
+       'admin:site:basic' => 'Basic Settings',
+       'admin:site:advanced' => 'Advanced Settings',
        'admin:site:description' => "This admin panel allows you to control global settings for your site. Choose an option below to get started.",
        'admin:site:opt:linktext' => "Configure site...",
        'admin:site:access:warning' => "Changing the access setting only affects the permissions on content created in the future.",
index b0e0d00638a5167e4c5dfe9861858f0c97d9da9c..c33eeac32d26933385304e1205062de3bc162f51 100644 (file)
@@ -3,6 +3,6 @@
  * Admin sidebar menu
  */
 
-$content = elgg_view_menu('page', array('sort_by' => 'name'));
+$content = elgg_view_menu('page', array('sort_by' => 'weight'));
 
-echo elgg_view_module('main', elgg_echo('admin:menu'), $content);
\ No newline at end of file
+echo elgg_view_module('main', '', $content);
\ No newline at end of file