From 8e518978b3f570930a8f5c3bfcbceb4b2ef61f78 Mon Sep 17 00:00:00 2001 From: cash Date: Wed, 23 Mar 2011 01:55:47 +0000 Subject: Refs #3165 new admin users all get admin widgets git-svn-id: http://code.elgg.org/elgg/trunk@8823 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/admin.php | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'engine/lib/admin.php') diff --git a/engine/lib/admin.php b/engine/lib/admin.php index 71bf8fe12..876af307b 100644 --- a/engine/lib/admin.php +++ b/engine/lib/admin.php @@ -278,6 +278,9 @@ function admin_init() { ); } + // automatic adding of widgets for admin + elgg_register_event_handler('make_admin', 'user', 'elgg_add_admin_widgets'); + elgg_register_page_handler('admin', 'admin_settings_page_handler'); elgg_register_page_handler('admin_plugin_screenshot', 'admin_plugin_screenshot_page_handler'); } @@ -459,5 +462,34 @@ function admin_plugin_screenshot_page_handler($pages) { return true; } +/** + * Adds default admin widgets to the admin dashboard. + */ +function elgg_add_admin_widgets($event, $type, $user) { + elgg_set_ignore_access(true); + + // check if the user already has widgets + if (elgg_get_widgets($user->getGUID(), 'admin')) { + return true; + } + + // In the form column => array of handlers in order, top to bottom + $adminWidgets = array( + 1 => array('online_users', 'new_users', 'content_stats'), + 2 => array('admin_welcome'), + ); + + foreach ($adminWidgets as $column => $handlers) { + foreach ($handlers as $position => $handler) { + $guid = elgg_create_widget($user->getGUID(), $handler, 'admin'); + if ($guid) { + $widget = get_entity($guid); + $widget->move($column, $position); + } + } + } + elgg_set_ignore_access(false); +} + elgg_register_event_handler('init', 'system', 'admin_init'); elgg_register_event_handler('pagesetup', 'system', 'admin_pagesetup', 1000); -- cgit v1.2.3