Index: apachesolr_nodeaccess.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/apachesolr_nodeaccess/Attic/apachesolr_nodeaccess.module,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 apachesolr_nodeaccess.module
--- apachesolr_nodeaccess.module	10 Nov 2008 22:12:28 -0000	1.1.2.1
+++ apachesolr_nodeaccess.module	14 Nov 2008 02:29:57 -0000
@@ -62,6 +62,45 @@ function apachesolr_nodeaccess_apachesol
 }
 
 /**
+ * Implementation of hook_apachesolr_process_results().
+ */
+function apachesolr_nodeaccess_apachesolr_process_results($results) {
+  if (! is_array($results)) {
+    return;
+  }
+
+  // If organic groups enabled, process the group list in search results
+  if (module_exists('og')) {
+    // Get an array of all existing organic groups
+    $result = db_query('SELECT nid, og_description FROM {og}');
+    while ($row = db_fetch_object($result)) {
+      $all_groups[$row->nid] = $row->og_description;
+    }
+
+    // Theme group id and names array
+    foreach ($results as &$item) {
+      $groups = array();
+      unset($item['extra']['og_msg']);
+
+      // result belongs to a single group
+      if ($item['node']->nodeaccess_og_subscriber && 
+          ! is_array($item['node']->nodeaccess_og_subscriber)) {
+        $group_id = $item['node']->nodeaccess_og_subscriber;
+        $groups = array($group_id => $all_groups[$group_id]);
+        $item['extra']['og_list'] = theme('apachesolr_nodeaccess_og_list', $groups);
+
+      // result belongs to multiple groups
+      } elseif ($item['node']->nodeaccess_og_subscriber) {
+        foreach ($item['node']->nodeaccess_og_subscriber as $group_id) {
+          $groups[$group_id] = $all_groups[$group_id];
+        }
+        $item['extra']['og_list'] = theme('apachesolr_nodeaccess_og_list', $groups);
+      }
+    }
+  }
+}
+
+/**
  * Implementation of hook_nodeapi().
  *
  * Listen to this hook to find out when a node is being saved.
@@ -109,3 +148,23 @@ function apachesolr_nodeaccess_rebuild_n
   ApacheSolrUpdate::reset('apachesolr');
 }
 
+/**
+ * Implementation of hook_theme()
+ */
+function apachesolr_nodeaccess_theme() {
+  return array(
+    'apachesolr_nodeaccess_og_list' => array('arguments' => array('group')),
+  );
+}
+
+/**
+ * Theme the group list shown in search results
+ */
+function theme_apachesolr_nodeaccess_og_list($groups) {
+  foreach($groups as $group_id => $group_name) {
+    $separator = (empty($return)) ? '' : ', ';
+    $return .= $separator . l($group_name, 'node/'. $group_id);
+  }
+  return $return;
+}
+
