2015-04-15 14:45:54 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
class Url
|
|
|
|
{
|
|
|
|
public $page;
|
|
|
|
|
|
|
|
|
2017-06-13 22:54:16 +02:00
|
|
|
public function __construct(){
|
2019-03-05 13:26:50 +01:00
|
|
|
|
2017-06-13 22:54:16 +02:00
|
|
|
$page = array();
|
|
|
|
$page['name'] = 'accueil';
|
|
|
|
$page['description'] = "";
|
|
|
|
$page['params'] = array();
|
|
|
|
|
|
|
|
$url = parse_url($_SERVER['REQUEST_URI']);
|
|
|
|
$urlTrim = trim( $url['path'] , '/' );
|
2015-04-15 14:45:54 +02:00
|
|
|
$urlParts = explode('/' , $urlTrim );
|
2017-06-13 22:54:16 +02:00
|
|
|
|
|
|
|
//Récupération du nom de la page
|
|
|
|
($urlParts[0] == 'index' || $urlParts[0] == '' ) ? $page['name']='accueil' : $page['name']=$urlParts[0];
|
|
|
|
unset($urlParts[0]);
|
|
|
|
|
|
|
|
//vérification du nombre de parametres: s'il n'existe pas autant de clé que
|
|
|
|
// de valeurs on sort de la fonction et on renvoie une page d'erreur.
|
|
|
|
$numParts = count($urlParts);
|
|
|
|
if ( $numParts%2 != 0 ) {
|
|
|
|
$page['name'] = 'error';
|
|
|
|
$page['params'] = array();
|
|
|
|
return $page;
|
|
|
|
}else if ( $numParts != 0 ){
|
|
|
|
$values = array();
|
|
|
|
$keys = array();
|
|
|
|
foreach( $urlParts as $key => $value ){
|
|
|
|
if($key%2 == 0) {
|
|
|
|
$values[] = $value;
|
|
|
|
} else {
|
|
|
|
$keys[] = $value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$page['params'] = array_combine($keys, $values);
|
|
|
|
}
|
2015-04-15 14:45:54 +02:00
|
|
|
|
|
|
|
//verification de l'existence de la page dans les controlleurs
|
2019-03-05 13:26:50 +01:00
|
|
|
|
2017-06-13 22:54:16 +02:00
|
|
|
$pageFile = CONTROLLERS_PATH . DIRECTORY_SEPARATOR . $page['name'] . '.php';
|
|
|
|
|
|
|
|
if(!file_exists($pageFile)){
|
|
|
|
$page['name'] = 'error';
|
2015-04-15 14:45:54 +02:00
|
|
|
}
|
2017-06-13 22:54:16 +02:00
|
|
|
$this->page = $page;
|
2019-03-05 13:26:50 +01:00
|
|
|
|
2015-04-15 14:45:54 +02:00
|
|
|
}
|
|
|
|
}
|