diff options
author | zotlabs <mike@macgirvin.com> | 2016-12-27 15:28:52 -0800 |
---|---|---|
committer | zotlabs <mike@macgirvin.com> | 2016-12-27 15:28:52 -0800 |
commit | db9ea66069f2a2df6044e8267a68eae377c45911 (patch) | |
tree | aa93597df2ee43ceeaa980db864b58143f2e06df /Zotlabs/Module/Chanview.php | |
parent | ef02464e3c3188563349bfda42585ce40cdb45ad (diff) | |
parent | c2830c4a98cf3c9983b3c4b61024d52a6d7187df (diff) | |
download | volse-hubzilla-db9ea66069f2a2df6044e8267a68eae377c45911.tar.gz volse-hubzilla-db9ea66069f2a2df6044e8267a68eae377c45911.tar.bz2 volse-hubzilla-db9ea66069f2a2df6044e8267a68eae377c45911.zip |
Merge branch 'master' of https://github.com/redmatrix/hubzilla into master_merge
Diffstat (limited to 'Zotlabs/Module/Chanview.php')
-rw-r--r-- | Zotlabs/Module/Chanview.php | 76 |
1 files changed, 56 insertions, 20 deletions
diff --git a/Zotlabs/Module/Chanview.php b/Zotlabs/Module/Chanview.php index c6dd07eb7..01ee74d5a 100644 --- a/Zotlabs/Module/Chanview.php +++ b/Zotlabs/Module/Chanview.php @@ -58,7 +58,9 @@ class Chanview extends \Zotlabs\Web\Controller { } logger('mod_chanview: constructed address ' . print_r($matches,true)); } - + + $r = null; + if($_REQUEST['address']) { $j = \Zotlabs\Zot\Finger::run($_REQUEST['address'],null); if($j['success']) { @@ -66,40 +68,74 @@ class Chanview extends \Zotlabs\Web\Controller { $r = q("select * from xchan where xchan_addr = '%s' limit 1", dbesc($_REQUEST['address']) ); - if($r) + if($r) { \App::$poi = $r[0]; + } + } + if(! $r) { + if(discover_by_webbie($_REQUEST['address'])) { + $r = q("select * from xchan where xchan_addr = '%s' limit 1", + dbesc($_REQUEST['address']) + ); + if($r) { + \App::$poi = $r[0]; + } + } } } } if(! \App::$poi) { - // We don't know who this is, and we can't figure it out from the URL - // On the plus side, there's a good chance we know somebody else at that - // hub so sending them there with a Zid will probably work anyway. + + // We don't know who this is, and we can't figure it out from the URL + // On the plus side, there's a good chance we know somebody else at that + // hub so sending them there with a Zid will probably work anyway. + $url = ($_REQUEST['url']); + if(! $url) { + notice( t('Channel not found.') . EOL); + return; + } if($observer) $url = zid($url); + } + + $is_zot = false; if (\App::$poi) { - $url = \App::$poi['xchan_url']; - if($observer) - $url = zid($url); + $url = \App::$poi['xchan_url']; + if(\App::$poi['xchan_network'] === 'zot') { + $is_zot = true; + } } - // let somebody over-ride the iframed viewport presentation - // or let's just declare this a failed experiment. - - // if((! local_channel()) || (get_pconfig(local_channel(),'system','chanview_full'))) - - goaway($url); - - // $o = replace_macros(get_markup_template('chanview.tpl'),array( - // '$url' => $url, - // '$full' => t('toggle full screen mode') - // )); + + // We will load the chanview template if it's a foreign network, + // just so that we can provide a connect button along with a profile + // photo. Chances are we can't load the remote profile into an iframe + // because of cross-domain security headers. So provide a link to + // the remote profile. + + // Zot channels will usually have a connect link. + // If it isn't zot, 'pro' members won't be able to use the connect + // button as it is a foreign network so just send them to the remote + // profile. + - // return $o; + if($is_zot || \Zotlabs\Lib\System::get_server_role() === 'pro') { + if($is_zot && $observer) { + $url = zid($url); + } + goaway($url); + } + else { + $o = replace_macros(get_markup_template('chanview.tpl'),array( + '$url' => $url, + '$full' => t('toggle full screen mode') + )); + return $o; + } } } |