Skip to content

Commit 7413338

Browse files
committed
fix for language redirect break in FF
1 parent 6090242 commit 7413338

File tree

10 files changed

+19
-16
lines changed

10 files changed

+19
-16
lines changed

assets/css/style.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* PHP Microsite Boilerplate
44
* +++++++++++++++++++++++++
55
*
6-
* Version: 2.0.6
6+
* Version: 2.0.7
77
* Creator: Jens Kuerschner (https://jenskuerschner.de)
88
* Project: https://github.com/jekuer/php-microsite-boilerplate
99
* License: GNU General Public License v3.0 (gpl-3.0)

assets/js/all.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/js/all.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/js/base.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,26 +87,26 @@ function adjustLanguage() {
8787
if (activeLanguage != null && activeLanguage != '') {
8888
if (languageCookie != null && languageCookie != '') {
8989
if (languageCookie != activeLanguage) {
90-
if (document.referrer.indexOf(window.location.host) === -1) {
91-
// Redirect if possible.
90+
if (document.getElementById('same_site_referrer').innerHTML === '1') {
91+
// Update cookie if on same domain.
92+
setCookie('language_select', activeLanguage, 30);
93+
} else {
94+
// Redirect if not and possible.
9295
var linkToLanguage_lookup = document.querySelector('link[hreflang="'+languageCookie+'"]');
9396
if (linkToLanguage_lookup != null && linkToLanguage_lookup != '') {
9497
var linkToLanguage = linkToLanguage_lookup.href;
9598
if (linkToLanguage !== null && linkToLanguage !== undefined && linkToLanguage != '') {
9699
window.location = linkToLanguage;
97100
}
98101
}
99-
} else {
100-
// Update cookie.
101-
setCookie('language_select', activeLanguage, 30);
102102
}
103103
}
104104
} else {
105105
// Set cookie.
106106
setCookie('language_select', activeLanguage, 30);
107107
var browserLanguage = navigator.language || navigator.userLanguage;
108108
browserLanguage = browserLanguage.substring(0, 1);
109-
if (document.referrer.indexOf(window.location.host) === -1 && browserLanguage != null && browserLanguage != '' && browserLanguage != activeLanguage) {
109+
if (document.getElementById('same_site_referrer').innerHTML !== '1' && browserLanguage != null && browserLanguage != '' && browserLanguage != activeLanguage) {
110110
var linkToLanguage = document.querySelector('link[hreflang="'+browserLanguage+'"]');
111111
if (linkToLanguage !== null && linkToLanguage !== undefined && linkToLanguage != '') {
112112
linkToLanguage = linkToLanguage.href;

config.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
// Current version of the website.
88
// Will be used to control css and js caching.
9-
$version_nr = '2.0.6';
9+
$version_nr = '2.0.7';
1010

1111
// Multilanguage
1212
$language['default'] = 'en'; // Use a key from the array below.

index.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* PHP Microsite Boilerplate
66
* +++++++++++++++++++++++++
77
*
8-
* Version: 2.0.6
8+
* Version: 2.0.7
99
* Creator: Jens Kuerschner (https://jenskuerschner.de)
1010
* Project: https://github.com/jekuer/php-microsite-boilerplate
1111
* License: GNU General Public License v3.0 (gpl-3.0)
@@ -117,7 +117,7 @@
117117
/*if (isset($_COOKIE['language_select'])) {
118118
$cookie_lang = make_safe($_COOKIE['language_select']);
119119
if ($cookie_lang != $language['active']) {
120-
if ($prev_url_to_parse == '') {
120+
if ($same_site_referrer == false) {
121121
// Redirect if possible.
122122
if (isset($pages[$cookie_lang][$the_page->id])) {
123123
$lang_redirect_url = $the_page_url;
@@ -145,7 +145,7 @@
145145
setcookie('language_select', $language['active'], time() + (86400 * 30), "/", $tmp_domain); // 86400 = 1 day.
146146
// Compare to browser language.
147147
$browser_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
148-
if ($prev_url_to_parse == '' and $browser_lang != $language['active']) {
148+
if ($same_site_referrer = false and $browser_lang != $language['active']) {
149149
if (isset($pages[$browser_lang][$the_page->id])) {
150150
// This indicates that the user is new to the page and his browser language could be supported by one of the translations.
151151
// You could now offer him a redirect or highlight the language switcher.

lib/url_parsing.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,13 @@ function parse_the_url($url) {
5454
$url_parts_all_prev = array();
5555
$url_parts_prev = array();
5656
$prev_url_to_parse = '';
57+
$same_site_referrer = false;
5758
if (isset($_SERVER['HTTP_REFERER'])) {
5859
$prev_url_to_parse = filter_var($_SERVER['HTTP_REFERER'], FILTER_SANITIZE_URL);
5960
$prev_url_to_parse_arr = parse_url($prev_url_to_parse);
6061
if (isset($prev_url_to_parse_arr['host']) and isset($_SERVER['HTTP_HOST'])) {
6162
if ($_SERVER['HTTP_HOST'] == $prev_url_to_parse_arr['host'] and isset($prev_url_to_parse_arr['path'])) {
63+
$same_site_referrer = true;
6264
$prev_url_to_parse = $prev_url_to_parse_arr['path'];
6365
$url_parts_all_prev = parse_the_url($prev_url_to_parse);
6466
} else {

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "php-microsite-boilerplate",
3-
"version": "2.0.6",
3+
"version": "2.0.7",
44
"description": "An extremely simple and lightweight PHP framework/boilerplate to spin-up microsites at high speed. Optimized for Performance, Security, SEO, and Directus CMS.",
55
"keywords": [
66
"css",

templates/header.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949

5050
</head>
5151
<body itemscope itemtype="http://schema.org/WebSite">
52+
<?php echo '<div id="same_site_referrer" style="display:none;">' . $same_site_referrer . '</div>' // a workaround to have the referrer domain even, if Firefox does not support it ?>
5253

5354
<!-- Google Tag Manager (noscript) -->
5455
<?php

0 commit comments

Comments
 (0)