Index: profileplus.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/profileplus/profileplus.module,v
retrieving revision 1.6.2.1
diff -u -p -r1.6.2.1 profileplus.module
--- profileplus.module	28 Jul 2007 21:33:33 -0000	1.6.2.1
+++ profileplus.module	2 May 2008 18:38:24 -0000
@@ -32,13 +32,13 @@ function profileplus_perm() {
 
 
 /*
- * Implementation of hook_search()
+ * Implementation of hook_search().
  */
 function profile_search($op = 'search', $keys = null) {
   switch ($op) {
     case 'name':
       if (user_access('access user profiles')) {
-        return t('User Profiles');
+        return t('Users');
       }
     case 'search':
       if (user_access('access user profiles')) {
@@ -54,13 +54,13 @@ function profile_search($op = 'search', 
             $j = $i - 1;
             if (user_access('administer users')) {
             // administrators don't have restrictions
-              $sql = "FROM {users} u INNER JOIN {profile_values} pv ON u.uid = pv.uid INNER JOIN {profile_fields} pf ON pv.fid = pf.fid WHERE pv.value LIKE '%%%s%%' OR u.name LIKE '%%%s%%'";
-              $result = db_query('SELECT DISTINCT u.* '.$sql, $keywords[$j], $keywords[$j]);
+              $sql = "FROM {users} u INNER JOIN {profile_values} pv ON u.uid = pv.uid INNER JOIN {profile_fields} pf ON pv.fid = pf.fid WHERE LOWER(pv.value) LIKE LOWER('%%%s%%') OR LOWER(u.name) LIKE LOWER('%%%s%%')";
+              $result = db_query('SELECT DISTINCT u.uid '.$sql, $keywords[$j], $keywords[$j]);
             }
             elseif (user_access('search user profiles')) {
             // non-administrators can only search public fields and active users
-              $sql = "FROM {users} u INNER JOIN {profile_values} pv ON u.uid = pv.uid INNER JOIN {profile_fields} pf ON pv.fid = pf.fid WHERE pv.value LIKE '%%%s%%' OR u.name LIKE '%%%s%%' AND pf.visibility IN (%d, %d) AND u.status = 1";
-              $result = db_query('SELECT DISTINCT u.* '.$sql, $keywords[$j], $keywords[$j], PROFILE_PUBLIC, PROFILE_PUBLIC_LISTINGS);
+              $sql = "FROM {users} u INNER JOIN {profile_values} pv ON u.uid = pv.uid INNER JOIN {profile_fields} pf ON pv.fid = pf.fid WHERE LOWER(pv.value) LIKE LOWER('%%%s%%') OR LOWER(u.name) LIKE LOWER('%%%s%%') AND pf.visibility IN (%d, %d) AND u.status = 1";
+              $result = db_query('SELECT DISTINCT u.uid '.$sql, $keywords[$j], $keywords[$j], PROFILE_PUBLIC, PROFILE_PUBLIC_LISTINGS);
             }
 
             while ($auser = db_fetch_object($result)) {
@@ -84,17 +84,7 @@ function profile_search($op = 'search', 
           if ($items) {
             $finalsql = pager_query('SELECT * FROM {users} WHERE uid IN ('.implode(', ', $items).')');
               while ($pageditems = db_fetch_object($finalsql)) {
-                $user = user_load(array('uid'=>$pageditems->uid));
-                $profile_fields = profile_view_profile($user);
-
-                $entry = array();
-                foreach($profile_fields as $category => $fields) {
-                  foreach($fields as $field) {
-                    $entry[] = $field['value'];
-                  }
-                  $view = implode(' | ', $entry);
-                }
-                $find[] = array('title' => $user->name, 'link' => url("user/$user->uid"), 'snippet' => search_excerpt($keys, $view));
+                $find[] = theme('profileplus_user', $pageditems->uid);
               }
           }
           return $find;
@@ -102,3 +92,22 @@ function profile_search($op = 'search', 
       } // end search case
   }
 }
+
+/**
+ *  Display of a user in the profile search listings.
+ */
+function theme_profileplus_user($uid) {
+  _p($uid);
+  $account = user_load(array('uid'=>$uid));
+  $profile_fields = profile_view_profile($account);
+
+  $entry = array();
+  foreach($profile_fields as $category => $fields) {
+    foreach($fields as $field) {
+      $entry[] = $field['value'];
+    }
+    $view = implode(' | ', $entry);
+  }
+
+  return array('title' => $account->name, 'link' => url("user/$account->uid"), 'snippet' => search_excerpt($keys, $view));
+}
