X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=inline;f=mod%2Fdirfind.php;h=7b603a742755de70105354926424aca161a5cc2c;hb=063f0e9cb06bb09d06c2630d4b6cecc5eb381fdc;hp=3e5aa83a7208df0f14c3cddc6b523b4bcc927afc;hpb=d54e56c659103e43647fab68bb740b24528ddf0c;p=friendica.git diff --git a/mod/dirfind.php b/mod/dirfind.php index 3e5aa83a72..7b603a7427 100644 --- a/mod/dirfind.php +++ b/mod/dirfind.php @@ -5,10 +5,12 @@ use Friendica\App; use Friendica\Content\ContactSelector; +use Friendica\Content\Pager; use Friendica\Content\Widget; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Protocol; +use Friendica\Core\Renderer; use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBA; @@ -18,6 +20,7 @@ use Friendica\Network\Probe; use Friendica\Protocol\PortableContact; use Friendica\Util\Network; use Friendica\Util\Proxy as ProxyUtils; +use Friendica\Util\Strings; function dirfind_init(App $a) { @@ -43,15 +46,15 @@ function dirfind_content(App $a, $prefix = "") { $local = Config::get('system','poco_local_search'); - $search = $prefix.notags(trim(defaults($_REQUEST, 'search', ''))); + $search = $prefix.Strings::removeTags(trim(defaults($_REQUEST, 'search', ''))); $header = ''; if (strpos($search,'@') === 0) { $search = substr($search,1); $header = L10n::t('People Search - %s', $search); - if ((valid_email($search) && Network::isEmailDomainValid($search)) || - (substr(normalise_link($search), 0, 7) == "http://")) { + if ((filter_var($search, FILTER_VALIDATE_EMAIL) && Network::isEmailDomainValid($search)) || + (substr(Strings::normaliseLink($search), 0, 7) == "http://")) { $user_data = Probe::uri($search); $discover_user = (in_array($user_data["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::OSTATUS, Protocol::DIASPORA])); } @@ -66,12 +69,13 @@ function dirfind_content(App $a, $prefix = "") { $o = ''; if ($search) { + $pager = new Pager($a->query_string); if ($discover_user) { $j = new stdClass(); $j->total = 1; $j->items_page = 1; - $j->page = $a->pager['page']; + $j->page = $pager->getPage(); $objresult = new stdClass(); $objresult->cid = 0; @@ -93,14 +97,13 @@ function dirfind_content(App $a, $prefix = "") { Model\GContact::update($user_data); } } elseif ($local) { - - if ($community) + if ($community) { $extra_sql = " AND `community`"; - else + } else { $extra_sql = ""; + } - $perpage = 80; - $startrec = (($a->pager['page']) * $perpage) - $perpage; + $pager->setItemsPerPage(80); if (Config::get('system','diaspora_enabled')) { $diaspora = Protocol::DIASPORA; @@ -123,8 +126,8 @@ function dirfind_content(App $a, $prefix = "") { (`url` LIKE '%s' OR `name` LIKE '%s' OR `location` LIKE '%s' OR `addr` LIKE '%s' OR `about` LIKE '%s' OR `keywords` LIKE '%s') $extra_sql", DBA::escape(Protocol::DFRN), DBA::escape($ostatus), DBA::escape($diaspora), - DBA::escape(escape_tags($search2)), DBA::escape(escape_tags($search2)), DBA::escape(escape_tags($search2)), - DBA::escape(escape_tags($search2)), DBA::escape(escape_tags($search2)), DBA::escape(escape_tags($search2))); + DBA::escape(Strings::escapeHtml($search2)), DBA::escape(Strings::escapeHtml($search2)), DBA::escape(Strings::escapeHtml($search2)), + DBA::escape(Strings::escapeHtml($search2)), DBA::escape(Strings::escapeHtml($search2)), DBA::escape(Strings::escapeHtml($search2))); $results = q("SELECT `nurl` FROM `gcontact` @@ -135,13 +138,13 @@ function dirfind_content(App $a, $prefix = "") { GROUP BY `nurl` ORDER BY `updated` DESC LIMIT %d, %d", DBA::escape(Protocol::DFRN), DBA::escape($ostatus), DBA::escape($diaspora), - DBA::escape(escape_tags($search2)), DBA::escape(escape_tags($search2)), DBA::escape(escape_tags($search2)), - DBA::escape(escape_tags($search2)), DBA::escape(escape_tags($search2)), DBA::escape(escape_tags($search2)), - intval($startrec), intval($perpage)); + DBA::escape(Strings::escapeHtml($search2)), DBA::escape(Strings::escapeHtml($search2)), DBA::escape(Strings::escapeHtml($search2)), + DBA::escape(Strings::escapeHtml($search2)), DBA::escape(Strings::escapeHtml($search2)), DBA::escape(Strings::escapeHtml($search2)), + $pager->getStart(), $pager->getItemsPerPage()); $j = new stdClass(); $j->total = $count[0]["total"]; - $j->items_page = $perpage; - $j->page = $a->pager['page']; + $j->items_page = $pager->getItemsPerPage(); + $j->page = $pager->getPage(); foreach ($results AS $result) { if (PortableContact::alternateOStatusUrl($result["nurl"])) { continue; @@ -177,22 +180,18 @@ function dirfind_content(App $a, $prefix = "") { // Add found profiles from the global directory to the local directory Worker::add(PRIORITY_LOW, 'DiscoverPoCo', "dirsearch", urlencode($search)); } else { + $p = (($pager->getPage() != 1) ? '&p=' . $pager->getPage() : ''); - $p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : ''); - - if(strlen(Config::get('system','directory'))) - $x = Network::fetchUrl(get_server().'/lsearch?f=' . $p . '&search=' . urlencode($search)); + if (strlen(Config::get('system','directory'))) { + $x = Network::fetchUrl(get_server() . '/lsearch?f=' . $p . '&search=' . urlencode($search)); + } $j = json_decode($x); - } - if ($j->total) { - $a->setPagerTotal($j->total); - $a->setPagerItemsPage($j->items_page); + $pager->setItemsPerPage($j->items_page); } if (!empty($j->results)) { - $id = 0; foreach ($j->results as $jj) { @@ -252,14 +251,12 @@ function dirfind_content(App $a, $prefix = "") { $entries[] = $entry; } - $tpl = get_markup_template('viewcontact_template.tpl'); - - $o .= replace_macros($tpl,[ - 'title' => $header, - '$contacts' => $entries, - '$paginate' => paginate($a), - ]); - + $tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl'); + $o .= Renderer::replaceMacros($tpl,[ + 'title' => $header, + '$contacts' => $entries, + '$paginate' => $pager->renderFull($j->total), + ]); } else { info(L10n::t('No matches') . EOL); }