You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.6 KiB
81 lines
1.6 KiB
<?php
|
|
|
|
/**
|
|
* Send a redirect to the user agent and exist
|
|
*
|
|
* @license see /license.txt
|
|
* @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
|
|
*/
|
|
class Redirect
|
|
{
|
|
|
|
static function www()
|
|
{
|
|
return Uri::www();
|
|
}
|
|
|
|
static function go($url = '')
|
|
{
|
|
if (empty($url))
|
|
{
|
|
Redirect::session_request_uri();
|
|
$www = self::www();
|
|
self::navigate($www);
|
|
}
|
|
|
|
$is_full_uri = (strpos($url, 'http') === 0);
|
|
if ($is_full_uri)
|
|
{
|
|
self::navigate($url);
|
|
}
|
|
|
|
$url = self::www() . $url;
|
|
self::navigate($url);
|
|
}
|
|
|
|
/**
|
|
* Redirect to the session "request uri" if it exists.
|
|
*/
|
|
static function session_request_uri()
|
|
{
|
|
// if (api_is_anonymous())
|
|
// {
|
|
// return;
|
|
// }
|
|
$no_redirection = isset($_SESSION['noredirection']) ? $_SESSION['noredirection'] : false;
|
|
|
|
if($no_redirection){
|
|
unset($_SESSION['noredirection']);
|
|
return;
|
|
}
|
|
|
|
$url = isset($_SESSION['request_uri']) ? $_SESSION['request_uri'] : '';
|
|
unset($_SESSION['request_uri']);
|
|
|
|
|
|
if ($url)
|
|
{
|
|
self::navigate($url);
|
|
}
|
|
}
|
|
|
|
static function home()
|
|
{
|
|
$www = self::www();
|
|
self::navigate($www);
|
|
}
|
|
|
|
static function user_home()
|
|
{
|
|
$www = self::www();
|
|
self::navigate("$www/user_portal.php");
|
|
}
|
|
|
|
protected static function navigate($url)
|
|
{
|
|
session_write_close(); //should not be neeeded
|
|
header("Location: $url");
|
|
exit;
|
|
}
|
|
|
|
} |