137b5e76 |
<?php
|
daf6e125 |
namespace MVC\Classe;
|
137b5e76 |
class Url
{
public $page;
|
c2e0b12e |
public $registre;
|
137b5e76 |
|
aed8ee26 |
public function __construct(){
|
ff461209 |
|
c2e0b12e |
$this->registre = new \MVC\Classe\ModularRegister();
|
3957c7ee |
|
c2e0b12e |
$page = array();
$page['name'] = 'accueil';
$page['description'] = "";
$page['params'] = array();
$page['control'] = false;
|
3957c7ee |
|
c2e0b12e |
$url = parse_url($_SERVER['REQUEST_URI']);
$urlTrim = trim( $url['path'] , '/' );
$urlParts = explode('/' , $urlTrim );
//print_r($urlParts);
if(isset($urlParts[0])) {
//Récupération du nom de la page
($urlParts[0] == 'index' || $urlParts[0] == '') ? $page['name'] = 'accueil' : $page['name'] = $urlParts[0];
//array_shift($urlParts);
unset($urlParts[0]);
}else{
$page['name'] = 'accueil';
}
|
3957c7ee |
|
c2e0b12e |
if($page['name'] == 'control'){
$page['control'] = true;
($urlParts[1] == 'index' || $urlParts[1] == '' ) ? $page['name']='accueil' : $page['name']=$urlParts[1];
//array_shift($urlParts);
unset($urlParts[1]);
|
3957c7ee |
|
c2e0b12e |
}
|
aed8ee26 |
|
c2e0b12e |
//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 ) {
if( !in_array($page['name'], $this->registre->getIndex()) ){
$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;
}
}
if($page['control']){
$page['params'] = array_combine($values, $keys);
}else {
$page['params'] = array_combine($keys, $values);
}
}
//verification de l'existence de la page dans les controlleurs
if($page['control']){
$pageFile = TRAITEMENT_PATH . DIRECTORY_SEPARATOR . $page['name'] . '.php';
|
3957c7ee |
}else {
|
c2e0b12e |
$pageFile = CONTROLLERS_PATH . DIRECTORY_SEPARATOR . $page['name'] . '.php';
|
3957c7ee |
}
|
c2e0b12e |
if(!file_exists($pageFile)){
$page['name'] = 'error';
}
$this->page = $page;
}
|
137b5e76 |
}
|