aboutsummaryrefslogtreecommitdiffstats
path: root/include/hubloc.php
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2018-10-30 17:18:15 -0700
committerzotlabs <mike@macgirvin.com>2018-10-30 17:18:15 -0700
commit675343f575f7f53f85462e8604ea7e81e05ad51f (patch)
tree402e7c1d8851dc1eaec2c00f28daabc4da4b9145 /include/hubloc.php
parentae4aeb4b1e57855d8f1788e74c56b57377df59aa (diff)
downloadvolse-hubzilla-675343f575f7f53f85462e8604ea7e81e05ad51f.tar.gz
volse-hubzilla-675343f575f7f53f85462e8604ea7e81e05ad51f.tar.bz2
volse-hubzilla-675343f575f7f53f85462e8604ea7e81e05ad51f.zip
issue syncing the channel_primary setting which shows up as a wrong count on the admin summary page
Diffstat (limited to 'include/hubloc.php')
-rw-r--r--include/hubloc.php33
1 files changed, 16 insertions, 17 deletions
diff --git a/include/hubloc.php b/include/hubloc.php
index d1170a62c..2efafc29b 100644
--- a/include/hubloc.php
+++ b/include/hubloc.php
@@ -186,31 +186,30 @@ function hubloc_change_primary($hubloc) {
logger('no hubloc');
return false;
}
- if(! (intval($hubloc['hubloc_primary']))) {
- logger('not primary: ' . $hubloc['hubloc_url']);
- return false;
- }
- logger('setting primary: ' . $hubloc['hubloc_url']);
+ logger('setting primary: ' . $hubloc['hubloc_url'] . ((intval($hubloc['hubloc_primary'])) ' true' : 'false'));
- // See if there's a local channel
+ // See if this is a local hubloc and if so update the primary for the corresponding channel record.
- $r = q("select channel_id, channel_primary from channel where channel_hash = '%s' limit 1",
- dbesc($hubloc['hubloc_hash'])
- );
- if($r) {
- if(! $r[0]['channel_primary']) {
- q("update channel set channel_primary = 1 where channel_id = %d",
- intval($r[0]['channel_id'])
- );
- }
- else {
- q("update channel set channel_primary = 0 where channel_id = %d",
+ if($hubloc['hubloc_url'] === z_root()) {
+ $r = q("select channel_id from channel where channel_hash = '%s' limit 1",
+ dbesc($hubloc['hubloc_hash'])
+ );
+ if($r) {
+ q("update channel set channel_primary = %d where channel_id = %d",
+ intval($hubloc['hubloc_primary']),
intval($r[0]['channel_id'])
);
}
}
+ // we only need to proceed further if this particular hubloc is now primary
+
+ if(! (intval($hubloc['hubloc_primary']))) {
+ logger('not primary: ' . $hubloc['hubloc_url']);
+ return false;
+ }
+
// do we even have an xchan for this hubloc and if so is it already set as primary?
$r = q("select * from xchan where xchan_hash = '%s' limit 1",