diff options
Diffstat (limited to 'mod')
-rw-r--r-- | mod/acl.php | 8 | ||||
-rw-r--r-- | mod/contacts.php | 43 | ||||
-rw-r--r-- | mod/viewcontacts.php | 4 |
3 files changed, 44 insertions, 11 deletions
diff --git a/mod/acl.php b/mod/acl.php index c23ee1a67..88f150d7a 100644 --- a/mod/acl.php +++ b/mod/acl.php @@ -33,7 +33,7 @@ function acl_init(&$a){ if ($type=='' || $type=='c'){ $r = q("SELECT COUNT(`id`) AS c FROM `contact` WHERE `uid` = %d AND `self` = 0 - AND `blocked` = 0 AND `pending` = 0 + AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != '' $sql_extra2" , intval(local_user()) ); @@ -45,7 +45,7 @@ function acl_init(&$a){ $r = q("SELECT COUNT(`id`) AS c FROM `contact` WHERE `uid` = %d AND `self` = 0 - AND `blocked` = 0 AND `pending` = 0 + AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `network` IN ('%s','%s','%s') $sql_extra2" , intval(local_user()), dbesc(NETWORK_DFRN), @@ -94,7 +94,7 @@ function acl_init(&$a){ if ($type=='' || $type=='c'){ $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` - WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `notify` != '' + WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != '' $sql_extra2 ORDER BY `name` ASC ", intval(local_user()) @@ -102,7 +102,7 @@ function acl_init(&$a){ } elseif($type == 'm') { $r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact` - WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 + WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `network` IN ('%s','%s','%s') $sql_extra2 ORDER BY `name` ASC ", diff --git a/mod/contacts.php b/mod/contacts.php index 8670c0c80..754350ae5 100644 --- a/mod/contacts.php +++ b/mod/contacts.php @@ -182,6 +182,22 @@ function contacts_content(&$a) { return; // NOTREACHED } + + if($cmd === 'archive') { + $archived = (($orig_record[0]['archive']) ? 0 : 1); + $r = q("UPDATE `contact` SET `archive` = %d WHERE `id` = %d AND `uid` = %d LIMIT 1", + intval($archived), + intval($contact_id), + intval(local_user()) + ); + if($r) { + //notice( t('Contact has been ') . (($archived) ? t('archived') : t('unarchived')) . EOL ); + info( (($archived) ? t('Contact has been archived') : t('Contact has been unarchived')) . EOL ); + } + goaway($a->get_baseurl(true) . '/contacts/' . $contact_id); + return; // NOTREACHED + } + if($cmd === 'drop') { require_once('include/Contact.php'); @@ -280,6 +296,12 @@ function contacts_content(&$a) { 'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/ignore', 'sel' => '', ), + + array( + 'label' => (($contact['archive']) ? t('Unarchive') : t('Archive') ), + 'url' => $a->get_baseurl(true) . '/contacts/' . $contact_id . '/archive', + 'sel' => '', + ), array( 'label' => t('Repair'), 'url' => $a->get_baseurl(true) . '/crepair/' . $contact_id, @@ -324,6 +346,7 @@ function contacts_content(&$a) { '$info' => $contact['info'], '$blocked' => (($contact['blocked']) ? t('Currently blocked') : ''), '$ignored' => (($contact['readonly']) ? t('Currently ignored') : ''), + '$archived' => (($contact['archive']) ? t('Currently archived') : ''), '$hidden' => array('hidden', t('Hide this contact from others'), ($contact['hidden'] == 1), t('Replies/likes to your public posts <strong>may</strong> still be visible')), '$photo' => $contact['photo'], '$name' => $contact['name'], @@ -365,6 +388,10 @@ function contacts_content(&$a) { $sql_extra = " AND `readonly` = 1 "; $ignored = true; } + elseif(($a->argc == 2) && ($a->argv[1] === 'archived')) { + $sql_extra = " AND `archive` = 1 "; + $archived = true; + } else $sql_extra = " AND `blocked` = 0 "; @@ -383,25 +410,31 @@ function contacts_content(&$a) { 'sel' => ($all) ? 'active' : '', ), array( - 'label' => t('Unblocked Contacts'), + 'label' => t('Unblocked'), 'url' => $a->get_baseurl(true) . '/contacts', - 'sel' => ((! $all) && (! $blocked) && (! $hidden) && (! $search) && (! $nets) && (! $ignored)) ? 'active' : '', + 'sel' => ((! $all) && (! $blocked) && (! $hidden) && (! $search) && (! $nets) && (! $ignored) && (! $archived)) ? 'active' : '', ), array( - 'label' => t('Blocked Contacts'), + 'label' => t('Blocked'), 'url' => $a->get_baseurl(true) . '/contacts/blocked', 'sel' => ($blocked) ? 'active' : '', ), array( - 'label' => t('Ignored Contacts'), + 'label' => t('Ignored'), 'url' => $a->get_baseurl(true) . '/contacts/ignored', 'sel' => ($ignored) ? 'active' : '', ), array( - 'label' => t('Hidden Contacts'), + 'label' => t('Archived'), + 'url' => $a->get_baseurl(true) . '/contacts/archived', + 'sel' => ($archived) ? 'active' : '', + ), + + array( + 'label' => t('Hidden'), 'url' => $a->get_baseurl(true) . '/contacts/hidden', 'sel' => ($hidden) ? 'active' : '', ), diff --git a/mod/viewcontacts.php b/mod/viewcontacts.php index e7d26b73e..8e261e711 100644 --- a/mod/viewcontacts.php +++ b/mod/viewcontacts.php @@ -24,13 +24,13 @@ function viewcontacts_content(&$a) { } - $r = q("SELECT COUNT(*) as `total` FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 ", + $r = q("SELECT COUNT(*) as `total` FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 ", intval($a->profile['uid']) ); if(count($r)) $a->set_pager_total($r[0]['total']); - $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 ORDER BY `name` ASC LIMIT %d , %d ", + $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0 ORDER BY `name` ASC LIMIT %d , %d ", intval($a->profile['uid']), intval($a->pager['start']), intval($a->pager['itemspage']) |