use Friendica\Core\Renderer;
use Friendica\Database\DBA;
use Friendica\Model\Item;
-use Friendica\Module\Directory;
+use Friendica\Module\BaseSearchModule;
use Friendica\Util\Strings;
function search_saved_searches() {
$search = substr($search,1);
}
if (strpos($search,'@') === 0) {
- return Directory::performSearch();
+ return BaseSearchModule::performSearch();
}
if (strpos($search,'!') === 0) {
- return Directory::performSearch();
+ return BaseSearchModule::performSearch();
}
if (!empty($_GET['search-option']))
$tag = true;
break;
case 'contacts':
- return Directory::performSearch('@');
+ return BaseSearchModule::performSearch('@');
case 'forums':
- return Directory::performSearch('!');
+ return BaseSearchModule::performSearch('!');
}
if (!$search)
use Friendica\Object\Search\ResultList;
use Friendica\Util\Proxy as ProxyUtils;
use Friendica\Model;
+use Friendica\Util\Strings;
/**
* Base class for search modules
*/
-abstract class BaseSearchModule extends BaseModule
+class BaseSearchModule extends BaseModule
{
+ /**
+ * Performs a search with an optional prefix
+ *
+ * @param string $prefix A optional prefix (e.g. @ or !) for searching
+ *
+ * @return string
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
+ */
+ public static function performSearch($prefix = '')
+ {
+ $a = self::getApp();
+ $config = $a->getConfig();
+
+ $community = false;
+
+ $localSearch = $config->get('system', 'poco_local_search');
+
+ $search = $prefix . Strings::escapeTags(trim(defaults($_REQUEST, 'search', '')));
+
+ if (!$search) {
+ return '';
+ }
+
+ $header = '';
+
+ if (strpos($search, '@') === 0) {
+ $search = substr($search, 1);
+ $header = L10n::t('People Search - %s', $search);
+ $results = Model\Search::searchUser($search);
+ }
+
+ if (strpos($search, '!') === 0) {
+ $search = substr($search, 1);
+ $community = true;
+ $header = L10n::t('Forum Search - %s', $search);
+ }
+
+ $pager = new Pager($a->query_string);
+
+ if ($localSearch && empty($results)) {
+ $pager->setItemsPerPage(80);
+ $results = Model\Search::searchLocal($search, $pager->getStart(), $pager->getItemsPerPage(), $community);
+
+ } elseif (strlen($config->get('system', 'directory')) && empty($results)) {
+ $results = Model\Search::searchDirectory($search, $pager->getPage());
+ $pager->setItemsPerPage($results->getItemsPage());
+ }
+
+ return self::printResult($results, $pager, $header);
+ }
+
/**
* Prints a human readable search result
*
namespace Friendica\Module\Search;
-use Friendica\BaseModule;
-use Friendica\Content\ContactSelector;
-use Friendica\Content\Pager;
use Friendica\Content\Widget;
use Friendica\Core\L10n;
-use Friendica\Core\Renderer;
use Friendica\Module\BaseSearchModule;
-use Friendica\Util\Proxy as ProxyUtils;
-use Friendica\Util\Strings;
-use Friendica\Model;
/**
- * Multi search module, which is needed for further search operations
+ * Directory search module
*/
class Directory extends BaseSearchModule
{
return self::performSearch();
}
-
- public static function performSearch($prefix = '')
- {
- $a = self::getApp();
- $config = $a->getConfig();
-
- $community = false;
-
- $localSearch = $config->get('system', 'poco_local_search');
-
- $search = $prefix . Strings::escapeTags(trim(defaults($_REQUEST, 'search', '')));
-
- if (!$search) {
- return '';
- }
-
- $header = '';
-
- if (strpos($search, '@') === 0) {
- $search = substr($search, 1);
- $header = L10n::t('People Search - %s', $search);
- $results = Model\Search::searchUser($search);
- }
-
- if (strpos($search, '!') === 0) {
- $search = substr($search, 1);
- $community = true;
- $header = L10n::t('Forum Search - %s', $search);
- }
-
- $pager = new Pager($a->query_string);
-
- if ($localSearch && empty($results)) {
- $pager->setItemsPerPage(80);
- $results = Model\Search::searchLocal($search, $pager->getStart(), $pager->getItemsPerPage(), $community);
-
- } elseif (strlen($config->get('system', 'directory')) && empty($results)) {
- $results = Model\Search::searchDirectory($search, $pager->getPage());
- $pager->setItemsPerPage($results->getItemsPage());
- }
-
- return self::printResult($results, $pager, $header);
- }
}