]> git.mxchange.org Git - friendica.git/blob - src/Module/Search/Directory.php
900bf818bc57e7cde59994e3a1e39e74564bab5a
[friendica.git] / src / Module / Search / Directory.php
1 <?php
2
3 namespace Friendica\Module\Search;
4
5 use Friendica\BaseModule;
6 use Friendica\Content\ContactSelector;
7 use Friendica\Content\Pager;
8 use Friendica\Content\Widget;
9 use Friendica\Core\L10n;
10 use Friendica\Core\Renderer;
11 use Friendica\Module\BaseSearchModule;
12 use Friendica\Util\Proxy as ProxyUtils;
13 use Friendica\Util\Strings;
14 use Friendica\Model;
15
16 /**
17  * Multi search module, which is needed for further search operations
18  */
19 class Directory extends BaseSearchModule
20 {
21         public static function content()
22         {
23                 if (!local_user()) {
24                         notice(L10n::t('Permission denied.'));
25                         return Login::form();
26                 }
27
28                 $a = self::getApp();
29
30                 if (empty($a->page['aside'])) {
31                         $a->page['aside'] = '';
32                 }
33
34                 $a->page['aside'] .= Widget::findPeople();
35                 $a->page['aside'] .= Widget::follow();
36
37                 return self::performSearch();
38         }
39
40         public static function performSearch($prefix = '')
41         {
42                 $a      = self::getApp();
43                 $config = $a->getConfig();
44
45                 $community = false;
46
47                 $localSearch = $config->get('system', 'poco_local_search');
48
49                 $search = $prefix . Strings::escapeTags(trim(defaults($_REQUEST, 'search', '')));
50
51                 if (!$search) {
52                         return '';
53                 }
54
55                 $header = '';
56
57                 if (strpos($search, '@') === 0) {
58                         $search  = substr($search, 1);
59                         $header  = L10n::t('People Search - %s', $search);
60                         $results = Model\Search::searchUser($search);
61                 }
62
63                 if (strpos($search, '!') === 0) {
64                         $search    = substr($search, 1);
65                         $community = true;
66                         $header    = L10n::t('Forum Search - %s', $search);
67                 }
68
69                 $pager = new Pager($a->query_string);
70
71                 if ($localSearch && empty($results)) {
72                         $pager->setItemsPerPage(80);
73                         $results = Model\Search::searchLocal($search, $pager->getStart(), $pager->getItemsPerPage(), $community);
74
75                 } elseif (strlen($config->get('system', 'directory')) && empty($results)) {
76                         $results = Model\Search::searchDirectory($search, $pager->getPage());
77                         $pager->setItemsPerPage($results->getItemsPage());
78                 }
79
80                 return self::printResult($results, $pager, $header);
81         }
82 }