Line 67... |
Line 67... |
67 |
|
67 |
|
68 |
public function traiterParametres($parametres) {
|
68 |
public function traiterParametres($parametres) {
|
69 |
if (isset($parametres) && !empty($parametres)) {
|
69 |
if (isset($parametres) && !empty($parametres)) {
|
70 |
foreach ($parametres as $param => $val) {
|
70 |
foreach ($parametres as $param => $val) {
|
- |
|
71 |
switch ($param) {
|
71 |
switch ($param) {
|
72 |
case 'version.projet' : $this->ajouterFiltreVersion($val); break;
|
72 |
case 'retour.langue' : $this->rechercherLangueDispo($val); break;
|
73 |
case 'retour.langue' : $this->rechercherLangueDispo($val); break;
|
73 |
case 'retour.format' : $this->retour_format = $val; break;
|
74 |
case 'retour.format' : $this->retour_format = $val; break;
|
74 |
default :
|
75 |
default :
|
75 |
$e = 'Erreur dans les paramètres de recherche de votre requête : </br> Le paramètre " '
|
76 |
$e = 'Erreur dans les paramètres de recherche de votre requête : </br> Le paramètre " '
|
Line 79... |
Line 80... |
79 |
}
|
80 |
}
|
80 |
}
|
81 |
}
|
81 |
}
|
82 |
}
|
82 |
}
|
83 |
}
|
Line 83... |
Line -... |
83 |
|
- |
|
84 |
//----------------------FONCTIONS TRAITEMENT DES RESSOURCES-------------------------------------------------------------
|
- |
|
85 |
|
- |
|
86 |
public function traiterRessources($ressources) {
|
- |
|
87 |
// /meta-donnees (liste des meta-données. Toutes les info de la table sont affichées) ou /meta-donnees/#champ
|
- |
|
88 |
if (isset($ressources) && !empty($ressources)) {
|
- |
|
89 |
$this->table_ressources = $ressources;
|
- |
|
90 |
if (isset($ressources) && !empty($ressources)) {
|
- |
|
91 |
$this->format_reponse = 'metaDonnees/champ';
|
- |
|
92 |
}
|
- |
|
93 |
}
|
- |
|
94 |
}
|
- |
|
95 |
|
84 |
|
96 |
/** Détermine quelles métadonnées doivent etre retournées :
|
85 |
/** Détermine quelles métadonnées doivent etre retournées :
|
97 |
* - "*" : (/#projet/* /meta-donnees) Renvoi les meta-données de toutes les versions du projet
|
86 |
* - "*" : (/#projet/* /meta-donnees) Renvoi les meta-données de toutes les versions du projet
|
98 |
* - "numero de la version" : (/#projet/2.00/meta-donnees) Renvoi les meta-données de la version 2.00 du projet
|
87 |
* - "numero de la version" : (/#projet/2.00/meta-donnees) Renvoi les meta-données de la version 2.00 du projet
|
99 |
* - non renseignée : (/#projet/meta-donnees) Renvoi les meta-données de la dernière version du projet
|
88 |
* - non renseignée : (/#projet/meta-donnees) Renvoi les meta-données de la dernière version du projet
|
100 |
* Cette info est stockée dans par la classe RestServeur dans la variable $ressources ($ressources[0])
|
89 |
* Cette info est stockée dans par la classe RestServeur dans la variable $ressources ($ressources[0])
|
101 |
*/
|
90 |
*/
|
102 |
public function traiterVersionProjet() {
|
- |
|
103 |
if (isset($this->ressources[0]) && !empty($this->ressources[0])) {
|
91 |
public function ajouterFiltreVersion($val) {
|
104 |
if (preg_match('/(?:[0-9]+(?:_|[.])[0-9]+|[*]| )/', $this->ressources[0])) {
|
92 |
if (preg_match('/(?:[0-9]+(?:_|[.])[0-9]+|[*]| )/', $val)) {
|
105 |
$this->version_projet = array_shift($this->ressources);
|
- |
|
106 |
if ($this->version_projet == ' ') $this->version_projet = '+';
|
93 |
$this->version_projet = ($val == ' ') ? '+' : $val;
|
107 |
}
|
94 |
}
|
108 |
switch ($this->version_projet) {
|
95 |
switch ($this->version_projet) {
|
109 |
case '+' :
|
96 |
case '+' :
|
110 |
$this->requete_condition[] = 'version = (SELECT MAX(version) FROM '.Config::get('bdd_table_meta').')';
|
97 |
$this->requete_condition[] = 'version = (SELECT MAX(version) FROM '.Config::get('bdd_table_meta').')';
|
111 |
break;
|
98 |
break;
|
112 |
case '*' :
|
99 |
case '*' :
|
113 |
break;
|
100 |
break;
|
114 |
default :
|
101 |
default :
|
- |
|
102 |
if (is_numeric($this->version_projet)) {
|
- |
|
103 |
$versions_dispo = $this->rechercherVersionsDispos();
|
- |
|
104 |
if (in_array($val, $versions_dispo)) {
|
- |
|
105 |
$this->requete_condition[] = 'version = '.$this->getBdd()->proteger($val);
|
- |
|
106 |
} else {
|
115 |
if (is_numeric($this->version_projet)) {
|
107 |
$e = 'La version demandée n\'existe pas actuellement. </br>Les versions disponibles sont : '
|
- |
|
108 |
.implode(', ', $versions_dispo);
|
116 |
$this->ajouterFiltreVersion();
|
109 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e);
|
117 |
}
|
110 |
}
|
118 |
break;
|
111 |
}
|
119 |
}
|
112 |
break;
|
120 |
}
|
- |
|
121 |
|
113 |
}
|
122 |
}
|
- |
|
123 |
|
114 |
}
|
124 |
|
115 |
|
125 |
/**
|
116 |
/**
|
126 |
* Vérifie que le numéro de la version passée en paramètre correspond à une version existante.
|
117 |
* Vérifie que le numéro de la version passée en paramètre correspond à une version existante.
|
127 |
* Si oui remplit la condition de la requete SQL
|
118 |
* Si oui remplit la condition de la requete SQL
|
128 |
*/
|
119 |
*/
|
129 |
public function ajouterFiltreVersion() {
|
120 |
public function rechercherVersionsDispos() {
|
130 |
$val = str_replace('_', '.', $this->version_projet);
|
121 |
$val = str_replace('_', '.', $this->version_projet);
|
131 |
$req_version = 'SELECT version FROM '.Config::get('bdd_table_meta');
|
122 |
$req_version = 'SELECT version FROM '.Config::get('bdd_table_meta');
|
132 |
$res_version = $this->getBdd()->recupererTous($req_version);
|
123 |
$res_version = $this->getBdd()->recupererTous($req_version);
|
133 |
foreach ($res_version as $version) {
|
124 |
foreach ($res_version as $version) {
|
134 |
$versions_dispo[] = $version['version'];
|
125 |
$versions_dispo[] = $version['version'];
|
135 |
}
|
- |
|
136 |
if (in_array($val, $versions_dispo)) {
|
- |
|
137 |
$this->requete_condition[] = 'version = '.$this->getBdd()->proteger($val);
|
- |
|
138 |
} else {
|
- |
|
139 |
$e = 'La version demandée n\'existe pas actuellement. </br>Les versions disponibles sont : '
|
126 |
}
|
140 |
.implode($versions_dispo);
|
- |
|
141 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e);
|
- |
|
142 |
}
|
127 |
return $versions_dispo;
|
143 |
}
|
- |
|
144 |
|
128 |
}
|
145 |
|
129 |
|
146 |
/** Vérifie que les meta-donnees existe dans la langue passée en paramètre, Si oui remplit la condition de la requete SQL */
|
130 |
/** Vérifie que les meta-donnees existe dans la langue passée en paramètre, Si oui remplit la condition de la requete SQL */
|
147 |
public function rechercherLangueDispo($val) {
|
131 |
public function rechercherLangueDispo($val) {
|
148 |
//on recherche les langues_meta disponibles pour la version demandée : (d'ou ajout de la condition)
|
132 |
//on recherche les langues_meta disponibles pour la version demandée : (d'ou ajout de la condition)
|
149 |
$req_langue = 'SELECT langue_meta FROM '
|
133 |
$req_langue = 'SELECT langue_meta FROM '
|
150 |
.Config::get('bdd_table_meta')
|
134 |
.Config::get('bdd_table_meta')
|
151 |
.' WHERE '.implode(' AND ', $this->requete_condition);
|
135 |
.$this->formerRequeteCondition();
|
152 |
$res_langue = $this->getBdd()->recupererTous($req_langue);
|
136 |
$res_langue = $this->getBdd()->recupererTous($req_langue);
|
153 |
foreach ($res_langue as $langue) {
|
137 |
foreach ($res_langue as $langue) {
|
154 |
$langue_dispo[] = $langue['langue_meta'];
|
138 |
$langue_dispo[] = $langue['langue_meta'];
|
155 |
}
|
139 |
}
|
156 |
if (in_array($val, $langue_dispo)) {
|
140 |
if (in_array($val, $langue_dispo)) {
|
157 |
$this->requete_condition[] = 'langue_meta = '.$this->getBdd()->proteger($val);
|
141 |
$this->requete_condition[] = 'langue_meta = '.$this->getBdd()->proteger($val);
|
158 |
} else {
|
142 |
} else {
|
159 |
$e = 'La langue demandée n\'existe pas actuellement. </br>Les langues disponibles sont : '
|
143 |
$e = 'La langue demandée n\'existe pas actuellement. </br>Les langues disponibles sont : '
|
160 |
.implode($langue_dispo);
|
144 |
.implode($langue_dispo);
|
161 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e);
|
145 |
$this->renvoyerErreur(RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE, $e);
|
162 |
}
|
146 |
}
|
- |
|
147 |
}
|
- |
|
148 |
//----------------------FONCTIONS TRAITEMENT DES RESSOURCES-------------------------------------------------------------
|
- |
|
149 |
|
- |
|
150 |
public function traiterRessources($ressources) {
|
- |
|
151 |
// /meta-donnees (liste des meta-données. Toutes les info de la table sont affichées) ou /meta-donnees/#champ
|
- |
|
152 |
if (isset($ressources) && !empty($ressources)) {
|
- |
|
153 |
$this->table_ressources = $ressources;
|
- |
|
154 |
if (isset($ressources) && !empty($ressources)) {
|
- |
|
155 |
$this->format_reponse = 'metaDonnees/champ';
|
- |
|
156 |
}
|
- |
|
157 |
}
|
Line 163... |
Line 158... |
163 |
}
|
158 |
}
|
Line 164... |
Line 159... |
164 |
|
159 |
|
- |
|
160 |
//------------------------------Fonction d'assemblage de la requete------------------------------------------------------
|
- |
|
161 |
|
- |
|
162 |
public function assemblerLaRequete() {
|
- |
|
163 |
$req = 'SELECT '.$this->requete_champ.' FROM '.Config::get('bdd_table_meta').$this->formerRequeteCondition();
|
- |
|
164 |
return $req;
|
165 |
//------------------------------Fonction d'assemblage de la requete------------------------------------------------------
|
165 |
}
|
166 |
|
166 |
|
167 |
public function assemblerLaRequete() {
|
167 |
public function formerRequeteCondition() {
|
168 |
$condition = '';
|
168 |
$condition = '';
|
169 |
if (isset($this->requete_condition)) {
|
- |
|
170 |
$condition = ' WHERE '.implode(' AND ', $this->requete_condition);
|
169 |
if ($this->requete_condition != null) {
|
171 |
}
|
170 |
$condition = ' WHERE '.implode(' AND ', $this->requete_condition);
|
Line 172... |
Line 171... |
172 |
$req = 'SELECT '.$this->requete_champ.' FROM '.Config::get('bdd_table_meta').$condition;
|
171 |
}
|
Line 173... |
Line 172... |
173 |
return $req;
|
172 |
return $condition;
|