Index: og_views.inc
===================================================================
--- og_views.inc	(revision 300)
+++ og_views.inc	(revision 303)
@@ -179,18 +179,18 @@
       'filters' => array(
         'currentuidsimple' => array(
           'field' => 'uid',
-          'name' => t('OG: Group in User Subbed Groups'),
+          'name' => t('OG: Current user is subscribed to group'),
           'operator' => 'views_handler_operator_eqneq',
           'list' => 'views_handler_filter_usercurrent',
           'list-type' => 'select',
-          'help' => t('Groups are filtered to where current user is a member .'),
+          'help' => t("Groups are filtered by current user's membership."),
         ),
       ),            
       'sorts' => array(
         'count' => array(
           'name' => t('OG: Group: Subscriber Count'),
           'handler' => 'og_handler_sort_field_count',
-          'help' => t('Sort by the number of Og subscribers'),
+          'help' => t('Sort by the number of OG subscribers'),
         ),
       ),
     ),
@@ -211,11 +211,11 @@
       'filters' => array(
         'currentuid' => array(
           'field' => 'uid',
-          'name' => t('OG: Post in User Subbed Groups'),
+          'name' => t('OG: Node in group that user is subscribed to'),
           'operator' => 'views_handler_operator_eqneq',
           'list' => 'views_handler_filter_usercurrent',
           'list-type' => 'select',
-          'help' => t('Posts are filtered to groups that current user is a member of.'),
+          'help' => t("Nodes are filtered by current user's membership."),
         ),
       ),            
     ),
@@ -257,32 +257,36 @@
 }
 
 function og_views_arguments() {
-  $args = array(
+  return array(
     'gid' => array(
-      'name' => t("OG: Group nid(s)"), 
-      'handler' => 'og_handler_argument_gid',
+      'name' => t('OG: Group nid(s)'), 
+      'handler' => 'og_views_handler_argument_gid',
       'help' => t('Filter for the one or more organic groups. Groups should be specified as a comma or plus delimited list of node ids, like taxonomy URLs. '),
     ),
     'name' => array(
-      'name' => t("OG: Group name"), 
-      'handler' => 'og_handler_argument_group_name_like',
+      'name' => t('OG: Group name'), 
+      'handler' => 'og_views_handler_argument_group_name_like',
       'option' => array(
         '#type' => 'select',
         '#options' => 'views_handler_operator_like',
       ),
       'help' => t('Filter for the one or more organic groups. Groups should be specified by name, or part of a name. Use the <em>Option</e> field to specify how to match the supplied name.'),
-      )
-    );
-  return $args;
+    ),
+    'uid' => array(
+      'name' => t('OG: User is subscribed to group'), 
+      'handler' => 'og_views_handler_argument_uid',
+      'help' => t('Filter for groups that user is subscribed to.  User is specified by user ID (integer)'),
+    ),
+  );
 }
 
 /*
  * Custom argument for filtering by one or more group nids.
  */
-function og_handler_argument_gid($op, &$query, $argtype, $arg = '') {
+function og_views_handler_argument_gid($op, &$query, $argtype, $arg = '') {
   switch ($op) {
     case 'summary':
-      og_handler_summary($fieldinfo, $query);
+      og_views_handler_summary($fieldinfo, $query);
       return $fieldinfo;
     case 'link':
       if ($name = $query->title) {
@@ -296,17 +300,17 @@
       og_views_break_phrase($arg, $query);
       break;
     case 'title':
-      return db_result(db_query_range('SELECT title FROM {node} WHERE nid = %d', $query, 0, 1));;
+      return db_result(db_query_range('SELECT title FROM {node} WHERE nid = %d', $query, 0, 1));
   }
 }
 
 /*
  * Custom argument for filtering by group name. Delegates much work to views_handler_filter_like()
  */
-function og_handler_argument_group_name_like($op, &$query, $argtype, $arg = '') {
+function og_views_handler_argument_group_name_like($op, &$query, $argtype, $arg = '') {
   switch ($op) {
     case 'summary':
-      og_handler_summary($fieldinfo, $query); 
+      og_views_handler_summary($fieldinfo, $query); 
       return $fieldinfo;
     case 'link':
       if ($name = $query->title) {
@@ -325,10 +329,25 @@
       views_handler_filter_like('handler', $filter, $filterinfo, &$query);
       break;
     case 'title':
-      return db_result(db_query_range('SELECT title FROM {node} WHERE nid = %d', $query, 0, 1));;
+      return db_result(db_query_range('SELECT title FROM {node} WHERE nid = %d', $query, 0, 1));
   }
 }
 
+/**
+ * Custom argument for filtering by groups that a user is subscribed to
+ */
+function og_views_handler_argument_uid($op, &$query, $a1, $a2 = null) {
+  switch ($op) {
+    case 'filter':
+      $query->ensure_table('og_uid');
+      $query->add_where("og_uid.uid = %d", $a2);
+      break;
+    case 'title':
+      // This returns the title for this node in the title, breadcrumb, etc.
+      return db_result(db_query_range('SELECT name FROM {users} WHERE uid = %d', $query, 0, 1));
+  }
+}
+
 // not currently in use. should work though.
 // helper function. restrict to unaffiliated posts.
 // function og_handler_unaffiliated(&$query) {
@@ -340,7 +359,7 @@
 // }
 
 // helper function.
-function og_handler_summary(&$fieldinfo, &$query) {
+function og_views_handler_summary(&$fieldinfo, &$query) {
   $query->ensure_table('og_ancestry');
   $query->ensure_table('og_node_data');
   $query->add_field('title', 'og_node_data');
