Move Module\Search\Acl::contactAutocomplete to Core\Search::searchGlobalContact
- Replace broken reference to directory /lsearch module with /search module
This commit is contained in:
parent
4e185ebc84
commit
445133cb21
2 changed files with 91 additions and 77 deletions
|
@ -5,6 +5,7 @@ namespace Friendica\Core;
|
|||
use Friendica\BaseObject;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Model\Contact;
|
||||
use Friendica\Model\GContact;
|
||||
use Friendica\Network\HTTPException;
|
||||
use Friendica\Network\Probe;
|
||||
use Friendica\Object\Search\ContactResult;
|
||||
|
@ -245,4 +246,48 @@ class Search extends BaseObject
|
|||
|
||||
return $resultList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Searching for global contacts for autocompletion
|
||||
*
|
||||
* @brief Searching for global contacts for autocompletion
|
||||
* @param string $search Name or part of a name or nick
|
||||
* @param string $mode Search mode (e.g. "community")
|
||||
* @param int $page Page number (starts at 1)
|
||||
* @return array with the search results
|
||||
* @throws HTTPException\InternalServerErrorException
|
||||
*/
|
||||
public static function searchGlobalContact($search, $mode, int $page = 1)
|
||||
{
|
||||
if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// don't search if search term has less than 2 characters
|
||||
if (!$search || mb_strlen($search) < 2) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (substr($search, 0, 1) === '@') {
|
||||
$search = substr($search, 1);
|
||||
}
|
||||
|
||||
// check if searching in the local global contact table is enabled
|
||||
if (Config::get('system', 'poco_local_search')) {
|
||||
$return = GContact::searchByName($search, $mode);
|
||||
} else {
|
||||
$p = $page > 1 ? 'p=' . $page : '';
|
||||
$curlResult = Network::curl(get_server() . '/search/people?' . $p . '&q=' . urlencode($search), false, ['accept_content' => 'application/json']);
|
||||
if ($curlResult->isSuccess()) {
|
||||
$searchResult = json_decode($curlResult->getBody(), true);
|
||||
if (!empty($searchResult['profiles'])) {
|
||||
$return = $searchResult['profiles'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $return ?? [];
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue