diff options
author | marcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-06-18 14:40:20 +0000 |
---|---|---|
committer | marcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-06-18 14:40:20 +0000 |
commit | e06d5db3f81d9357329e643b1e3c170d7d47324e (patch) | |
tree | 9da2249949cf311c7ebebd319169d895a6b0dcde /engine/lib | |
parent | 5c1bc9d2ec9c50710251083355254832097635a0 (diff) | |
download | elgg-e06d5db3f81d9357329e643b1e3c170d7d47324e.tar.gz elgg-e06d5db3f81d9357329e643b1e3c170d7d47324e.tar.bz2 |
Fixes #41: User full text search. See caveats in function search_for_user()
git-svn-id: https://code.elgg.org/elgg/trunk@967 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib')
-rw-r--r-- | engine/lib/users.php | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/engine/lib/users.php b/engine/lib/users.php index 16e7a2c5f..50e9d11ea 100644 --- a/engine/lib/users.php +++ b/engine/lib/users.php @@ -682,6 +682,27 @@ return false;
}
+ + /** + * Searches for a user based on a complete or partial name or username using full text searching. + * + * IMPORTANT NOTE: With MySQL's default setup: + * 1) $criteria must be 4 or more characters long + * 2) If $criteria matches greater than 50% of results NO RESULTS ARE RETURNED! + * + * @param string $criteria The partial or full name or username. + */ + function search_for_user($criteria) + { + global $CONFIG; + + $criteria = sanitise_string($criteria); + $access = get_access_sql_suffix("e"); + + $query = "select e.* from {$CONFIG->dbprefix}entities e join {$CONFIG->dbprefix}users_entity u on e.guid=u.guid where match(u.name,u.username) against ('$criteria') and $access"; + + return get_data($query, "entity_row_to_elggstar"); + } /**
* Registers a user, returning false if the username already exists
|