Subversion Repositories Applications.dictionnaire

Rev

Rev 2 | Rev 8 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 6
1
<?php
1
<?php
2
class Dictionnaire extends RestService {
2
class Dictionnaire extends RestService {
-
 
3
 
-
 
4
	// SELECT a.id, a.cle, b.id, b.cle FROM definitions a, definitions b WHERE a.id != b.id AND INSTR(b.cle, a.cle) != 0 order by a.cle;
-
 
5
	// SELECT group_concat( distinct a.id) FROM definitions a, definitions b WHERE a.id != b.id AND INSTR(b.cle, a.cle) != 0
-
 
6
	static $sous_mots = array(20,22,33,37,65,103,106,151,160,164,177,202,220,222,230,249,250,257,262,276,284,307,334,352,359,394,397,401,422,437,438,449,452,453,463,469,475,498,517,527,547,549,550,585,603,604,606,607,638,641,660);
3
 
7
 
4
//+----------------------------------------------------------------------------------------------------------------+	
8
//+----------------------------------------------------------------------------------------------------------------+	
5
// Consulter
9
// Consulter
6
	public function consulter($ressources, $parametres) {
10
	public function consulter($ressources, $parametres) {
7
    	$entete_http = RestServeur::HTTP_CODE_CONTENU_REQUIS;
11
    	$entete_http = RestServeur::HTTP_CODE_CONTENU_REQUIS;
8
    	$corps_http = null;
12
    	$corps_http = null;
9
    	
13
    	
10
    	if (isset($ressources[0])) {
14
    	if (isset($ressources[0])) {
11
    		
15
    		
12
    		$methode = $ressources[0];
16
    		$methode = $ressources[0];
13
    		
17
    		
14
    		switch($methode) {
18
    		switch($methode) {
15
    			
19
    			
16
    			case 'mots':
20
    			case 'mots':
17
    				$retour = $this->getMots();
21
    				$retour = $this->getMots();
18
    			break;
22
    			break;
19
    			
23
    			
20
    			case 'def':
24
    			case 'def':
21
    				if(isset($ressources[1])) {
25
    				if(isset($ressources[1])) {
22
						$retour = $this->getDefinition($ressources[1]);
26
						$retour = $this->getDefinition($ressources[1]);
23
					} else {
27
					} else {
24
						$retour = $this->getToutesDefinitions();
28
						$retour = $this->getToutesDefinitions();
25
					}
29
					}
26
				break;
30
				break;
27
				case 'defs':
31
				case 'defs':
28
					$retour = $this->getToutesDefinitions();
32
					$retour = $this->getToutesDefinitions();
29
    			break;
33
    			break;
30
    			
34
    			
31
    			default:
35
    			default:
32
    				$retour = 'Le service requiert un nom de méthode';
36
    				$retour = 'Le service requiert un nom de méthode';
33
    			break;
37
    			break;
34
    		}
38
    		}
35
			
39
			
36
			$entete_http = RestServeur::HTTP_CODE_OK;
40
			$entete_http = RestServeur::HTTP_CODE_OK;
37
			$corps_http = json_encode($retour);	
41
			$corps_http = json_encode($retour);	
38
			
42
			
39
    	} else {
43
    	} else {
40
    		$entete_http = RestServeur::HTTP_CODE_CONTENU_REQUIS;
44
    		$entete_http = RestServeur::HTTP_CODE_CONTENU_REQUIS;
41
    	}
45
    	}
42
    	
46
    	
43
    	RestServeur::envoyerEnteteStatutHttp($entete_http);
47
    	RestServeur::envoyerEnteteStatutHttp($entete_http);
44
    	header('Content-type : application/json; charset=UTF-8');
48
    	header('Content-type : application/json; charset=UTF-8');
45
    	echo $corps_http; 
49
    	echo $corps_http; 
46
    	exit;
50
    	exit;
47
    }
51
    }
48
    
52
    
49
    private function getDefinition($mot) {
53
    private function getDefinition($mot) {
50
    	
-
 
51
    	$requete_selection_definition = 'SELECT valeur FROM definitions WHERE cle = "'.$this->simplifier($mot).'"';   
54
    	$requete_selection_definition = 'SELECT valeur FROM definitions WHERE cle = "'. self::simplifier($mot).'"';   
52
    	$definition = $this->bdd->recuperer($requete_selection_definition);
55
    	$definition = $this->bdd->recuperer($requete_selection_definition);
53
    	
56
    	
54
		return $definition; 
57
		return $definition; 
55
    }
58
    }
56
    
59
    
57
    private function getToutesDefinitions() {
60
    private function getToutesDefinitions() {
58
    	
-
 
59
    	$requete_selection_toutes_definitions = 'SELECT valeur FROM definitions';
61
		return $this->bdd->recupererTous('SELECT valeur FROM definitions');
60
    	$definitions = $this->bdd->recupererTous($requete_selection_toutes_definitions);
-
 
61
    	
-
 
62
		return $definitions; 
-
 
63
    }
62
    }
-
 
63
    
64
    
64
 
65
    private function getMots() {	
65
    private function getMots() {
-
 
66
		/*
-
 
67
		$requete = sprintf('SELECT cle FROM definitions WHERE id NOT IN (%s) ORDER BY LENGTH(cle) DESC',
66
    	
68
						   implode(",", self::$sous_mots));
67
    	$requete_selection_mots = 'SELECT cle FROM definitions';
69
		$requete = sprintf('SELECT cle FROM definitions WHERE id NOT IN (%s)',
-
 
70
						   implode(",", self::$sous_mots));
-
 
71
		*/
68
    	$mots = $this->bdd->recupererTous($requete_selection_mots);
72
		$requete = 'SELECT cle FROM definitions';
69
    		    	
73
 
70
    	foreach($mots as &$mot) {
74
    	$assoc = $this->bdd->recupererTous($requete);
71
    		$mot['cle'] = $mot['cle'];
-
 
72
    	} 
75
		array_walk($assoc, function(&$item) { $item = $item['cle']; });
73
		return $mots; 	
76
		return $assoc;
74
    }
77
    }
75
    
-
 
76
    function simplifier($chaine){
-
 
77
    	
78
    
78
		$sans_accent = strtr($chaine,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
-
 
79
		'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
-
 
80
		
-
 
81
		$en_minuscule = strtolower($sans_accent);
-
 
82
		
79
    static function simplifier($chaine){
83
		return $en_minuscule;
80
		return strtolower(iconv('UTF-8', 'ASCII//TRANSLIT', $chaine));
84
	}
81
	}
85
}
82
}
86
?>
83
?>