--- /dev/null
+<?php
+/**
+ * @copyright Copyright (C) 2010-2023, 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\Content\Widget;
+
+use Friendica\Core\Renderer;
+use Friendica\Database\DBA;
+use Friendica\Model\Contact;
+use Friendica\Network\HTTPException;
+use Friendica\Util\Strings;
+
+class Hovercard
+{
+ /**
+ * @param array $contact
+ * @param int $localUid Used to show user actions
+ * @return string
+ * @throws HTTPException\InternalServerErrorException
+ * @throws HTTPException\ServiceUnavailableException
+ * @throws \ImagickException
+ */
+ public static function getHTML(array $contact, int $localUid = 0): string
+ {
+ if ($localUid) {
+ $actions = Contact::photoMenu($contact, $localUid);
+ } else {
+ $actions = [];
+ }
+
+ // Move the contact data to the profile array so we can deliver it to
+ $tpl = Renderer::getMarkupTemplate('hovercard.tpl');
+ return Renderer::replaceMacros($tpl, [
+ '$profile' => [
+ 'name' => $contact['name'],
+ 'nick' => $contact['nick'],
+ 'addr' => $contact['addr'] ?: $contact['url'],
+ 'thumb' => Contact::getThumb($contact),
+ 'url' => Contact::magicLinkByContact($contact),
+ 'nurl' => $contact['nurl'],
+ 'location' => $contact['location'],
+ 'about' => $contact['about'],
+ 'network_link' => Strings::formatNetworkName($contact['network'], $contact['url']),
+ 'tags' => $contact['keywords'],
+ 'bd' => $contact['bd'] <= DBA::NULL_DATE ? '' : $contact['bd'],
+ 'account_type' => Contact::getAccountType($contact['contact-type']),
+ 'contact_type' => $contact['contact-type'],
+ 'actions' => $actions,
+ 'self' => $contact['self'],
+ ],
+ ]);
+ }
+}
use Friendica\App;
use Friendica\BaseModule;
+use Friendica\Content\Widget;
use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\L10n;
-use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System;
-use Friendica\Database\DBA;
use Friendica\Model\Contact;
use Friendica\Module\Response;
use Friendica\Network\HTTPException;
use Friendica\Util\Profiler;
-use Friendica\Util\Strings;
use Psr\Log\LoggerInterface;
/**
throw new HTTPException\NotFoundException();
}
- // Get the photo_menu - the menu if possible contact actions
- if ($this->userSession->isAuthenticated()) {
- $actions = Contact::photoMenu($contact, $this->userSession->getLocalUserId());
- } else {
- $actions = [];
- }
-
- // Move the contact data to the profile array so we can deliver it to
- $tpl = Renderer::getMarkupTemplate('hovercard.tpl');
- $o = Renderer::replaceMacros($tpl, [
- '$profile' => [
- 'name' => $contact['name'],
- 'nick' => $contact['nick'],
- 'addr' => $contact['addr'] ?: $contact['url'],
- 'thumb' => Contact::getThumb($contact),
- 'url' => Contact::magicLinkByContact($contact),
- 'nurl' => $contact['nurl'],
- 'location' => $contact['location'],
- 'about' => $contact['about'],
- 'network_link' => Strings::formatNetworkName($contact['network'], $contact['url']),
- 'tags' => $contact['keywords'],
- 'bd' => $contact['bd'] <= DBA::NULL_DATE ? '' : $contact['bd'],
- 'account_type' => Contact::getAccountType($contact['contact-type']),
- 'contact_type' => $contact['contact-type'],
- 'actions' => $actions,
- 'self' => $contact['self'],
- ],
- ]);
-
- $this->httpExit($o);
+ $this->httpExit(Widget\Hovercard::getHTML($contact, $this->userSession->getLocalUserId()));
}
}
namespace Friendica\Module\Settings;
use Friendica\App;
+use Friendica\Content\Widget;
use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
'title' => DI::l10n()->t('Remove My Account'),
'desc' => DI::l10n()->t('This will completely remove your account. Once this has been done it is not recoverable.'),
],
+
+ '$hovercard' => Widget\Hovercard::getHTML(User::getOwnerDataById($this->session->getLocalUserId())),
+
'$password' => [$hash, $this->t('Please enter your password for verification:'), null, null, true],
]);
}
<div id="remove-account-wrapper">
<div id="remove-account-desc">{{$l10n.desc nofilter}}</div>
+ {{$hovercard nofilter}}
+
<form action="settings/removeme" autocomplete="off" method="post">
{{include file="field_password.tpl" field=$password}}