]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Contact/Contacts.php
Removed redundant maximagesize = INF statements
[friendica.git] / src / Module / Contact / Contacts.php
index 31e81cb83d6e402813bc714d156217f8ebf21abf..92235e85477e2240bf3fa82c0eaebb906bdc6ce4 100644 (file)
@@ -1,28 +1,48 @@
 <?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.'));
@@ -33,16 +53,21 @@ class Contacts extends BaseModule
                        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) {
@@ -56,10 +81,6 @@ class Contacts extends BaseModule
                                $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;
@@ -67,7 +88,7 @@ class Contacts extends BaseModule
                                $total = Model\Contact\Relation::countAll($cid, $condition);
                }
 
-               $pager = new Pager(DI::l10n(), DI::args()->getQueryString());
+               $pager = new Pager(DI::l10n(), DI::args()->getQueryString(), 30);
                $desc = '';
 
                switch ($type) {
@@ -118,6 +139,8 @@ class Contacts extends BaseModule
                        '$paginate' => $pager->renderFull($total),
                ]);
 
+               DI::page()['aside'] .= Widget::accountTypes($_SERVER['REQUEST_URI'], $accounttype);
+
                return $o;
        }
 }