Vous êtes connecté en tant que anonymous Se Deconnecter
Browse code

final procedural project

ER authored on 13/04/2012 10:17:34
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,63 @@
1
+<?php 
2
+class Url
3
+{
4
+	static function link_rewrite($page, $params = array())
5
+	{
6
+		$stringParams = '';
7
+		foreach($params as $key => $values){
8
+			$stringParams .= "/" . $key ."/" . $values;
9
+		}
10
+		return (('home' == $page) ? '/' : '/' . $page . $stringParams);
11
+		  // -- Bonne version
12
+		
13
+		/*
14
+		//Changement de comportement d'une fonction PHP-Zend ... grrr
15
+		array_unshift($params , $page);
16
+		var_dump($params);
17
+		$page = '/' . implode('/' , $params);
18
+		*/
19
+		return $page;
20
+		
21
+	}
22
+	static function url_rewrite()
23
+	{
24
+		
25
+		$url = parse_url($_SERVER['REQUEST_URI']);
26
+		$urlParts = explode('/' , trim( $url['path'] , '/' ));
27
+		//Récupération du nom de la page
28
+		//$page['name'] = $urlParts[0];
29
+		($urlParts[0] == 'index' ||$urlParts[0] == '' )?$page['name']='home':$page['name']=$urlParts[0];
30
+		
31
+		unset($urlParts[0]);
32
+		
33
+		//vérification du nombre de parametres: s'il n'existe pas autant de clé que
34
+		// de valeurs on sort de la fonction et on renvoie une page d'erreur.
35
+		$numParts = count($urlParts);
36
+		if (0!=$numParts%2) {
37
+			$page['name'] = 'error';
38
+			$page['params'] = array();
39
+			return $page;
40
+		}else{
41
+		
42
+		$values = array();
43
+		$keys = array();
44
+		foreach( $urlParts as $key => $value ){
45
+			if($key%2 == 0) {
46
+				$values[] = $value;
47
+			} else {
48
+				$keys[] = $value;
49
+			}
50
+		}
51
+		$page['params'] = array_combine($keys, $values);
52
+		}
53
+		
54
+		$pageFile = PAGES_PATH . DIRECTORY_SEPARATOR . $page['name'] . '.php';
55
+		
56
+		if(!file_exists($pageFile)){
57
+			$page['name'] = 'error';
58
+		}
59
+		return $page;
60
+		
61
+	}
62
+	
63
+}