]> git.mxchange.org Git - friendica.git/blobdiff - include/DirSearch.php
Continued with code convention:
[friendica.git] / include / DirSearch.php
index a6a0b59fcbb00a23131ffea26066761620def6cd..596860823652bd09af7b18ad648b9e69582473b1 100644 (file)
@@ -1,7 +1,8 @@
 <?php
 
 /**
- * @file include/dir.php
+ * @file include/DirSearch.php
+ * @brief This file includes the DirSearch class with directory related functions
  */
 
 
@@ -12,10 +13,10 @@ class DirSearch {
 
        /**
         * @brief Search global contact table by nick or name
-        *  * 
+        *
         * @param string $search Name or nick
-        * @param string $mode Search mode 
-        * @return array
+        * @param string $mode Search mode (e.g. "community")
+        * @return array with search results
         */
        public static function global_search_by_name($search, $mode = '') {
 
@@ -31,12 +32,14 @@ class DirSearch {
                        else
                                $ostatus = NETWORK_DFRN;
 
-                       // check if fo
+                       // check if we search only communities or every contact
                        if($mode === "community")
                                $extra_sql = " AND `community`";
                        else
                                $extra_sql = "";
 
+                       $search .= "%";
+
                        $results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`nick`, `gcontact`.`photo`,
                                                        `gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr`, `gcontact`.`community`
                                                FROM `gcontact`
@@ -45,12 +48,14 @@ class DirSearch {
                                                        AND NOT `contact`.`pending` AND `contact`.`rel` IN ('%s', '%s')
                                                WHERE (`contact`.`id` > 0 OR (NOT `gcontact`.`hide` AND `gcontact`.`network` IN ('%s', '%s', '%s') AND
                                                ((`gcontact`.`last_contact` >= `gcontact`.`last_failure`) OR (`gcontact`.`updated` >= `gcontact`.`last_failure`)))) AND
-                                               (`gcontact`.`name` REGEXP '%s' OR `gcontact`.`nick` REGEXP '%s') $extra_sql
+                                               (`gcontact`.`addr` LIKE '%s' OR `gcontact`.`name` LIKE '%s' OR `gcontact`.`nick` LIKE '%s') $extra_sql
                                                        GROUP BY `gcontact`.`nurl`
-                                                       ORDER BY `gcontact`.`updated` DESC ",
+                                                       ORDER BY `gcontact`.`nurl` DESC
+                                                       LIMIT 1000",
                                                intval(local_user()), dbesc(CONTACT_IS_SHARING), dbesc(CONTACT_IS_FRIEND),
                                                dbesc(NETWORK_DFRN), dbesc($ostatus), dbesc($diaspora),
-                                               dbesc(escape_tags($search)), dbesc(escape_tags($search)));
+                                               dbesc(escape_tags($search)), dbesc(escape_tags($search)), dbesc(escape_tags($search)));
+
                        return $results;
                }