diff options
author | friendica <info@friendica.com> | 2014-10-21 17:04:52 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2014-10-21 17:07:25 -0700 |
commit | d5edd89dd2bcfae198bb316c4f9be212937e9fa5 (patch) | |
tree | 4fbbdcdd223a5ec818a4d2d11be8254a7559bc86 /include/Contact.php | |
parent | 35be89ad66033ca5254234ade900e524e210ce3a (diff) | |
download | volse-hubzilla-d5edd89dd2bcfae198bb316c4f9be212937e9fa5.tar.gz volse-hubzilla-d5edd89dd2bcfae198bb316c4f9be212937e9fa5.tar.bz2 volse-hubzilla-d5edd89dd2bcfae198bb316c4f9be212937e9fa5.zip |
when removing a channel, check to see if there are any valid hublocs remaining before marking the xchan deleted.
Issue #657
Diffstat (limited to 'include/Contact.php')
-rw-r--r-- | include/Contact.php | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/include/Contact.php b/include/Contact.php index 4440369dc..20e5e1a1e 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -245,11 +245,13 @@ function channel_remove($channel_id, $local = true, $unset_session=true) { intval($channel_id) ); + $r = q("update hubloc set hubloc_flags = (hubloc_flags | %d) where hubloc_hash = '%s'", intval(HUBLOC_FLAGS_DELETED), dbesc($channel['channel_hash']) ); + $r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'", intval(XCHAN_FLAGS_DELETED), dbesc($channel['channel_hash']) @@ -257,7 +259,6 @@ function channel_remove($channel_id, $local = true, $unset_session=true) { proc_run('php','include/notifier.php','purge_all',$channel_id); - } q("DELETE FROM `groups` WHERE `uid` = %d", intval($channel_id)); @@ -291,11 +292,23 @@ function channel_remove($channel_id, $local = true, $unset_session=true) { dbesc(z_root()) ); - $r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s' ", - intval(XCHAN_FLAGS_DELETED), - dbesc($channel['channel_hash']) + // Do we have any valid hublocs remaining? + + $hublocs = 0; + + $r = q("select hubloc_id from hubloc where hubloc_hash = '%s' and not (hubloc_flags & %d)", + dbesc($channel['channel_hash']), + intval(HUBLOC_FLAGS_DELETED) ); + if($r) + $hublocs = count($r); + if(! $hublocs) { + $r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s' ", + intval(XCHAN_FLAGS_DELETED), + dbesc($channel['channel_hash']) + ); + } proc_run('php','include/directory.php',$channel_id); |