<?php
+/**
+ * @file include/acl_selectors.php
+ */
+
require_once("include/contact_selectors.php");
require_once("include/contact_widgets.php");
+require_once("include/DirSearch.php");
require_once("include/features.php");
require_once("mod/proxy.php");
-/**
- *
- */
/**
* @package acl_selectors
if(!local_user())
return "";
- $start = (x($_REQUEST,'start')?$_REQUEST['start']:0);
- $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);
+ $start = (x($_REQUEST,'start') ? $_REQUEST['start'] : 0);
+ $count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100);
+ $search = (x($_REQUEST,'search') ? $_REQUEST['search'] : "");
+ $type = (x($_REQUEST,'type') ? $_REQUEST['type'] : "");
+ $mode = (x($_REQUEST,'mode') ? $_REQUEST['mode'] : "");
+ $conv_id = (x($_REQUEST,'conversation') ? $_REQUEST['conversation'] : null);
// For use with jquery.textcomplete for private mail completion
if ($type==''){
- $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum` FROM `contact`
+ $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact`
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
AND NOT (`network` IN ('%s', '%s'))
$sql_extra2
}
elseif ($type=='c'){
- $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum` FROM `contact`
+ $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact`
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
AND NOT (`network` IN ('%s'))
$sql_extra2
);
}
elseif($type == 'a') {
- $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
+ $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact`
WHERE `uid` = %d AND `pending` = 0
$sql_extra2
ORDER BY `name` ASC ",
if($r) {
foreach($r as $g) {
$contacts[] = array(
- "photo" => $g['photo'],
+ "photo" => proxy_url($g['photo'], false, PROXY_SIZE_MICRO),
"name" => $g['name'],
"nick" => (x($g['addr']) ? $g['addr'] : $g['url']),
+ "network" => $g['network'],
+ "link" => $g['url'],
+ "forum" => (x($g['community']) ? 1 : 0),
);
}
}
"network" => $g['network'],
"link" => $g['url'],
"nick" => htmlentities(($g['attag']) ? $g['attag'] : $g['nick']),
- "forum" => $g['forum']
+ "forum" => ((x($g['forum']) || x($g['prv'])) ? 1 : 0),
);
}
}
killme();
}
-
+/**
+ * @brief Searching for global contacts for autocompletion
+ *
+ * @param App $a
+ * @return array with the search results
+ */
function navbar_complete(&$a) {
// logger('navbar_complete');
return;
}
- $local = get_config('system','poco_local_search');
- $local = true;
+ // check if searching in the local global contact table is enabled
+ $localsearch = get_config('system','poco_local_search');
$search = $prefix.notags(trim($_REQUEST['search']));
+ $mode = $_REQUEST['mode'];
+
+ // don't search if search term has less than 2 characters
if(! $search || mb_strlen($search) < 2)
return array();
- $star = false;
- $address = false;
-
if(substr($search,0,1) === '@')
$search = substr($search,1);
- if(substr($search,0,1) === '*') {
- $star = true;
- $search = substr($search,1);
- }
-
- if(strpos($search,'@') !== false) {
- $address = true;
- }
-
- if($local) {
- require_once("include/dir_fns.php");
- $x = dirsearch_autocomplete($search);
+ if($localsearch) {
+ $x = DirSearch::global_search_by_name($search, $mode);
return $x;
}
- if(! $local) {
- require_once("include/dir_fns.php");
- $url = $directory['url'] . '/dirsearch';
-
-
+ if(! $localsearch) {
$p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : '');
-
$x = z_fetch_url(get_server().'/lsearch?f=' . $p . '&search=' . urlencode($search));
if($x['success']) {
}
}
return;
-}
\ No newline at end of file
+}