Add support to baseURLresource used in the HTML page to the modules

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@2154 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2015-05-07 13:10:07 +00:00
parent e1d1db4569
commit 3ea5fff993

View File

@@ -59,6 +59,11 @@ class route
if (substr ($this->baseURL, -1) !== "/")
$this->baseURL .= "/";
}
elseif (isset ($_SERVER["REQUEST_URI"]) &&
strpos ($_SERVER["REQUEST_URI"], "index.php?url=") !== false)
{
$this->baseURL = "";
}
else
{
// Calculate the root in relative
@@ -80,6 +85,21 @@ class route
return $this->baseURL;
}
/** Return the baseURL for a resource (add a index.php?url= if there is no
mod_rewrite support. Used to link to modules in the HTML page.
The baseURL is the real base of the project, which is different when not
using the mod_rewrite. They are equal when using the mod_rewrite */
function baseURLresource ()
{
if ($this->baseURL === "")
$this->baseURL ();
if (isset ($_SERVER["REQUEST_URI"]) &&
strpos ($_SERVER["REQUEST_URI"], "index.php?url=") !== false)
return "index.php?url=".$this->baseURL;
return $this->baseURL;
}
/** Return the baseURL of the module
Always finish with a slash */
function baseURLmodule ()
@@ -119,7 +139,17 @@ class route
$url .= "//".$_SERVER["SERVER_NAME"].$port;
}
if (isset ($_SERVER["REQUEST_URI"]))
$url .= substr ($_SERVER["REQUEST_URI"], 1+strlen (dirname ($_SERVER["SCRIPT_NAME"])));
{
// If there is a directory before the index.php file, must remove the
// directory structure
if (dirname ($_SERVER["SCRIPT_NAME"]) !== "/")
$url .= substr ($_SERVER["REQUEST_URI"],
1+strlen (dirname ($_SERVER["SCRIPT_NAME"])));
else
// If there is no directory before the index.php (root of the Web server),
// just remove the /
$url = substr ($_SERVER["REQUEST_URI"], 1);
}
return $url;
}
@@ -147,6 +177,13 @@ class route
$destURL = $baseURL.substr ($destURL, 1);
}
if (strpos ($requestURL, "index.php?url=") !== false)
{
// If not using the mod_rewrite, force the index.php?url=
$destURL = substr ($destURL, strlen ($baseURL));
$destURL = "index.php?url=".$destURL;
}
// Else http : keep the complete URL
if ($destURL === "")
throw new Exception ("Destination URL is empty", 500);
@@ -307,8 +344,7 @@ class route
@param function $function Function to be executed if the route match */
public function map ($route, $function)
{
$url = substr ($this->requestURL (), strlen ($this->baseURLmodule ()));
$url = $this->requestURL ();
$url = str_replace ("index.php?url=", "", $this->requestURL ());
if ($this->debug)
echo "$url ";
if ($url === $route)