<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2022, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
$params = ['order' => ['name']];
}
- $condition_str = "`network` IN (?, ?) AND `uid` = ? AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND ";
+ $condition = [
+ 'contact-type' => Contact::TYPE_COMMUNITY,
+ 'network' => [Protocol::DFRN, Protocol::ACTIVITYPUB],
+ 'uid' => $uid,
+ 'blocked' => false,
+ 'pending' => false,
+ 'archive' => false,
+ ];
- if ($showprivate) {
- $condition_str .= '(`forum` OR `prv`)';
- } else {
- $condition_str .= '`forum`';
+ $condition = DBA::mergeConditions($condition, ["`platform` != ?", 'peertube']);
+
+ if (!$showprivate) {
+ $condition = DBA::mergeConditions($condition, ['manually-approve' => false]);
}
if (!$showhidden) {
- $condition_str .= ' AND NOT `hidden`';
+ $condition = DBA::mergeConditions($condition, ['hidden' => false]);
}
$forumlist = [];
$fields = ['id', 'url', 'name', 'micro', 'thumb', 'avatar', 'network', 'uid'];
- $condition = [$condition_str, Protocol::DFRN, Protocol::ACTIVITYPUB, $uid];
- $contacts = DBA::select('contact', $fields, $condition, $params);
+ $contacts = DBA::select('account-user-view', $fields, $condition, $params);
if (!$contacts) {
return($forumlist);
}
AND `contact`.`network` IN (?, ?) AND `contact`.`contact-type` = ?
AND NOT `contact`.`blocked` AND NOT `contact`.`hidden`
AND NOT `contact`.`pending` AND NOT `contact`.`archive`
+ AND `contact`.`uid` = ?
GROUP BY `contact`.`id`",
- local_user(), Protocol::DFRN, Protocol::ACTIVITYPUB, Contact::TYPE_COMMUNITY
+ local_user(), Protocol::DFRN, Protocol::ACTIVITYPUB, Contact::TYPE_COMMUNITY, local_user()
);
return DBA::toArray($stmtContacts);