<?php
/**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Friendica\Content\Nav;
use Friendica\Content\Text\BBCode;
use Friendica\Content\Text\HTML;
-use Friendica\Content\Widget;
use Friendica\Core\Hook;
use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
class Profile extends BaseProfile
{
- public static function rawContent(array $parameters = [])
+ protected function rawContent(array $request = [])
{
if (ActivityPub::isRequest()) {
- $user = DBA::selectFirst('user', ['uid'], ['nickname' => $parameters['nickname']]);
+ $user = DBA::selectFirst('user', ['uid'], ['nickname' => $this->parameters['nickname']]);
if (DBA::isResult($user)) {
- // The function returns an empty array when the account is removed, expired or blocked
- $data = ActivityPub\Transmitter::getProfile($user['uid']);
- if (!empty($data)) {
+ try {
+ $data = ActivityPub\Transmitter::getProfile($user['uid']);
header('Access-Control-Allow-Origin: *');
header('Cache-Control: max-age=23200, stale-while-revalidate=23200');
System::jsonExit($data, 'application/activity+json');
+ } catch (HTTPException\NotFoundException $e) {
+ System::jsonError(404, ['error' => 'Record not found']);
}
}
- if (DBA::exists('userd', ['username' => $parameters['nickname']])) {
+ if (DBA::exists('userd', ['username' => $this->parameters['nickname']])) {
// Known deleted user
- $data = ActivityPub\Transmitter::getDeletedUser($parameters['nickname']);
+ $data = ActivityPub\Transmitter::getDeletedUser($this->parameters['nickname']);
System::jsonError(410, $data);
} else {
}
}
- public static function content(array $parameters = [])
+ protected function content(array $request = []): string
{
$a = DI::app();
- $profile = ProfileModel::load($a, $parameters['nickname']);
+ $profile = ProfileModel::load($a, $this->parameters['nickname']);
if (!$profile) {
throw new HTTPException\NotFoundException(DI::l10n()->t('Profile not found.'));
}
DI::page()['htmlhead'] .= '<meta name="friendica.community" content="true" />' . "\n";
}
- DI::page()['htmlhead'] .= self::buildHtmlHead($profile, $parameters['nickname'], $remote_contact_id);
+ DI::page()['htmlhead'] .= self::buildHtmlHead($profile, $this->parameters['nickname'], $remote_contact_id);
Nav::setSelected('home');
$is_owner = local_user() == $profile['uid'];
- $o = self::getTabsHTML($a, 'profile', $is_owner, $profile);
+ $o = self::getTabsHTML($a, 'profile', $is_owner, $profile['nickname'], $profile['hide-friends']);
if (!empty($profile['hidewall']) && !$is_owner && !$remote_contact_id) {
notice(DI::l10n()->t('Access to this profile has been restricted.'));
$view_as_contact_alert = DI::l10n()->t(
'You\'re currently viewing your profile as <b>%s</b> <a href="%s" class="btn btn-sm pull-right">Cancel</a>',
htmlentities($view_as_contacts[$key]['name'], ENT_COMPAT, 'UTF-8'),
- 'profile/' . $parameters['nickname'] . '/profile'
+ 'profile/' . $this->parameters['nickname'] . '/profile'
);
}
}
$basic_fields += self::buildField('xmpp', DI::l10n()->t('XMPP:'), $profile['xmpp']);
}
+ if ($profile['matrix']) {
+ $basic_fields += self::buildField('matrix', DI::l10n()->t('Matrix:'), $profile['matrix']);
+ }
+
if ($profile['homepage']) {
$basic_fields += self::buildField('homepage', DI::l10n()->t('Homepage:'), HTML::toLink($profile['homepage']));
}