]> git.mxchange.org Git - friendica.git/blobdiff - include/Contact.php
Enabled Profile photo revisions to be displayed in navigation bar
[friendica.git] / include / Contact.php
index 537850e007400144028a13bf708d13030c9b03af..14e1a52cddfdb3400cc6cf54f9ce3821432f38e4 100644 (file)
@@ -51,6 +51,21 @@ function user_remove($uid) {
 
 
 function contact_remove($id) {
+
+       $r = q("select uid from contact where id = %d limit 1",
+               intval($id)
+       );
+       if((! count($r)) || (! intval($r[0]['uid'])))
+               return;
+
+       $archive = get_pconfig($r[0]['uid'], 'system','archive_removed_contacts');
+       if($archive) {
+               q("update contact set `archive` = 1, `network` = 'none', `writable` = 0 where id = %d limit 1",
+                       intval($id)
+               );
+               return;
+       }
+
        q("DELETE FROM `contact` WHERE `id` = %d LIMIT 1",
                intval($id)
        );
@@ -124,6 +139,10 @@ function terminate_friendship($user,$self,$contact) {
  
 if(! function_exists('mark_for_death')) {
 function mark_for_death($contact) {
+
+       if($contact['archive'])
+               return;
+
        if($contact['term-date'] == '0000-00-00 00:00:00') {
                q("UPDATE `contact` SET `term-date` = '%s' WHERE `id` = %d LIMIT 1",
                                dbesc(datetime_convert()),
@@ -131,12 +150,23 @@ function mark_for_death($contact) {
                );
        }
        else {
+
+               // TODO: We really should send a notification to the owner after 2-3 weeks
+               // so they won't be surprised when the contact vanishes and can take
+               // remedial action if this was a serious mistake or glitch
+
                $expiry = $contact['term-date'] . ' + 32 days ';
                if(datetime_convert() > datetime_convert('UTC','UTC',$expiry)) {
 
                        // relationship is really truly dead. 
+                       // archive them rather than delete
+                       // though if the owner tries to unarchive them we'll start the whole process over again
+
+                       q("update contact set `archive` = 1 where id = %d limit 1",
+                               intval($contact['id'])
+                       );
 
-                       contact_remove($contact['id']);
+                       //contact_remove($contact['id']);
 
                }
        }
@@ -194,7 +224,7 @@ function contact_photo_menu($contact) {
        );
        
        
-       $args = array('contact' => $contact, 'menu' => $menu);
+       $args = array('contact' => $contact, 'menu' => &$menu);
        
        call_hooks('contact_photo_menu', $args);