diff options
-rw-r--r-- | Zotlabs/Web/Router.php | 6 | ||||
-rw-r--r-- | Zotlabs/Web/WebServer.php | 75 | ||||
-rw-r--r-- | Zotlabs/Widget/Forums.php | 22 | ||||
-rw-r--r-- | include/features.php | 26 |
4 files changed, 72 insertions, 57 deletions
diff --git a/Zotlabs/Web/Router.php b/Zotlabs/Web/Router.php index a6b780cdc..fb551e36f 100644 --- a/Zotlabs/Web/Router.php +++ b/Zotlabs/Web/Router.php @@ -38,10 +38,9 @@ class Router { /** * @brief Router constructor. * - * @param[in,out] App &$a * @throws Exception module not found */ - function __construct(&$a) { + function __construct() { $module = \App::$module; $modname = "Zotlabs\\Module\\" . ucfirst($module); @@ -179,9 +178,8 @@ class Router { /** * @brief * - * @param[in,out] App &$a */ - function Dispatch(&$a) { + function Dispatch() { /** * Call module functions diff --git a/Zotlabs/Web/WebServer.php b/Zotlabs/Web/WebServer.php index 9e6af8c4c..5183fb2b0 100644 --- a/Zotlabs/Web/WebServer.php +++ b/Zotlabs/Web/WebServer.php @@ -58,11 +58,10 @@ class WebServer { if((x($_GET,'zid')) && (! \App::$install)) { \App::$query_string = strip_zids(\App::$query_string); if(! local_channel()) { - if ($_SESSION['my_address']!=$_GET['zid']) - { - $_SESSION['my_address'] = $_GET['zid']; - $_SESSION['authenticated'] = 0; - } + if ($_SESSION['my_address']!=$_GET['zid']) { + $_SESSION['my_address'] = $_GET['zid']; + $_SESSION['authenticated'] = 0; + } zid_init(); } } @@ -107,9 +106,43 @@ class WebServer { check_config(); } - //nav_set_selected('nothing'); + $this->create_channel_links(); - $Router = new Router($a); + $Router = new Router(); + + $this->initialise_content(); + + $Router->Dispatch(); + + $this->set_homebase(); + + // now that we've been through the module content, see if the page reported + // a permission problem and if so, a 403 response would seem to be in order. + + if(is_array($_SESSION['sysmsg']) && stristr(implode("", $_SESSION['sysmsg']), t('Permission denied'))) { + header($_SERVER['SERVER_PROTOCOL'] . ' 403 ' . t('Permission denied.')); + } + + call_hooks('page_end', \App::$page['content']); + + construct_page(); + + killme(); + } + + + private function initialise_content() { + + /* initialise content region */ + + if(! x(\App::$page, 'content')) + \App::$page['content'] = ''; + + call_hooks('page_content_top', \App::$page['content']); + + } + + private function create_channel_links() { /* Initialise the Link: response header if this is a channel page. * This cannot be done inside the channel module because some protocol @@ -135,26 +168,17 @@ class WebServer { \App::$channel_links = $x['channel_links']; header('Link: ' . \App::get_channel_links()); } + } - - - /* initialise content region */ - - if(! x(\App::$page, 'content')) - \App::$page['content'] = ''; - - call_hooks('page_content_top', \App::$page['content']); - - - $Router->Dispatch($a); - + private function set_homebase() { // If you're just visiting, let javascript take you home if(x($_SESSION, 'visitor_home')) { $homebase = $_SESSION['visitor_home']; - } elseif(local_channel()) { + } + elseif(local_channel()) { $homebase = z_root() . '/channel/' . \App::$channel['channel_address']; } @@ -162,17 +186,8 @@ class WebServer { \App::$page['content'] .= '<script>var homebase = "' . $homebase . '";</script>'; } - // now that we've been through the module content, see if the page reported - // a permission problem and if so, a 403 response would seem to be in order. - - if(is_array($_SESSION['sysmsg']) && stristr(implode("", $_SESSION['sysmsg']), t('Permission denied'))) { - header($_SERVER['SERVER_PROTOCOL'] . ' 403 ' . t('Permission denied.')); - } + } - call_hooks('page_end', \App::$page['content']); - construct_page(); - killme(); - } } diff --git a/Zotlabs/Widget/Forums.php b/Zotlabs/Widget/Forums.php index 0b90b9740..44d95012f 100644 --- a/Zotlabs/Widget/Forums.php +++ b/Zotlabs/Widget/Forums.php @@ -71,6 +71,8 @@ class Forums { if($r) $r1[$x]['unseen'] = $r[0]['unseen']; + } + /** * @FIXME * This SQL makes the counts correct when you get forum posts arriving from different routes/sources @@ -79,21 +81,19 @@ class Forums { * It may make more sense in that query to look for the mention in the body rather than another join, * but that makes it very inefficient. * - $r = q("select sum(item_unseen) as unseen from item left join term on oid = id where otype = %d and owner_xchan != '%s' and item.uid = %d and url = '%s' and ttype = %d $perms_sql ", - intval(TERM_OBJ_POST), - dbesc($r1[$x]['xchan_hash']), - intval(local_channel()), - dbesc($r1[$x]['xchan_url']), - intval(TERM_MENTION) - ); - if($r) - $r1[$x]['unseen'] = ((array_key_exists('unseen',$r1[$x])) ? $r1[$x]['unseen'] + $r[0]['unseen'] : $r[0]['unseen']); + * $r = q("select sum(item_unseen) as unseen from item left join term on oid = id where otype = %d and owner_xchan != '%s' and item.uid = %d and url = '%s' and ttype = %d $perms_sql ", + * intval(TERM_OBJ_POST), + * dbesc($r1[$x]['xchan_hash']), + * intval(local_channel()), + * dbesc($r1[$x]['xchan_url']), + * intval(TERM_MENTION) + * ); + * if($r) + * $r1[$x]['unseen'] = ((array_key_exists('unseen',$r1[$x])) ? $r1[$x]['unseen'] + $r[0]['unseen'] : $r[0]['unseen']); * * end @FIXME */ - } - if($r1) { $o .= '<div class="widget">'; $o .= '<h3>' . t('Forums') . '</h3><ul class="nav nav-pills flex-column">'; diff --git a/include/features.php b/include/features.php index 36eb74a9d..839faff67 100644 --- a/include/features.php +++ b/include/features.php @@ -190,6 +190,16 @@ function get_features($filtered = true) { feature_level('event_tz_select',2), ], + + [ + 'premium_channel', + t('Premium Channel'), + t('Allows you to set restrictions and terms on those that connect with your channel'), + false, + get_config('feature_lock','premium_channel'), + feature_level('premium_channel',4), + ], + [ 'advanced_dirsearch', t('Advanced Directory Search'), @@ -438,16 +448,10 @@ function get_features($filtered = true) { ], ]; + $x = [ 'features' => $arr, ]; + call_hooks('get_features',$x); - $arr['general'][] = [ - 'premium_channel', - t('Premium Channel'), - t('Allows you to set restrictions and terms on those that connect with your channel'), - false, - get_config('feature_lock','premium_channel'), - feature_level('premium_channel',4), - ]; - + $arr = $x['features']; $techlevel = get_account_techlevel(); @@ -482,7 +486,5 @@ function get_features($filtered = true) { $narr = $arr; } - $x = [ 'features' => $narr, 'filtered' => $filtered, 'techlevel' => $techlevel ]; - call_hooks('get_features',$x); - return $x['features']; + return $narr; } |