diff options
author | zottel <github@zottel.net> | 2015-07-13 17:30:04 +0200 |
---|---|---|
committer | zottel <github@zottel.net> | 2015-07-13 17:30:04 +0200 |
commit | a07be48017fd4b9a83c14153674386f2bcdc016c (patch) | |
tree | 705e517804aa881d64d1830d04568b9cfc7e0b47 | |
parent | b7d3eb16056d4c91f60f3ae1e3b0085fdd6331b6 (diff) | |
download | volse-hubzilla-a07be48017fd4b9a83c14153674386f2bcdc016c.tar.gz volse-hubzilla-a07be48017fd4b9a83c14153674386f2bcdc016c.tar.bz2 volse-hubzilla-a07be48017fd4b9a83c14153674386f2bcdc016c.zip |
change account_default_channel if default channel is removed
-rw-r--r-- | include/Contact.php | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/Contact.php b/include/Contact.php index 9490fd2da..035e83a82 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -311,6 +311,24 @@ function channel_remove($channel_id, $local = true, $unset_session=true) { intval(PAGE_REMOVED), intval($channel_id) ); + // if this was the default channel, set another one as default + if($a->account['account_default_channel'] == $channel_id) { + $r = q("select channel_id from channel where channel_account_id = %d and not ( channel_pageflags & %d)>0 limit 1", + intval($a->account['account_id']), + intval(PAGE_REMOVED)); + if ($r) { + $rr = q("update account set account_default_channel = %d where account_id = %d", + intval($r[0]['channel_id']), + intval($a->account['account_id'])); + logger("Default channel deleted, changing default to channel_id " . $r[0]['channel_id']); + } + else { + $rr = q("update account set account_default_channel = 0 where account_id = %d", + intval($r[0]['channel_id']), + intval($a->account['account_id'])); + } + } + $r = q("update hubloc set hubloc_flags = (hubloc_flags | %d) where hubloc_hash = '%s' and hubloc_url = '%s' ", intval(HUBLOC_FLAGS_DELETED), |