X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fmatch.php;h=6a2e350bcc2a07f5615f464aa0dc0a8f991bf6ab;hb=893f6bd692efa94202dd472ea160eef68a420cf9;hp=451821f9f1285a0969ee3ed5841cd5483166d0cd;hpb=1938ec3ebecd71c806d1cddf2400786a649a8c40;p=friendica.git diff --git a/mod/match.php b/mod/match.php index 451821f9f1..6a2e350bcc 100644 --- a/mod/match.php +++ b/mod/match.php @@ -1,23 +1,36 @@ . + * */ use Friendica\App; -use Friendica\Content\Pager; use Friendica\Content\Widget; -use Friendica\Core\Config; -use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; +use Friendica\Core\Search; use Friendica\Database\DBA; +use Friendica\DI; use Friendica\Model\Contact; use Friendica\Model\Profile; -use Friendica\Util\Network; -use Friendica\Util\Proxy as ProxyUtils; +use Friendica\Module\Contact as ModuleContact; /** - * @brief Controller for /match. + * Controller for /match. * * It takes keywords from your profile and queries the directory server for * matching keywords from other profiles. @@ -25,6 +38,9 @@ use Friendica\Util\Proxy as ProxyUtils; * @param App $a App * * @return string + * @throws ImagickException + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @throws Exception */ function match_content(App $a) { @@ -32,10 +48,10 @@ function match_content(App $a) return ''; } - $a->page['aside'] .= Widget::findPeople(); - $a->page['aside'] .= Widget::follow(); + DI::page()['aside'] .= Widget::findPeople(); + DI::page()['aside'] .= Widget::follow(); - $_SESSION['return_path'] = $a->cmd; + $_SESSION['return_path'] = DI::args()->getCommand(); $profile = Profile::getByUID(local_user()); @@ -43,7 +59,7 @@ function match_content(App $a) return ''; } if (!$profile['pub_keywords'] && (!$profile['prv_keywords'])) { - notice(L10n::t('No keywords to match. Please add keywords to your default profile.') . EOL); + notice(DI::l10n()->t('No keywords to match. Please add keywords to your profile.')); return ''; } @@ -53,17 +69,17 @@ function match_content(App $a) $params['s'] = $tags; $params['n'] = 100; - if (strlen(Config::get('system', 'directory'))) { - $host = get_server(); + if (strlen(DI::config()->get('system', 'directory'))) { + $host = Search::getGlobalDirectory(); } else { - $host = System::baseUrl(); + $host = DI::baseUrl(); } - $msearch_json = Network::post($host . '/msearch', $params)->getBody(); + $msearch_json = DI::httpRequest()->post($host . '/msearch', $params)->getBody(); $msearch = json_decode($msearch_json); - $start = defaults($_GET, 'start', 0); + $start = $_GET['start'] ?? 0; $entries = []; $paginate = ''; @@ -72,49 +88,26 @@ function match_content(App $a) $profile = $msearch->results[$i]; // Already known contact - if (Contact::getIdForURL($profile->url, local_user(), true)) { + if (!$profile || Contact::getIdForURL($profile->url, local_user(), false)) { continue; } - // Workaround for wrong directory photo URL - $profile->photo = str_replace('http:///photo/', get_server() . '/photo/', $profile->photo); - - $connlnk = System::baseUrl() . '/follow/?url=' . $profile->url; - $photo_menu = [ - 'profile' => [L10n::t("View Profile"), Contact::magicLink($profile->url)], - 'follow' => [L10n::t("Connect/Follow"), $connlnk] - ]; - - $contact_details = Contact::getDetailsByURL($profile->url, 0); - - $entry = [ - 'url' => Contact::magicLink($profile->url), - 'itemurl' => defaults($contact_details, 'addr', $profile->url), - 'name' => $profile->name, - 'details' => defaults($contact_details, 'location', ''), - 'tags' => defaults($contact_details, 'keywords', ''), - 'about' => defaults($contact_details, 'about', ''), - 'account_type' => Contact::getAccountType($contact_details), - 'thumb' => ProxyUtils::proxifyUrl($profile->photo, false, ProxyUtils::SIZE_THUMB), - 'conntxt' => L10n::t('Connect'), - 'connlnk' => $connlnk, - 'img_hover' => $profile->tags, - 'photo_menu' => $photo_menu, - 'id' => $i, - ]; - $entries[] = $entry; + $contact = Contact::getByURLForUser($profile->url, local_user()); + if (!empty($contact)) { + $entries[] = ModuleContact::getContactTemplateVars($contact, $i); + } } $data = [ 'class' => 'pager', 'first' => [ 'url' => 'match', - 'text' => L10n::t('first'), + 'text' => DI::l10n()->t('first'), 'class' => 'previous' . ($start == 0 ? 'disabled' : '') ], 'next' => [ 'url' => 'match?start=' . $i, - 'text' => L10n::t('next'), + 'text' => DI::l10n()->t('next'), 'class' => 'next' . ($i >= $msearch->total ? ' disabled' : '') ] ]; @@ -124,12 +117,12 @@ function match_content(App $a) } if (empty($entries)) { - info(L10n::t('No matches') . EOL); + info(DI::l10n()->t('No matches')); } $tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl'); $o = Renderer::replaceMacros($tpl, [ - '$title' => L10n::t('Profile Match'), + '$title' => DI::l10n()->t('Profile Match'), '$contacts' => $entries, '$paginate' => $paginate ]);