<?php
+/**
+ * @copyright Copyright (C) 2010-2022, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
namespace Friendica\Module\Contact;
use Friendica\BaseModule;
use Friendica\Content\Pager;
+use Friendica\Content\Widget;
use Friendica\Core\Renderer;
-use Friendica\Core\Session;
use Friendica\DI;
use Friendica\Model;
+use Friendica\Model\User;
use Friendica\Module;
use Friendica\Network\HTTPException;
class Contacts extends BaseModule
{
- public static function content(array $parameters = [])
+ protected function content(array $request = []): string
{
- $app = DI::app();
-
- if (!local_user()) {
+ if (!DI::userSession()->getLocalUserId()) {
throw new HTTPException\ForbiddenException();
}
- $cid = $parameters['id'];
- $type = $parameters['type'] ?? 'all';
+ $cid = $this->parameters['id'];
+ $type = $this->parameters['type'] ?? 'all';
+ $accounttype = $_GET['accounttype'] ?? '';
+ $accounttypeid = User::getAccountTypeByString($accounttype);
if (!$cid) {
throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid contact.'));
throw new HTTPException\NotFoundException(DI::l10n()->t('Contact not found.'));
}
- $localContactId = Model\Contact::getPublicIdByUserId(local_user());
+ $localContactId = Model\Contact::getPublicIdByUserId(DI::userSession()->getLocalUserId());
- Model\Profile::load($app, '', $contact);
+ DI::page()['aside'] = Widget\VCard::getHTML($contact);
$condition = [
'blocked' => false,
'self' => false,
'hidden' => false,
+ 'failed' => false,
];
+ if (isset($accounttypeid)) {
+ $condition['contact-type'] = $accounttypeid;
+ }
+
$noresult_label = DI::l10n()->t('No known contacts.');
switch ($type) {
$total = Model\Contact\Relation::countMutuals($cid, $condition);
break;
case 'common':
- $condition = [
- 'NOT `self` AND NOT `blocked` AND NOT `hidden` AND `id` != ?',
- $localContactId,
- ];
$total = Model\Contact\Relation::countCommon($localContactId, $cid, $condition);
$noresult_label = DI::l10n()->t('No common contacts.');
break;
'$paginate' => $pager->renderFull($total),
]);
+ DI::page()['aside'] .= Widget::accountTypes($_SERVER['REQUEST_URI'], $accounttype);
+
return $o;
}
}