[Snippet] Force login before you see anything V2

Force login before you see anything V2
Un-logged-in users see login-mask only.
V2: After login, the user will be redirected to the link, the user requested before.
Credit: BNa / 4seven (V2)
Simple. Perfect. Cant be tricked out.
open
ucp.php
find
replace with
includes/functions.php
find
before add
Each guest or bot, who visit your site, see only the login mask. Registering is possible, if active, bcs. of
Un-logged-in users see login-mask only.
V2: After login, the user will be redirected to the link, the user requested before.
Credit: BNa / 4seven (V2)
Simple. Perfect. Cant be tricked out.
open
ucp.php
find
- Code: Select all
case 'login':
if ($user->data['is_registered'])
{
redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
}
login_box(request_var('redirect', "index.$phpEx"));
break;
replace with
- Code: Select all
case 'login':
// Force login before you see anything V2 / BNa / 4seven / 2012
$return_value = request_var('return', '', true);
$return_value = str_replace('|', '&', $return_value);
// Force login before you see anything V2 / BNa / 4seven / 2012
if ($user->data['is_registered'])
{
redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
}
// Force login before you see anything V2 / BNa / 4seven / 2012
if ($return_value !== '')
{
preg_match('#p=[0-9]+#', $return_value, $parse_finds);
if(isset($parse_finds[0]) && !empty($parse_finds[0]))
{
$return_value = $return_value . '#' . str_replace('=','',$parse_finds[0]);
}
login_box(request_var('redirect', "$return_value"));
}
else
{
login_box(request_var('redirect', "index.$phpEx"));
}
// Force login before you see anything V2 / BNa / 4seven / 2012
break;
includes/functions.php
find
- Code: Select all
// The following assigns all _common_ variables that may be used at any point in a template.
$template->assign_vars(array(
before add
- Code: Select all
// "Force login before you see anything" for guests and bots / BNa / 4seven / 2012
$login_script_name = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME);
if (($login_script_name !== 'ucp') && (($user->data['user_id'] == ANONYMOUS) || ($user->data['is_bot'])))
{
if(isset($_SERVER['REQUEST_URI']))
{
$referer = trim($_SERVER['REQUEST_URI']);
$referer = explode('/',$referer);
$referer = array_reverse($referer);
$referer = $referer[0];
$referer = str_replace('&', '|', $referer);
$referer = (($referer !== false) && !empty($referer)) ? "&return=$referer" : "";
redirect(append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=login$referer")); return;
}
else
{
redirect(append_sid("{$phpbb_root_path}ucp.$phpEx", "mode=login")); return;
}}
// "Force login before you see anything" for guests and bots / BNa / 4seven / 2012
Each guest or bot, who visit your site, see only the login mask. Registering is possible, if active, bcs. of
ucp.php?mode=register
.