Merge pull request from annando/issue-7659

Issue 7659: Display blocked and ignored public contacts as well
This commit is contained in:
Hypolite Petovan 2019-12-12 11:07:57 -05:00 committed by GitHub
commit ff3a0a0eba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -646,21 +646,25 @@ class Contact extends BaseModule
return $arr['output'];
}
$select_uid = local_user();
// @TODO: Replace with parameter from router
$type = $a->argv[1] ?? '';
switch ($type) {
case 'blocked':
$sql_extra = " AND `blocked`";
$sql_extra = sprintf(" AND EXISTS(SELECT `id` from `user-contact` WHERE `contact`.`id` = `user-contact`.`cid` and `user-contact`.`uid` = %d and `user-contact`.`blocked`)", intval(local_user()));
$select_uid = 0;
break;
case 'hidden':
$sql_extra = " AND `hidden` AND NOT `blocked`";
$sql_extra = " AND `hidden` AND NOT `blocked` AND NOT `pending`";
break;
case 'ignored':
$sql_extra = " AND `readonly` AND NOT `blocked`";
$sql_extra = sprintf(" AND EXISTS(SELECT `id` from `user-contact` WHERE `contact`.`id` = `user-contact`.`cid` and `user-contact`.`uid` = %d and `user-contact`.`ignored`)", intval(local_user()));
$select_uid = 0;
break;
case 'archived':
$sql_extra = " AND `archive` AND NOT `blocked`";
$sql_extra = " AND `archive` AND NOT `blocked` AND NOT `pending`";
break;
case 'pending':
$sql_extra = sprintf(" AND `pending` AND NOT `archive` AND ((`rel` = %d)
@ -762,21 +766,21 @@ class Contact extends BaseModule
$sql_extra2 = ((($sort_type > 0) && ($sort_type <= Model\Contact::FRIEND)) ? sprintf(" AND `rel` = %d ", intval($sort_type)) : '');
$sql_extra3 = Widget::unavailableNetworks();
$r = q("SELECT COUNT(*) AS `total` FROM `contact`
WHERE `uid` = %d AND `self` = 0 $sql_extra $sql_extra2 ",
intval($_SESSION['uid'])
WHERE `uid` = %d AND `self` = 0 $sql_extra $sql_extra2 $sql_extra3",
intval($select_uid)
);
if (DBA::isResult($r)) {
$total = $r[0]['total'];
}
$pager = new Pager($a->query_string);
$sql_extra3 = Widget::unavailableNetworks();
$contacts = [];
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 0 $sql_extra $sql_extra2 $sql_extra3 ORDER BY `name` ASC LIMIT %d , %d ",
intval($_SESSION['uid']),
intval($select_uid),
$pager->getStart(),
$pager->getItemsPerPage()
);