From 7303fb1a0960e6bb3b6e11f51372d1ed689e3b84 Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 19 Dec 2010 03:17:51 +0000 Subject: added a user admin menu that plugins can add menu items to git-svn-id: http://code.elgg.org/elgg/trunk@7678 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/users.php | 30 ++++++ mod/logbrowser/start.php | 19 ++-- .../views/default/logbrowser/adminlinks.php | 10 -- mod/profile/views/default/profile/admin_menu.php | 42 -------- mod/profile/views/default/profile/hoverover.php | 16 --- mod/profile/views/default/profile/icon.php | 111 -------------------- mod/profile/views/default/profile/ownerblock.php | 15 ++- .../views/default/profile/admin_menu.php | 42 -------- .../views/default/profile/hoverover.php | 16 --- mod/tabbed_profile/views/default/profile/icon.php | 111 -------------------- .../views/default/profile/ownerblock.php | 15 ++- views/default/navigation/menu/user_admin.php | 30 ++++++ views/default/profile/icon.php | 116 +++++++++++++++++++++ 13 files changed, 209 insertions(+), 364 deletions(-) delete mode 100644 mod/logbrowser/views/default/logbrowser/adminlinks.php delete mode 100755 mod/profile/views/default/profile/admin_menu.php delete mode 100644 mod/profile/views/default/profile/hoverover.php delete mode 100644 mod/profile/views/default/profile/icon.php delete mode 100755 mod/tabbed_profile/views/default/profile/admin_menu.php delete mode 100644 mod/tabbed_profile/views/default/profile/hoverover.php delete mode 100644 mod/tabbed_profile/views/default/profile/icon.php create mode 100644 views/default/navigation/menu/user_admin.php create mode 100644 views/default/profile/icon.php diff --git a/engine/lib/users.php b/engine/lib/users.php index 0482fd034..d95f32475 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -1477,6 +1477,34 @@ function user_avatar_hook($hook, $entity_type, $returnvalue, $params){ return "pg/avatar/view/{$entity->username}?size=$size"; } +/** + * Setup the user admin menu + */ +function elgg_user_admin_menu($hook, $type, $return, $params) { + $user = $params['user']; + + $actions = array(); + if (!$user->isBanned()) { + $actions[] = 'ban'; + } else { + $actions[] = 'unban'; + } + $actions[] = 'delete'; + $actions[] = 'resetpassword'; + if (!$user->isAdmin()) { + $actions[] = 'makeadmin'; + } else { + $actions[] = 'removeadmin'; + } + + foreach ($actions as $action) { + $url = "action/admin/user/$action?guid={$user->guid}"; + $url = elgg_add_action_tokens_to_url($url); + $item = new ElggMenuItem($action, elgg_echo($action), $url); + elgg_register_menu_item('user_admin', $item); + } +} + /** * This function loads a set of default fields into the profile, then triggers a hook letting other plugins to edit * add and delete fields. @@ -1656,6 +1684,8 @@ function users_init() { elgg_register_menu_item('page', $params); } + elgg_register_plugin_hook_handler('register', 'menu:user_admin', 'elgg_user_admin_menu'); + elgg_register_action("register", '', 'public'); elgg_register_action("useradd", '', 'public'); elgg_register_action("friends/add"); diff --git a/mod/logbrowser/start.php b/mod/logbrowser/start.php index 4236ce64e..1eda00732 100644 --- a/mod/logbrowser/start.php +++ b/mod/logbrowser/start.php @@ -12,13 +12,20 @@ elgg_register_event_handler('init', 'system', 'logbrowser_init'); */ function logbrowser_init() { - // Extend CSS elgg_extend_view('css/admin', 'logbrowser/css'); - - // Extend context menu with admin logbrowser link - if (isadminloggedin()) { - elgg_extend_view('profile/menu/adminlinks', 'logbrowser/adminlinks', 10000); - } + + elgg_register_plugin_hook_handler('register', 'menu:user_admin', 'logbrowser_user_admin_menu'); elgg_add_admin_submenu_item('logbrowser', elgg_echo('logbrowser'), 'overview'); } + +/** + * Add to the user admin menu + */ +function logbrowser_user_admin_menu($hook, $type, $return, $params) { + $user = $params['user']; + + $url = "pg/admin/overview/logbrowser/?user_guid={$user->guid}"; + $item = new ElggMenuItem('logbrowser', elgg_echo('logbrowser:explore'), $url); + elgg_register_menu_item('user_admin', $item); +} \ No newline at end of file diff --git a/mod/logbrowser/views/default/logbrowser/adminlinks.php b/mod/logbrowser/views/default/logbrowser/adminlinks.php deleted file mode 100644 index 03e42fbb8..000000000 --- a/mod/logbrowser/views/default/logbrowser/adminlinks.php +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/mod/profile/views/default/profile/admin_menu.php b/mod/profile/views/default/profile/admin_menu.php deleted file mode 100755 index 99ed3a4f5..000000000 --- a/mod/profile/views/default/profile/admin_menu.php +++ /dev/null @@ -1,42 +0,0 @@ - - - diff --git a/mod/profile/views/default/profile/hoverover.php b/mod/profile/views/default/profile/hoverover.php deleted file mode 100644 index 172ef5d3d..000000000 --- a/mod/profile/views/default/profile/hoverover.php +++ /dev/null @@ -1,16 +0,0 @@ - -
  • - name; ?> -
  • - \ No newline at end of file diff --git a/mod/profile/views/default/profile/icon.php b/mod/profile/views/default/profile/icon.php deleted file mode 100644 index 71b25fe6c..000000000 --- a/mod/profile/views/default/profile/icon.php +++ /dev/null @@ -1,111 +0,0 @@ -name, ENT_QUOTES, 'UTF-8'); - $username = $vars['entity']->username; - - if ($icontime = $vars['entity']->icontime) { - $icontime = "{$icontime}"; - } else { - $icontime = "default"; - } - - // Get size - if (!in_array($vars['size'],array('small','medium','large','tiny','master','topbar'))) { - $vars['size'] = 'medium'; - } - - // Get any align and js - if (!empty($vars['align'])) { - $align = " align=\"{$vars['align']}\" "; - } else { - $align = ''; - } - - // Override - if (isset($vars['override']) && $vars['override'] == true) { - $override = true; - } else { - $override = false; - } - // profile avatar drop-down menu - if (!$override) { - ?> -
    -
    - - isBanned())) { - ?> - alt="name, ENT_QUOTES, 'UTF-8'); ?>" title="name, ENT_QUOTES, 'UTF-8'); ?>" style="background: url(getIcon($vars['size']); ?>) no-repeat;" class="" /> - getIcon($vars['size'])); ?>" border="0" alt="name, ENT_QUOTES, 'UTF-8'); ?>" title="name, ENT_QUOTES, 'UTF-8'); ?>" /> - */ - - if (!$override) { - ?> -
    - email; $phone = $user->phone; -//if admin display admin links -if (isadminloggedin()) { - $admin_links = elgg_view('profile/admin_menu'); -} else { - $admin_links = ''; +// if admin, display admin links +$admin_links = ''; +if (isadminloggedin() && get_loggedin_userid() != elgg_get_page_owner_guid()) { + $params = array( + 'user' => elgg_get_page_owner(), + 'toggle' => true, + 'sort_by' => 'order', + ); + $admin_links = elgg_view_menu('user_admin', $params); + $admin_links = "
    $admin_links
    "; } $menu = elgg_view_menu('user_ownerblock', array('user' => elgg_get_page_owner())); diff --git a/mod/tabbed_profile/views/default/profile/admin_menu.php b/mod/tabbed_profile/views/default/profile/admin_menu.php deleted file mode 100755 index 99ed3a4f5..000000000 --- a/mod/tabbed_profile/views/default/profile/admin_menu.php +++ /dev/null @@ -1,42 +0,0 @@ - - - diff --git a/mod/tabbed_profile/views/default/profile/hoverover.php b/mod/tabbed_profile/views/default/profile/hoverover.php deleted file mode 100644 index 172ef5d3d..000000000 --- a/mod/tabbed_profile/views/default/profile/hoverover.php +++ /dev/null @@ -1,16 +0,0 @@ - -
  • - name; ?> -
  • - \ No newline at end of file diff --git a/mod/tabbed_profile/views/default/profile/icon.php b/mod/tabbed_profile/views/default/profile/icon.php deleted file mode 100644 index 71b25fe6c..000000000 --- a/mod/tabbed_profile/views/default/profile/icon.php +++ /dev/null @@ -1,111 +0,0 @@ -name, ENT_QUOTES, 'UTF-8'); - $username = $vars['entity']->username; - - if ($icontime = $vars['entity']->icontime) { - $icontime = "{$icontime}"; - } else { - $icontime = "default"; - } - - // Get size - if (!in_array($vars['size'],array('small','medium','large','tiny','master','topbar'))) { - $vars['size'] = 'medium'; - } - - // Get any align and js - if (!empty($vars['align'])) { - $align = " align=\"{$vars['align']}\" "; - } else { - $align = ''; - } - - // Override - if (isset($vars['override']) && $vars['override'] == true) { - $override = true; - } else { - $override = false; - } - // profile avatar drop-down menu - if (!$override) { - ?> -
    -
    - - isBanned())) { - ?> - alt="name, ENT_QUOTES, 'UTF-8'); ?>" title="name, ENT_QUOTES, 'UTF-8'); ?>" style="background: url(getIcon($vars['size']); ?>) no-repeat;" class="" /> - getIcon($vars['size'])); ?>" border="0" alt="name, ENT_QUOTES, 'UTF-8'); ?>" title="name, ENT_QUOTES, 'UTF-8'); ?>" /> - */ - - if (!$override) { - ?> -
    - email; $phone = $user->phone; -//if admin display admin links -if (isadminloggedin()) { - $admin_links = elgg_view('profile/admin_menu'); -} else { - $admin_links = ''; +// if admin display admin links +$admin_links = ''; +if (isadminloggedin() && get_loggedin_userid() != elgg_get_page_owner_guid()) { + $params = array( + 'user' => elgg_get_page_owner(), + 'toggle' => true, + 'sort_by' => 'order', + ); + $admin_links = elgg_view_menu('user_admin', $params); + $admin_links = "
    $admin_links
    "; } diff --git a/views/default/navigation/menu/user_admin.php b/views/default/navigation/menu/user_admin.php new file mode 100644 index 000000000..1972d7916 --- /dev/null +++ b/views/default/navigation/menu/user_admin.php @@ -0,0 +1,30 @@ +'; + echo '
  • Admin options…'; + $id = 'id="elgg-togglee-admin-menu"'; +} +foreach ($vars['menu'] as $section => $menu_items) { + echo "'; +} +if ($toggle) { + echo '
  • '; + echo '"; + ?> + + isBanned())) { + ?> + + + alt="name, ENT_QUOTES, 'UTF-8'); ?>" title="name, ENT_QUOTES, 'UTF-8'); ?>" style="background: url(getIcon($vars['size']); ?>) no-repeat;" class="" /> + getIcon($vars['size'])); ?>" border="0" alt="name, ENT_QUOTES, 'UTF-8'); ?>" title="name, ENT_QUOTES, 'UTF-8'); ?>" /> + */ + + if (!$override) { + ?> + +