aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Web/CheckJS.php36
-rw-r--r--mod/channel.php7
-rw-r--r--mod/display.php10
-rw-r--r--mod/nojs.php3
-rwxr-xr-xview/tpl/head.tpl13
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>