Index: buddylist_ui/buddylist_ui.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/buddylist/buddylist_ui/Attic/buddylist_ui.module,v
retrieving revision 1.1.2.9
diff -u -r1.1.2.9 buddylist_ui.module
--- buddylist_ui/buddylist_ui.module	5 Jan 2008 15:34:45 -0000	1.1.2.9
+++ buddylist_ui/buddylist_ui.module	6 Jan 2008 23:03:24 -0000
@@ -45,7 +45,48 @@
   $id = is_numeric(arg(1)) ? arg(1) : $user->uid;
   $editAccess = (($id == $user->uid && user_access('maintain buddy list') && $user->uid) || user_access('administer users'));
 
-  if (!$may_cache) {
+  // Menu structure loosely based on user.module
+  if ($may_cache) {
+    $items[] = array (
+      'path' => 'buddylist',
+      'title' => t('My @buddylist', buddylist_ui_translation()), 
+      'callback' => 'theme',
+      'callback arguments' => array('buddylist_ui_page_buddylist', $id),
+      'type' => MENU_NORMAL_ITEM,
+      'weight' => 0,
+      'access' => $editAccess,
+      );
+
+    // user page: buddylist
+    $items[] = array (
+      'path' => 'buddylist/confirmed',
+      'title' => t('My @Buddies', buddylist_ui_translation()),
+      'type' => MENU_DEFAULT_LOCAL_TASK,
+      'weight' => 1,
+      );
+      
+    // user page: pending requests
+    $items[] = array(
+      'path' => 'buddylist/requests',
+      'title' => t('My @Buddy Requests', buddylist_ui_translation()),
+      'access' => $editAccess,
+      'callback' => 'theme',
+      'type' => MENU_LOCAL_TASK,
+      'weight' => 2,
+      'callback arguments' => array('buddylist_ui_page_pending_requests', $id)
+    );      
+
+    // admin backend
+    $items[] = array(
+      'path' => 'admin/settings/buddylist_ui',
+      'title' => t('Buddylist UI Settings'), 
+      'description' => t('Buddylist UI Admin Settings'),
+      'callback' => 'drupal_get_form',
+      'callback arguments' => 'buddylist_ui_admin_settings',
+      'access' => user_access('administer site configuration'),
+    );
+  }
+  else {
     $items[] = array (
       'path' => 'buddy/add',
       'title' => t('Add to @buddylist', buddylist_ui_translation()), 
@@ -88,47 +129,6 @@
       'callback' => 'drupal_get_form', 
       'callback arguments' => array ('buddylist_ui_cancel_request', $id),
       );
-    
-    // user page: buddylist overview
-    $items[] = array (
-      'path' => 'buddylist',
-      'title' => t('My @buddylist', buddylist_ui_translation()), 
-      'callback' => 'theme',
-      'callback arguments' => array('buddylist_ui_page_buddylist', $id),
-      'type' => MENU_SUGGESTED_ITEM,
-      'weight' => 0,
-      'access' => $editAccess,
-      );
-    
-    // user page: buddylist
-    $items[] = array (
-      'path' => 'buddylist/confirmed',
-      'title' => t('My @Buddies', buddylist_ui_translation()),
-      'type' => MENU_DEFAULT_LOCAL_TASK,
-      'weight' => 0,
-      );
-      
-    // user page: pending requests
-    $items[] = array(
-      'path' => 'buddylist/requests',
-      'title' => t('My @Buddy Requests', buddylist_ui_translation()),
-      'access' => $editAccess,
-      'callback' => 'theme',
-      'type' => MENU_LOCAL_TASK,
-      'weight' => 1,
-      'callback arguments' => array('buddylist_ui_page_pending_requests', $id)
-    );
-    
-    // admin backend
-    $items[] = array(
-      'path' => 'admin/settings/buddylist_ui',
-      'title' => t('Buddylist UI Settings'), 
-      'description' => t('Buddylist UI Admin Settings'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => 'buddylist_ui_admin_settings',
-      'access' => user_access('administer site configuration'),
-   );
-      
   }
   return $items;
 }
@@ -300,18 +300,18 @@
   }
 
   if (in_array($viewed_user->uid, array_keys(buddy_api_get_requestees($viewing_user->uid)))) {
-    $actions[] = theme('buddylist_ui_action_sent_request', $viewed_user);
+    $actions['buddy_requested'] = theme('buddylist_ui_action_sent_request', $viewed_user);
   } 
   else
     if (in_array($viewed_user->uid, array_keys(buddy_api_get_buddies($viewing_user->uid)))) {
-      $actions[] = theme('buddylist_ui_action_remove_buddy', $viewed_user);
+      $actions['buddy_remove'] = theme('buddylist_ui_action_remove_buddy', $viewed_user);
     } 
     else
       if (in_array($viewing_user->uid, array_keys(buddy_api_get_requestees($viewed_user->uid)))) {
-        $actions[] = theme('buddylist_ui_action_confirm_request', $viewed_user);
+        $actions['buddy_confirm'] = theme('buddylist_ui_action_confirm_request', $viewed_user);
       } 
       else {
-        $actions[] = theme('buddylist_ui_action_add_buddy', $viewed_user);
+        $actions['buddy_add'] = theme('buddylist_ui_action_add_buddy', $viewed_user);
       }
 
   return $actions;
