? .dashboard.module.swp
Index: dashboard.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/dashboard/dashboard.module,v
retrieving revision 1.17
diff -u -F^f -r1.17 dashboard.module
--- dashboard.module	10 Apr 2009 23:29:13 -0000	1.17
+++ dashboard.module	11 Apr 2009 02:06:27 -0000
@@ -10,52 +10,7 @@ function dashboard_menu() {
     }
   }
 
-  return array(
-    'dashboard' => array(
-      'title callback' => 'dashboard_page_title',
-      'page callback' => 'dashboard_page',
-      'access arguments' => array('access user dashboard'),
-      'type' => MENU_CALLBACK,
-      'file' => 'dashboard.page.inc',
-    ),
-    'dashboard/%dashboard_user_page' => array(
-      'title callback' => 'dashboard_page_title',
-      'page callback' => 'dashboard_page',
-      'page arguments' => array(1),
-      'access arguments' => array('access user dashboard'),
-      'type' => MENU_CALLBACK,
-      'file' => 'dashboard.page.inc',
-    ),
-    'dashboard/%dashboard_user_page/reorder-pages' => array(
-      'page callback' => 'dashboard_page_reorder',
-      'access callback' => 'dashboard_valid_token',
-      'access arguments' => array(1),
-      'type' => MENU_CALLBACK,
-      'file' => 'dashboard.page.inc',
-    ),
-    'dashboard/%dashboard_user_page/reorder-gadgets' => array(
-      'page callback' => 'dashboard_gadget_reorder',
-      'page arguments' => array(1),
-      'access callback' => 'dashboard_valid_token',
-      'access arguments' => array(1),
-      'type' => MENU_CALLBACK,
-      'file' => 'dashboard.page.inc',
-    ),
-    'dashboard/%dashboard_user_page/remove-gadget' => array(
-      'page callback' => 'dashboard_gadget_remove',
-      'access callback' => 'dashboard_valid_token',
-      'access arguments' => array(1),
-      'type' => MENU_CALLBACK,
-      'file' => 'dashboard.page.inc',
-    ),
-    'dashboard/%dashboard_user_page/rename' => array(
-      'page callback' => 'dashboard_page_rename',
-      'page arguments' => array(1),
-      'access arguments' => array('access user dashboard'),
-      'type' => MENU_CALLBACK,
-      'file' => 'dashboard.page.inc',
-    ),
-
+  $items = array(
     'admin/settings/dashboard' => array(
       'title' => t('Dashboard'),
       'page callback' => 'drupal_get_form',
@@ -65,6 +20,65 @@ function dashboard_menu() {
       'file' => 'dashboard.admin.inc',
     ),
   );
+
+  foreach (module_invoke_all('dashboard') as $type => $info) {
+    $items += array(
+      $info['path'] => array(
+        'title callback' => 'dashboard_page_title',
+        'page callback' => 'dashboard_page',
+        'access arguments' => array('access user dashboard'),
+        'type' => MENU_CALLBACK,
+        'file' => 'dashboard.page.inc',
+      ),
+      $info['path'] .'/%dashboard_user_page' => array(
+        'title callback' => 'dashboard_page_title',
+        'page callback' => 'dashboard_page',
+        'page arguments' => array(1),
+        'access arguments' => array('access user dashboard'),
+        'type' => MENU_CALLBACK,
+        'file' => 'dashboard.page.inc',
+      ),
+      $info['path'] .'/%dashboard_user_page/reorder-pages' => array(
+        'page callback' => 'dashboard_page_reorder',
+        'access callback' => 'dashboard_valid_token',
+        'access arguments' => array(1),
+        'type' => MENU_CALLBACK,
+        'file' => 'dashboard.page.inc',
+      ),
+      $info['path'] .'/%dashboard_user_page/reorder-gadgets' => array(
+        'page callback' => 'dashboard_gadget_reorder',
+        'page arguments' => array(1),
+        'access callback' => 'dashboard_valid_token',
+        'access arguments' => array(1),
+        'type' => MENU_CALLBACK,
+        'file' => 'dashboard.page.inc',
+      ),
+      $info['path'] .'/%dashboard_user_page/remove-gadget' => array(
+        'page callback' => 'dashboard_gadget_remove',
+        'access callback' => 'dashboard_valid_token',
+        'access arguments' => array(1),
+        'type' => MENU_CALLBACK,
+        'file' => 'dashboard.page.inc',
+      ),
+      $info['path'] .'/%dashboard_user_page/rename' => array(
+        'page callback' => 'dashboard_page_rename',
+        'page arguments' => array(1),
+        'access arguments' => array('access user dashboard'),
+        'type' => MENU_CALLBACK,
+        'file' => 'dashboard.page.inc',
+      ),
+    );
+  }
+
+  return $items;
+}
+
+function dashboard_dashboard() {
+  return array(
+    'user' => array(
+      'path' => 'dashboard',
+    ),
+  );
 }
 
 function dashboard_init() {
