Browse Source

reverse the logic of the jsenabled setting so that sessions without js are performance penalised instead of regular sessions.

redmatrix 4 years ago
parent
commit
91cc365143
8 changed files with 26 additions and 26 deletions
  1. 2 2
      Zotlabs/Web/Session.php
  2. 1 0
      boot.php
  3. 1 12
      index.php
  4. 5 5
      mod/channel.php
  5. 6 6
      mod/display.php
  6. 1 1
      mod/network.php
  7. 9 0
      mod/nojs.php
  8. 1 0
      view/tpl/head.tpl

+ 2 - 2
Zotlabs/Web/Session.php

@@ -85,8 +85,8 @@ class Session {
 		else 
 			logger('no session handler');
 
-		if (x($_COOKIE, 'jsAvailable')) {
-			setcookie('jsAvailable', $_COOKIE['jsAvailable'], $newxtime);
+		if (x($_COOKIE, 'jsdisabled')) {
+			setcookie('jsdisabled', $_COOKIE['jsdisabled'], $newxtime);
 		}
 		setcookie(session_name(),session_id(),$newxtime);
 

+ 1 - 0
boot.php

@@ -1065,6 +1065,7 @@ class App {
 		self::$page['htmlhead'] = replace_macros($tpl, array(
 			'$preload_images' => $preload_images,
 			'$user_scalable' => $user_scalable,
+			'$query' => urlencode(self::$query_string),
 			'$baseurl' => self::get_baseurl(),
 			'$local_channel' => local_channel(),
 			'$metas' => self::$meta->get(),

+ 1 - 12
index.php

@@ -149,19 +149,8 @@ $Router = new Zotlabs\Web\Router($a);
 if(! x(App::$page, 'content'))
 	App::$page['content'] = '';
 
+call_hooks('page_content_top', App::$page['content']);
 
-if(! (App::$module === 'setup')) {
-	/* set JS cookie */
-	if($_COOKIE['jsAvailable'] != 1) {
-		App::$page['content'] .= '<script>document.cookie="jsAvailable=1; path=/"; var jsMatch = /\&JS=1/; if (!jsMatch.exec(location.href)) { location.href = location.href + "&JS=1"; }</script>';
-		/* emulate JS cookie if cookies are not accepted */
-		if ($_GET['JS'] == 1) {
-			$_COOKIE['jsAvailable'] = 1;
-		}
-	}
-
-	call_hooks('page_content_top', App::$page['content']);
-}
 
 $Router->Dispatch($a);
 

+ 5 - 5
mod/channel.php

@@ -209,7 +209,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['jsAvailable'] != 1)) {
+		if($load || ($_COOKIE['jsdisabled'] == 1)) {
 			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 +338,13 @@ function channel_content(&$a, $update = 0, $load = false) {
 	}
 
 
-	if($_COOKIE['jsAvailable'] == 1) {
-		$o .= conversation($a,$items,'channel',$update,$page_mode);
-	} else {
+	if($_COOKIE['jsdisabled'] == 1) {
 		$o .= conversation($a,$items,'channel',$update,'traditional');
+	} else {
+		$o .= conversation($a,$items,'channel',$update,$page_mode);
 	}
 
-	if((! $update) || ($_COOKIE['jsAvailable'] != 1)) {
+	if((! $update) || ($_COOKIE['jsdisabled'] == 1)) {
 		$o .= alt_pager($a,count($items));
 		if ($mid && $items[0]['title'])
 			App::$page['title'] = $items[0]['title'] . " - " . App::$page['title'];

+ 6 - 6
mod/display.php

@@ -168,13 +168,13 @@ function display_content(&$a, $update = 0, $load = false) {
 
 	$sql_extra = public_permissions_sql($observer_hash);
 
-	if(($update && $load) || ($_COOKIE['jsAvailable'] != 1)) {
+	if(($update && $load) || ($_COOKIE['jsdisabled'] == 1)) {
 
 		$updateable = false;
 
 		$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(App::$pager['itemspage']),intval(App::$pager['start']));
 
-		if($load || ($_COOKIE['jsAvailable'] != 1)) {
+		if($load || ($_COOKIE['jsdisabled'] == 1)) {
 			$r = null;
 
 			require_once('include/identity.php');
@@ -290,13 +290,13 @@ function display_content(&$a, $update = 0, $load = false) {
 	}
 
 
-	if ($_COOKIE['jsAvailable'] == 1) {
-		$o .= conversation($a, $items, 'display', $update, 'client');
-	} else {
+	if ($_COOKIE['jsdisabled'] == 1) {
 		$o .= conversation($a, $items, 'display', $update, 'traditional');
 		if ($items[0]['title'])
 			App::$page['title'] = $items[0]['title'] . " - " . App::$page['title'];
-
+	} 
+	else {
+		$o .= conversation($a, $items, 'display', $update, 'client');
 	}
 
 	if($updateable) {

+ 1 - 1
mod/network.php

@@ -13,7 +13,7 @@ function network_init(&$a) {
 		return;
 	}
 
-	if((count($_GET) < 2) || (count($_GET) < 3 && $_GET['JS'])) {
+	if(count($_GET) < 2) {
 		$network_options = get_pconfig(local_channel(),'system','network_page_default');
 		if($network_options)
 			goaway('network' . '?f=&' . $network_options);

+ 9 - 0
mod/nojs.php

@@ -0,0 +1,9 @@
+<?php
+
+function nojs_init(&$a) {
+
+	setcookie('jsdisabled', 1, 0);
+	$p = $_GET['query'];
+	goaway(z_root() . (($p) ? '/' . $p : ''));
+
+}

+ 1 - 0
view/tpl/head.tpl

@@ -1,6 +1,7 @@
 <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>