. * */ namespace Friendica\Module; use Friendica\BaseModule; use Friendica\Content\Pager; use Friendica\Core\Renderer; use Friendica\DI; use Friendica\Model; use Friendica\Network\HTTPException; /** * This module shows all public friends of the selected contact */ class AllFriends extends BaseModule { public static function content(array $parameters = []) { $app = DI::app(); if (!local_user()) { throw new HTTPException\ForbiddenException(); } $cid = 0; // @TODO: Replace with parameter from router if ($app->argc > 1) { $cid = intval($app->argv[1]); } if (!$cid) { throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid contact.')); } $uid = $app->user['uid']; $contact = Model\Contact::getById($cid, ['name', 'url', 'photo', 'uid', 'id']); if (empty($contact)) { throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid contact.')); } DI::page()['aside'] = ""; Model\Profile::load($app, "", Model\Contact::getByURL($contact["url"], false)); $total = Model\Contact\Relation::countFollows($cid); $pager = new Pager(DI::l10n(), DI::args()->getQueryString()); $friends = Model\Contact\Relation::listFollows($cid, [], $pager->getStart(), $pager->getItemsPerPage()); if (empty($friends)) { return DI::l10n()->t('No friends to display.'); } $tab_str = Contact::getTabsHTML($app, $contact, 4); $entries = []; foreach ($friends as $friend) { $entries[] = Contact::getContactTemplateVars($friend); } $tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl'); return Renderer::replaceMacros($tpl, [ '$tab_str' => $tab_str, '$contacts' => $entries, '$paginate' => $pager->renderFull($total), ]); } }