From aee94b38c174f0e182d6d14309ef3f4aef2563b0 Mon Sep 17 00:00:00 2001 From: rabuzarus <> Date: Mon, 1 Feb 2016 18:21:29 +0100 Subject: [PATCH] rework autocomplete: add class dir and static function --- include/acl_selectors.php | 4 +- include/dir_fns.php | 74 +++++++++++++++++--------------- view/templates/contacts-head.tpl | 12 ------ 3 files changed, 42 insertions(+), 48 deletions(-) diff --git a/include/acl_selectors.php b/include/acl_selectors.php index 46f737e4c..b5c43e38e 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -659,7 +659,7 @@ function acl_lookup(&$a, $out_type = 'json') { * @brief Searching for global contacts for autocompletion * * @param App $a - * @return type + * @return array */ function navbar_complete(&$a) { @@ -682,7 +682,7 @@ function navbar_complete(&$a) { $search = substr($search,1); if($localsearch) { - $x = dirsearch_global_by_name($search); + $x = dir::global_search_by_name($search); return $x; } diff --git a/include/dir_fns.php b/include/dir_fns.php index 2e39e7ddb..b85cb5b2d 100644 --- a/include/dir_fns.php +++ b/include/dir_fns.php @@ -2,45 +2,51 @@ /** * @file include/dir_fns.php - * @brief Functions for directory */ + /** - * @brief Search global contact table by nick or name - * * - * @param string $search - * @return array + * @brief This class handels directory related functions */ -function dirsearch_global_by_name($search) { +class dir { - if($search) { - // check supported networks - if (get_config('system','diaspora_enabled')) - $diaspora = NETWORK_DIASPORA; - else - $diaspora = NETWORK_DFRN; + /** + * @brief Search global contact table by nick or name + * * + * @param string $search Name or nick + * @return array + */ + public static function global_search_by_name($search) { - if (!get_config('system','ostatus_disabled')) - $ostatus = NETWORK_OSTATUS; - else - $ostatus = NETWORK_DFRN; + if($search) { + // check supported networks + if (get_config('system','diaspora_enabled')) + $diaspora = NETWORK_DIASPORA; + else + $diaspora = NETWORK_DFRN; + + if (!get_config('system','ostatus_disabled')) + $ostatus = NETWORK_OSTATUS; + else + $ostatus = NETWORK_DFRN; + + $results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`nick`, `gcontact`.`photo`, + `gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr` + FROM `gcontact` + LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl` + AND `contact`.`uid` = %d AND NOT `contact`.`blocked` + 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`.`url` REGEXP '%s' OR `gcontact`.`name` REGEXP '%s' OR `gcontact`.`nick` REGEXP '%s' + ) + GROUP BY `gcontact`.`nurl` + ORDER BY `gcontact`.`updated` DESC ", + 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))); + return $results; + } - $results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`nick`, `gcontact`.`photo`, - `gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr` - FROM `gcontact` - LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl` - AND `contact`.`uid` = %d AND NOT `contact`.`blocked` - 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`.`url` REGEXP '%s' OR `gcontact`.`name` REGEXP '%s' OR `gcontact`.`nick` REGEXP '%s' - ) - GROUP BY `gcontact`.`nurl` - ORDER BY `gcontact`.`updated` DESC ", - 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))); - return $results; } - -} \ No newline at end of file +} diff --git a/view/templates/contacts-head.tpl b/view/templates/contacts-head.tpl index 25055d405..ea562233f 100644 --- a/view/templates/contacts-head.tpl +++ b/view/templates/contacts-head.tpl @@ -2,18 +2,6 @@