@@ -322,36 +322,13 @@
  * @return
  */
 function buddylist_ui_user($type, & $edit, & $thisuser, $category = NULL) {
-  global $user;
-
-  $output = array ();
   
   if ($type == 'view') {
-    //
-    $view = views_get_view('buddy_api_buddylist'); 
-    $view_received_requests = views_build_view('embed', $view, array(), FALSE);
-    if (!strlen($view_received_requests)){
-  	  $view_received_requests .= '<p>'. t('NONE') .'</p>';
-    }
-    $themed_received_requests = theme_box('', $view_received_requests, $region = 'main');
-    //
-    if(strlen($themed_received_requests) > 0 && (user_access('view buddy lists') || $user->uid == $thisuser->uid)){
-    	$output[] = array ('title' => t('@Buddies', buddylist_ui_translation()), 'value' => $themed_received_requests);
-    }
-    /*if ($list = buddylist_ui_get_buddylist($thisuser)) {
-      $output[] = array ('title' => t('@Buddies', buddylist_ui_translation()), 'value' => $list, 'class' => 'buddylist');
-    }*/
-    /*if ($list = buddylist_ui_get_buddylist($thisuser, TRUE)) {
-      $output[] = array ('title' => t('@buddy of', buddylist_ui_translation()), 'value' => $list, 'class' => 'buddyoflist');
-    }*/
-    if ($actions = buddylist_ui_get_buddy_actions($user, $thisuser)) {
-      $output[] = array ('title' => t('Buddy actions'), 'value' => theme('item_list', $actions), 'class' => 'buddylist_actions');
-    }
-    if (count($output) > 0) {
-      return array (
-        t('@Buddylist', buddylist_ui_translation()) => $output
-      );
-    }
+    $output = array();
+    $output[] = theme('buddylist_ui_user_buddies', $thisuser);
+    $output[] = theme('buddylist_ui_user_actions', $thisuser);    
+    if (count($output) > 0)
+      return array (t('@Buddylist', buddylist_ui_translation()) => $output);
   } 
   else
     if ($type == 'delete') {
@@ -365,6 +342,7 @@
       }
 }
 
+
 /**
  * @param $uid
  * @return
@@ -550,16 +528,40 @@
   
   return $themed_received_requests . $themed_sent_requests;     
 }
-
 /**
- * implementation of buddy_api (module: buddy_api)
- * @param $op
- * @param $userA
- * @param $userB
- * @param $buddyinfo
+ * Themes default display of buddies on user profile
+ * 
+ * @return string, html formatted output
  */
-function buddylist_ui_buddy_api($op, $userA, $userB, &$buddyinfo){
-  $buddyinfo['oneway'] = variable_get('buddylist_ui_oneway', 0);
+function theme_buddylist_ui_user_buddies($buddyuser) {
+
+  // Permission check first
+  global $user;
+  if ( !user_access('view buddy lists') && $buddyuser->uid != $user->uid) return;
+
+  // Display entire buddylist page
+  $view = views_get_view('buddy_api_buddylist');
+  $view_buddylist = views_build_view('embed', $view, array(), FALSE);
+  if (!strlen($view_buddylist)){
+    $output .= '<p>'. t('NONE') .'</p>';
+  }
+  $output .= $view_buddylist;
+
+  return array ('title' => t('@Buddies', buddylist_ui_translation()), 'value' => theme_box('', $output, $region = 'main'));
 }
 
+/**
+ * Themes default display of buddy actions on user profile
+ * 
+ * @return string, html formatted output
+ */
+function theme_buddylist_ui_user_actions($buddyuser) {
+
+  // Retrieve all actions
+  global $user;
+  $actions = buddylist_ui_get_buddy_actions($user, $buddyuser);
 
+  // Return actions as a list, if there are any
+  if ($actions)
+    return array ('title' => t('@Buddy actions', buddylist_ui_translation()), 'value' => theme('item_list', $actions), 'class' => 'buddylist_actions');
+}
\ No newline at end of file
