Index: realname.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/realname/realname.module,v
retrieving revision 1.4.4.40
diff -u -r1.4.4.40 realname.module
--- realname.module	9 Mar 2009 13:41:43 -0000	1.4.4.40
+++ realname.module	10 Mar 2009 18:16:54 -0000
@@ -117,6 +117,72 @@
 }
 
 /**
+ * Implementation of hook_search().
+ */
+function realname_search($op = 'search', $keys = null, $skip_access_check = FALSE) {
+  switch ($op) {
+    case 'name':
+      if ($skip_access_check || user_access('access user profiles')) {      
+        return t('User name');
+      }
+
+    case 'reset':
+      variable_set('realname_last_index', -1);
+      return;
+
+    case 'status':
+      $start = variable_get('realname_last_index', -1) + 1;
+      $total = db_result(db_query('SELECT COUNT(*) FROM {users} WHERE status=1'));
+      $remaining = db_result(db_query("SELECT COUNT(*) FROM {users} WHERE status=1 AND uid>=%d", $start));
+      return array('remaining' => $remaining, 'total' => $total);
+
+    case 'search':
+      if ($skip_access_check || user_access('access user profiles')) {      
+        $results = array();
+        $find = do_search($keys, 'realname');
+        foreach ($find as $item) {
+          if ($item->type != 'realname') {
+            continue;
+          }
+          $account = db_fetch_object(db_query("SELECT u.uid, u.name, u.picture FROM {users} u WHERE u.uid=%d", $item->sid));
+          $realname = realname_make_name($account);
+          $results[] = array(
+            'link' => url('user/'. $item->sid, array('absolute' => TRUE)),
+            'type' => t('User'),
+            'title' => $realname,
+            'user' => theme('username', $account) . '<div class="clear-block"></div>',
+            'score' => $item->score,
+            'snippet' => theme('user_picture', $account) . t('Login name: !name', array('!name' => $account->name)),
+            );
+          }
+        return $results;
+      }
+      else {
+       drupal_set_message("you don't have access for RealName.");
+      }
+  }
+}
+
+/**
+ * Implementation of hook_update_index().
+ */
+function realname_update_index() {
+  $start = variable_get('realname_last_index', -1) + 1;
+ $start = 0;
+  $limit = (int)variable_get('search_cron_limit', 100);
+  watchdog('RealName',
+    'Indexing up to !limit users, starting at !start',
+    array('!start' => $start, '!limit' => $limit),
+    WATCHDOG_NOTICE);
+  $result = db_query_range("SELECT uid, name FROM {users} WHERE status=1 AND uid>=%d", $start, 0, $limit);
+  while ($account = db_fetch_object($result)) {
+    $realname = realname_make_name($account);
+    search_index($account->uid, 'realname', $realname .' '. $account->name);
+    variable_set('realname_last_index', $account->uid);
+  }
+}
+
+/**
  * Implementation of hook_menu_alter().
  */
 function realname_menu_alter(&$callbacks) {


