namespace Friendica\Module;
+use Friendica\App\Arguments;
use Friendica\BaseModule;
use Friendica\Content\ContactSelector;
use Friendica\Content\Pager;
/**
* Performs a search with an optional prefix
*
+ * @param string $search Search query
* @param string $prefix A optional prefix (e.g. @ or !) for searching
*
* @return string
* @throws HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
- public static function performSearch($prefix = '')
+ public static function performSearch($search, $prefix = '')
{
$a = self::getApp();
$config = $a->getConfig();
$localSearch = $config->get('system', 'poco_local_search');
- $search = $prefix . Strings::escapeTags(trim(defaults($_REQUEST, 'search', '')));
+ $search = $prefix . $search;
if (!$search) {
return '';
$search = substr($search, 1);
$type = Search::TYPE_PEOPLE;
$header = L10n::t('People Search - %s', $search);
- $results = Search::getContactsFromProbe($search);
+
+ if (strrpos($search, '@') > 0) {
+ $results = Search::getContactsFromProbe($search);
+ }
}
if (strpos($search, '!') === 0) {
$header = L10n::t('Forum Search - %s', $search);
}
- $pager = new Pager($a->query_string);
+ /** @var Arguments $args */
+ $args = self::getClass(Arguments::class);
+ $pager = new Pager($args->getQueryString());
if ($localSearch && empty($results)) {
$pager->setItemsPerPage(80);
$results = Search::getContactsFromLocalDirectory($search, $type, $pager->getStart(), $pager->getItemsPerPage());
-
} elseif (strlen($config->get('system', 'directory')) && empty($results)) {
$results = Search::getContactsFromGlobalDirectory($search, $type, $pager->getPage());
$pager->setItemsPerPage($results->getItemsPage());
*/
protected static function printResult(ResultList $results, Pager $pager, $header = '')
{
- if (empty($results) || empty($results->getResults())) {
- info(L10n::t('No matches') . EOL);
+ if ($results->getTotal() == 0) {
+ info(L10n::t('No matches'));
return '';
}