storeCoreModels();
//Limpiamos la carpeta actual si se incluye en la URL
$request_uri = substr( $request, strpos($request, $folder) + strlen($folder), strlen($request) );
// Limpieza de Query String con el filtro de PHP
// Además, eliminamos la primera /
// Y de paso, quitamos la última / si existe...
// así /public/index = /public/index/
$request_uri = trim(filter_var($request_uri, FILTER_SANITIZE_URL), '/');
// Obtenemos los trozos del querystring
// 1. Eliminamos la parte de $_GET si existe, partiendo por ?
/*if(strpos($request, '?') !== FALSE)
$request = substr($request, 0, strpos($request,'?'));*/
// 2. Nos montamos un array con los trozos
$request = explode('/', $request_uri);
// Obtención de idioma
$idiomas = array(
'Alemán'=>'de',
'Español'=>'es',
'Francés'=>'fr',
'Griego'=>'gr',
'Ingles'=>'en',
'Italiano'=>'it',
'Portugués'=>'pt',
'Ruso'=>'ru'
);
if( isset($request[0]) )
{
if( in_array(strtolower($request[0]), $idiomas) )
{
// www.dominio.com/es
$idioma = array_shift($request);
define('LANGUAGE', $idioma);
}
}
//Buscamos si el primer parametro es una pagina
if( isset($request[0]) && !empty($request[0]) )
{
if( file_exists("www/".$request[0].".php") )
{
$url = "www/".array_shift($request).".php";
}
elseif( $request[0] == "admin" )
{
$url = "adminsite_clientbrowser/index.php";
}
elseif( $request[0] == "adminsite_api" )
{
$url = "adminsite_api/index.php";
}
elseif( $request[0] == "img" )
{
//Instanciar controlador
array_shift($request);
$img = new Pics($request);
exit();
}
elseif( !isset($request[1]) or empty($request[1]) )
{
$url = "www/index.php";
}
}
else
{
$url = "www/index.php";
}
//Comprobar si existe controlador
if( isset($request[0]) )
{
if( file_exists( "controller/" . ucfirst(strtolower($request[0])) . ".php" ) )
{
$controller = ucfirst(strtolower(array_shift($request)));
$action = strtolower(array_shift($request)).'Action';
}
}
// Resto de parámetros, los recogemos como /clave1/valor1/clave2/valor2
$params = array();
for( $i=0; $i$action();
}
}
if( !empty($url) )
{
include $url;
}
else
{
include "www/error/404.php";
}
}
catch (Exception $ex)
{
// Aquí depende mucho de lo que queramos hacer...
echo $ex->getMessage();
// O incluso mejor, si venimos de una clase de las profundidades, veremos
// la secuencia de clases, aquí no veremos nada ya que todo pasa en el index.php
debug_print_backtrace();
}
?>