From: Roland Haeder Date: Sun, 24 Jan 2016 15:10:23 +0000 (+0100) Subject: Introduced common_location_shared() to check if location sharing is always, X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;ds=sidebyside;p=quix0rs-gnu-social.git Introduced common_location_shared() to check if location sharing is always, never or by-user enabled. This commit also excluded geometa.js if location sharing is for any reason disabled as this loads an external reference from Google. Signed-off-by: Roland Haeder --- diff --git a/lib/action.php b/lib/action.php index ca8ece7ebc..5f12b4e94b 100644 --- a/lib/action.php +++ b/lib/action.php @@ -423,7 +423,9 @@ class Action extends HTMLOutputter // lawsuit if (Event::handle('StartShowStatusNetScripts', array($this))) { $this->script('util.js'); $this->script('xbImportNode.js'); - $this->script('geometa.js'); + if (common_location_shared()) { + $this->script('geometa.js'); + } // This route isn't available in single-user mode. // Not sure why, but it causes errors here. diff --git a/lib/util.php b/lib/util.php index 1da9cc3c17..a1f6fe2bd1 100644 --- a/lib/util.php +++ b/lib/util.php @@ -2454,3 +2454,35 @@ function html_sprintf() } return call_user_func_array('sprintf', $args); } + +function common_location_shared() +{ + // Get default setting + $cfg = common_config('location', 'share'); + + if ($cfg == 'always') { + // Always enabled + return true; + } elseif ($cfg == 'never') { + // Never enabled + return false; + } + + // Is the user logged-in? + if (common_logged_in()) { + // Get current user + $user = common_current_user(); + + // Is it there? + if ($user instanceof User) { + // Yes, get profile + $profile = $user->getProfile(); + + // Get it from the profile + return $profile->shareLocation(); + } + } + + // User is not logged in, get default + return common_config('location', 'sharedefault'); +}