]> git.mxchange.org Git - friendica.git/commitdiff
Add current user's hovercard to removeme page
authorHypolite Petovan <hypolite@mrpetovan.com>
Thu, 27 Jul 2023 15:02:46 +0000 (17:02 +0200)
committerHypolite Petovan <hypolite@mrpetovan.com>
Sat, 14 Oct 2023 18:15:41 +0000 (14:15 -0400)
- Extract Hovercard generation to Content\Widget

src/Content/Widget/Hovercard.php [new file with mode: 0644]
src/Module/Contact/Hovercard.php
src/Module/Settings/RemoveMe.php
view/templates/settings/removeme.tpl

diff --git a/src/Content/Widget/Hovercard.php b/src/Content/Widget/Hovercard.php
new file mode 100644 (file)
index 0000000..aef8195
--- /dev/null
@@ -0,0 +1,70 @@
+<?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'],
+                       ],
+               ]);
+       }
+}
index 792a3d6bbc5cf75234a00ffb2240fdaa4cbf15c2..cea5c4b968701bb64f9f4b13e408ed3fd89c379b 100644 (file)
@@ -23,17 +23,15 @@ namespace Friendica\Module\Contact;
 
 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;
 
 /**
@@ -88,35 +86,6 @@ class Hovercard extends BaseModule
                        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()));
        }
 }
index 1225cc1e2e10eb9384b1cf7551ce81bca0e810cd..99e9daad4cca0ce0df0f5f3c768914b37dd3203d 100644 (file)
@@ -22,6 +22,7 @@
 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;
@@ -128,6 +129,9 @@ class RemoveMe extends BaseSettings
                                '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],
                ]);
        }
index 0532d9c69544c9b4d0607bab505788a90257e2b4..066cbc447074bc9ae5a5955fb65c2b9237adce14 100644 (file)
@@ -4,6 +4,8 @@
        <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}}