diff options
-rw-r--r-- | Zotlabs/Web/CheckJS.php | 36 | ||||
-rw-r--r-- | mod/channel.php | 7 | ||||
-rw-r--r-- | mod/display.php | 10 | ||||
-rw-r--r-- | mod/nojs.php | 3 | ||||
-rwxr-xr-x | view/tpl/head.tpl | 13 |
5 files changed, 50 insertions, 19 deletions
diff --git a/Zotlabs/Web/CheckJS.php b/Zotlabs/Web/CheckJS.php new file mode 100644 index 000000000..3ad5fc1ed --- /dev/null +++ b/Zotlabs/Web/CheckJS.php @@ -0,0 +1,36 @@ +<?php + +namespace Zotlabs\Web; + + +class CheckJS { + + private static $jsdisabled = 0; + + function __construct($test = 0) { + if(intval($_REQUEST['jsdisabled'])) + $this->jsdisabled = 1; + if(intval($_COOKIE['jsdisabled'])) + $this->jsdisabled = 1; + + if(! $this->jsdisabled) { + $page = urlencode(\App::$query_string); + + if($test) { + \App::$page['htmlhead'] .= "\r\n" . '<meta http-equiv="refresh" content="0; url=' . z_root() . '/nojs?f=&redir=' . $page . '">' . "\r\n"; + } + else { + \App::$page['htmlhead'] .= "\r\n" . '<noscript><meta http-equiv="refresh" content="0; url=' . z_root() . '/nojs?f=&redir=' . $page . '"></noscript>' . "\r\n"; + } + } + + } + + function disabled() { + return self::$jsdisabled; + } + + +} + + diff --git a/mod/channel.php b/mod/channel.php index 9119f91a6..9bc7332dc 100644 --- a/mod/channel.php +++ b/mod/channel.php @@ -54,6 +54,7 @@ function channel_content(&$a, $update = 0, $load = false) { if($load) $_SESSION['loadtime'] = datetime_convert(); + $checkjs = new Zotlabs\Web\CheckJS(); $category = $datequery = $datequery2 = ''; @@ -209,7 +210,7 @@ function channel_content(&$a, $update = 0, $load = false) { App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20)); $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(App::$pager['itemspage']), intval(App::$pager['start'])); - if($load || ($_COOKIE['jsdisabled'] == 1)) { + if($load || ($checkjs->disabled())) { if ($mid) { $r = q("SELECT parent AS item_id from item where mid = '%s' and uid = %d $item_normal AND item_wall = 1 $sql_extra limit 1", @@ -338,13 +339,13 @@ function channel_content(&$a, $update = 0, $load = false) { } - if($_COOKIE['jsdisabled'] == 1) { + if($checkjs->disabled()) { $o .= conversation($a,$items,'channel',$update,'traditional'); } else { $o .= conversation($a,$items,'channel',$update,$page_mode); } - if((! $update) || ($_COOKIE['jsdisabled'] == 1)) { + if((! $update) || ($checkjs->disabled())) { $o .= alt_pager($a,count($items)); if ($mid && $items[0]['title']) App::$page['title'] = $items[0]['title'] . " - " . App::$page['title']; diff --git a/mod/display.php b/mod/display.php index 9c50eb9c0..2844a1205 100644 --- a/mod/display.php +++ b/mod/display.php @@ -5,6 +5,10 @@ function display_content(&$a, $update = 0, $load = false) { // logger("mod-display: update = $update load = $load"); + + $checkjs = new Zotlabs\Web\CheckJS(); + + if($load) $_SESSION['loadtime'] = datetime_convert(); @@ -168,13 +172,13 @@ function display_content(&$a, $update = 0, $load = false) { $sql_extra = public_permissions_sql($observer_hash); - if(($update && $load) || ($_COOKIE['jsdisabled'] == 1)) { + if(($update && $load) || ($checkjs->disabled())) { $updateable = false; $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(App::$pager['itemspage']),intval(App::$pager['start'])); - if($load || ($_COOKIE['jsdisabled'] == 1)) { + if($load || ($checkjs->disabled())) { $r = null; require_once('include/identity.php'); @@ -290,7 +294,7 @@ function display_content(&$a, $update = 0, $load = false) { } - if ($_COOKIE['jsdisabled'] == 1) { + if ($checkjs->disabled()) { $o .= conversation($a, $items, 'display', $update, 'traditional'); if ($items[0]['title']) App::$page['title'] = $items[0]['title'] . " - " . App::$page['title']; diff --git a/mod/nojs.php b/mod/nojs.php index 3d894d13e..c6e04a72b 100644 --- a/mod/nojs.php +++ b/mod/nojs.php @@ -4,6 +4,7 @@ function nojs_init(&$a) { setcookie('jsdisabled', 1, 0); $p = $_GET['query']; - goaway(z_root() . (($p) ? '/' . $p : '')); + $hasq = strpos($p,'?'); + goaway(z_root() . (($p) ? '/' . $p : '') . (($hasq) ? '' : '?f=' ) . '&jsdisabled=1'); }
\ No newline at end of file diff --git a/view/tpl/head.tpl b/view/tpl/head.tpl index 7984723b3..9fcdf1735 100755 --- a/view/tpl/head.tpl +++ b/view/tpl/head.tpl @@ -1,27 +1,17 @@ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <base href="{{$baseurl}}/" /> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable={{$user_scalable}}" /> -<noscript><meta http-equiv="refresh" content="0; url=nojs.php&redir={{$query}}"></noscript> {{$metas}} <!--[if IE]> <script src="{{$baseurl}}/library/html5.js"></script> <![endif]--> {{$head_css}} - {{$js_strings}} - {{$head_js}} - <link rel="shortcut icon" href="{{$icon}}" /> -<link rel="search" - href="{{$baseurl}}/opensearch" - type="application/opensearchdescription+xml" - title="{{$osearch}}" /> - - +<link rel="search" href="{{$baseurl}}/opensearch" type="application/opensearchdescription+xml" title="{{$osearch}}" /> <script> - var updateInterval = {{$update_interval}}; var localUser = {{if $local_channel}}{{$local_channel}}{{else}}false{{/if}}; var zid = {{if $zid}}'{{$zid}}'{{else}}null{{/if}}; @@ -29,7 +19,6 @@ {{if $channel_hash}}var channelHash = '{{$channel_hash}}';{{/if}} {{if $channel_id}}var channelId = '{{$channel_id}}';{{/if}}{{* Used in e.g. autocomplete *}} var preloadImages = {{$preload_images}}; - </script> |