Subversion Repositories Applications.dictionnaire

Rev

Rev 2 | Rev 8 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 aurelien 1
<?php
2
class Dictionnaire extends RestService {
3
 
6 raphael 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);
7
 
1 aurelien 8
//+----------------------------------------------------------------------------------------------------------------+
9
// Consulter
10
	public function consulter($ressources, $parametres) {
11
    	$entete_http = RestServeur::HTTP_CODE_CONTENU_REQUIS;
12
    	$corps_http = null;
13
 
14
    	if (isset($ressources[0])) {
15
 
16
    		$methode = $ressources[0];
17
 
18
    		switch($methode) {
19
 
20
    			case 'mots':
21
    				$retour = $this->getMots();
22
    			break;
23
 
24
    			case 'def':
25
    				if(isset($ressources[1])) {
26
						$retour = $this->getDefinition($ressources[1]);
27
					} else {
28
						$retour = $this->getToutesDefinitions();
29
					}
30
				break;
31
				case 'defs':
32
					$retour = $this->getToutesDefinitions();
33
    			break;
34
 
35
    			default:
36
    				$retour = 'Le service requiert un nom de méthode';
37
    			break;
38
    		}
39
 
40
			$entete_http = RestServeur::HTTP_CODE_OK;
41
			$corps_http = json_encode($retour);
42
 
43
    	} else {
44
    		$entete_http = RestServeur::HTTP_CODE_CONTENU_REQUIS;
45
    	}
46
 
2 aurelien 47
    	RestServeur::envoyerEnteteStatutHttp($entete_http);
1 aurelien 48
    	header('Content-type : application/json; charset=UTF-8');
49
    	echo $corps_http;
50
    	exit;
51
    }
52
 
53
    private function getDefinition($mot) {
6 raphael 54
    	$requete_selection_definition = 'SELECT valeur FROM definitions WHERE cle = "'. self::simplifier($mot).'"';
1 aurelien 55
    	$definition = $this->bdd->recuperer($requete_selection_definition);
56
 
57
		return $definition;
58
    }
59
 
60
    private function getToutesDefinitions() {
6 raphael 61
		return $this->bdd->recupererTous('SELECT valeur FROM definitions');
1 aurelien 62
    }
63
 
6 raphael 64
 
65
    private function getMots() {
66
		/*
67
		$requete = sprintf('SELECT cle FROM definitions WHERE id NOT IN (%s) ORDER BY LENGTH(cle) DESC',
68
						   implode(",", self::$sous_mots));
69
		$requete = sprintf('SELECT cle FROM definitions WHERE id NOT IN (%s)',
70
						   implode(",", self::$sous_mots));
71
		*/
72
		$requete = 'SELECT cle FROM definitions';
73
 
74
    	$assoc = $this->bdd->recupererTous($requete);
75
		array_walk($assoc, function(&$item) { $item = $item['cle']; });
76
		return $assoc;
1 aurelien 77
    }
78
 
6 raphael 79
    static function simplifier($chaine){
80
		return strtolower(iconv('UTF-8', 'ASCII//TRANSLIT', $chaine));
1 aurelien 81
	}
82
}
2 aurelien 83
?>