3 * @copyright Copyright (C) 2020, Friendica
5 * @license GNU AGPL version 3 or any later version
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 namespace Friendica\Module;
24 use Friendica\BaseModule;
25 use Friendica\Content\Pager;
26 use Friendica\Core\Renderer;
29 use Friendica\Network\HTTPException;
32 * This module shows all public friends of the selected contact
34 class AllFriends extends BaseModule
36 public static function content(array $parameters = [])
41 throw new HTTPException\ForbiddenException();
46 // @TODO: Replace with parameter from router
48 $cid = intval($app->argv[1]);
52 throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid contact.'));
55 $uid = $app->user['uid'];
57 $contact = Model\Contact::getById($cid, []);
59 if (empty($contact)) {
60 throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid contact.'));
63 DI::page()['aside'] = "";
64 Model\Profile::load($app, "", $contact);
66 $total = Model\Contact\Relation::countFollows($cid);
68 $pager = new Pager(DI::l10n(), DI::args()->getQueryString());
70 $friends = Model\Contact\Relation::listFollows($cid, [], [], $pager->getItemsPerPage(), $pager->getStart());
71 if (empty($friends)) {
72 return DI::l10n()->t('No friends to display.');
75 $tab_str = Contact::getTabsHTML($app, $contact, 4);
78 foreach ($friends as $friend) {
79 $entries[] = Contact::getContactTemplateVars($friend);
82 $tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl');
83 return Renderer::replaceMacros($tpl, [
84 '$tab_str' => $tab_str,
85 '$contacts' => $entries,
86 '$paginate' => $pager->renderFull($total),