X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=inline;f=mod%2Fdirfind.php;h=7b603a742755de70105354926424aca161a5cc2c;hb=063f0e9cb06bb09d06c2630d4b6cecc5eb381fdc;hp=9d3c852f493833b23f1459ecfa5d0f072d16f0a1;hpb=7c0b591043b8c5183b1b697be9de772667f4778b;p=friendica.git diff --git a/mod/dirfind.php b/mod/dirfind.php index 9d3c852f49..7b603a7427 100644 --- a/mod/dirfind.php +++ b/mod/dirfind.php @@ -10,6 +10,7 @@ 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; @@ -19,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) { @@ -44,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])); } @@ -67,6 +69,7 @@ function dirfind_content(App $a, $prefix = "") { $o = ''; if ($search) { + $pager = new Pager($a->query_string); if ($discover_user) { $j = new stdClass(); @@ -94,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 = (($pager->getPage()) * $perpage) - $perpage; + $pager->setItemsPerPage(80); if (Config::get('system','diaspora_enabled')) { $diaspora = Protocol::DIASPORA; @@ -124,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` @@ -136,12 +138,12 @@ 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->items_page = $pager->getItemsPerPage(); $j->page = $pager->getPage(); foreach ($results AS $result) { if (PortableContact::alternateOStatusUrl($result["nurl"])) { @@ -178,18 +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() : ''); - 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); + + $pager->setItemsPerPage($j->items_page); } if (!empty($j->results)) { - $pager = new Pager($a->query_string, $j->items_page); - $id = 0; foreach ($j->results as $jj) { @@ -249,14 +251,12 @@ function dirfind_content(App $a, $prefix = "") { $entries[] = $entry; } - $tpl = get_markup_template('viewcontact_template.tpl'); - - $o .= replace_macros($tpl,[ + $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); }