aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
Diffstat (limited to 'mod')
-rw-r--r--mod/acl.php8
-rw-r--r--mod/contacts.php43
-rw-r--r--mod/viewcontacts.php4
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'])