X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Facl_selectors.php;h=0a9b2c90aeeb6ab522d8fc5ba6db32b78ca39eb9;hb=ca3fc788b24d0f7634801c31af2491d51771722d;hp=72c434692c0c6087f432f56402049ba41c248b70;hpb=e312b734ca86f0e3b8903825357e40fab9a4e6a8;p=friendica.git diff --git a/include/acl_selectors.php b/include/acl_selectors.php index 72c434692c..0a9b2c90ae 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -382,7 +382,7 @@ function acl_lookup(&$a, $out_type = 'json') { $count = (x($_REQUEST,'count')?$_REQUEST['count']:100); $search = (x($_REQUEST,'search')?$_REQUEST['search']:""); $type = (x($_REQUEST,'type')?$_REQUEST['type']:""); - + $conv_id = (x($_REQUEST,'conversation')?$_REQUEST['conversation']:null); // For use with jquery.autocomplete for private mail completion @@ -399,19 +399,19 @@ function acl_lookup(&$a, $out_type = 'json') { } else { $sql_extra = $sql_extra2 = ""; } - + // count groups and contacts if ($type=='' || $type=='g'){ - $r = q("SELECT COUNT(`id`) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra", + $r = q("SELECT COUNT(*) AS g FROM `group` WHERE `deleted` = 0 AND `uid` = %d $sql_extra", intval(local_user()) ); $group_count = (int)$r[0]['g']; } else { $group_count = 0; } - + if ($type=='' || $type=='c'){ - $r = q("SELECT COUNT(`id`) AS c FROM `contact` + $r = q("SELECT COUNT(*) AS c FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != '' $sql_extra2" , @@ -423,7 +423,7 @@ function acl_lookup(&$a, $out_type = 'json') { // autocomplete for Private Messages - $r = q("SELECT COUNT(`id`) AS c FROM `contact` + $r = q("SELECT COUNT(*) AS c FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `network` IN ('%s','%s','%s') $sql_extra2" , @@ -439,7 +439,7 @@ function acl_lookup(&$a, $out_type = 'json') { // autocomplete for Contacts - $r = q("SELECT COUNT(`id`) AS c FROM `contact` + $r = q("SELECT COUNT(*) AS c FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `pending` = 0 $sql_extra2" , intval(local_user()) @@ -450,6 +450,7 @@ function acl_lookup(&$a, $out_type = 'json') { $contact_count = 0; } + $tot = $group_count+$contact_count; $groups = array(); @@ -553,6 +554,52 @@ function acl_lookup(&$a, $out_type = 'json') { $items = array_merge($groups, $contacts); + if ($conv_id) { + /* if $conv_id is set, get unknow contacts in thread */ + /* but first get know contacts url to filter them out */ + function _contact_link($i){ return dbesc($i['link']); } + $known_contacts = array_map(_contact_link, $contacts); + $unknow_contacts=array(); + $r = q("select + `author-avatar`,`author-name`,`author-link` + from item where parent=%d + and ( + `author-name` LIKE '%%%s%%' OR + `author-link` LIKE '%%%s%%' + ) and + `author-link` NOT IN ('%s') + GROUP BY `author-link` + ORDER BY `author-name` ASC + ", + intval($conv_id), + dbesc($search), + dbesc($search), + implode("','", $known_contacts) + ); + if (is_array($r) && count($r)){ + foreach($r as $row) { + // nickname.. + $up = parse_url($row['author-link']); + $nick = explode("/",$up['path']); + $nick = $nick[count($nick)-1]; + $nick .= "@".$up['host']; + // /nickname + $unknow_contacts[] = array( + "type" => "c", + "photo" => $row['author-avatar'], + "name" => $row['author-name'], + "id" => '', + "network" => "unknown", + "link" => $row['author-link'], + "nick" => $nick, + "forum" => false + ); + } + } + + $items = array_merge($items, $unknow_contacts); + $tot += count($unknow_contacts); + } if($out_type === 'html') { $o = array(