Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 980 | Rev 1108 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 980 Rev 1107
Line 56... Line 56...
56
     protected $limite_requete = array(
56
     protected $limite_requete = array(
57
         'depart' => 0,
57
         'depart' => 0,
58
         'limite' => 100
58
         'limite' => 100
59
     );
59
     );
Line -... Line 60...
-
 
60
 
-
 
61
	/**
-
 
62
	 * Vrai tri SQL
-
 
63
	 */
-
 
64
	protected $tri;
-
 
65
	protected $tri_ordre = 'asc';
-
 
66
 
60
 
67
	// wtf ? on trie après avoir exécuté la requête ?
61
     protected $champ_tri = 'code_langue';
68
    protected $champ_tri = 'code_langue';
Line 62... Line 69...
62
     protected $direction_tri = 'asc';
69
    protected $direction_tri = 'asc';
63
 
70
 
64
     /**
71
     /**
65
      * Indique les champs supplémentaires à retourner
72
      * Indique les champs supplémentaires à retourner
Line 84... Line 91...
84
     /** Permet de stocker le tableau de résultat (non encodé en json) */
91
     /** Permet de stocker le tableau de résultat (non encodé en json) */
85
     protected $table_retour = array();
92
     protected $table_retour = array();
86
     /** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
93
     /** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */
87
     protected $total_resultat;
94
     protected $total_resultat;
Line 88... Line 95...
88
 
95
 
Line 89... Line 96...
89
     private $config;
96
     protected $config;
90
 
97
 
91
     public function __construct($config) {
98
     public function __construct($config) {
Line 118... Line 125...
118
                         $this->ajouterFiltreMasque('num_statut', $valeur);
125
                         $this->ajouterFiltreMasque('num_statut', $valeur);
119
                         break;
126
                         break;
120
                     case 'retour.format' :
127
                     case 'retour.format' :
121
                         $this->retour_format = $valeur;
128
                         $this->retour_format = $valeur;
122
                         break;
129
                         break;
-
 
130
                     case 'retour.tri' :
-
 
131
                         $this->tri = $valeur;
-
 
132
                         break;
-
 
133
                     case 'retour.ordre' :
-
 
134
						 if (in_array(strtolower($valeur), aray('asc', 'desc'))) {
-
 
135
							$this->tri_ordre = $valeur;
-
 
136
						 }
-
 
137
                         break;
123
                     case 'navigation.depart' :
138
                     case 'navigation.depart' :
124
                         $this->limite_requete['depart'] = $valeur;
139
                         $this->limite_requete['depart'] = $valeur;
125
                         break;
140
                         break;
126
                     case 'navigation.limite' :
141
                     case 'navigation.limite' :
127
                         $this->limite_requete['limite'] = $valeur;
142
                         $this->limite_requete['limite'] = $valeur;
Line 169... Line 184...
169
                     $this->traiterRessourceChamp(); //modifie requete_champ ou requete_condition
184
                     $this->traiterRessourceChamp(); //modifie requete_champ ou requete_condition
170
                 }
185
                 }
171
             }
186
             }
172
         } else { //rajoute distinct pour ne pas avoir plusieurs fois le même nom
187
         } else { //rajoute distinct pour ne pas avoir plusieurs fois le même nom
173
             $this->requete_champ = array('distinct(id)', 'nom_vernaculaire ');
188
             $this->requete_champ = array('distinct(id)', 'nom_vernaculaire ');
-
 
189
			 $this->requete_champ = array_merge($this->requete_champ, $this->champs_supp);
174
         }
190
         }
175
     }
191
     }
Line 176... Line 192...
176
 
192
 
177
     //requete : /noms-vernaculaires/#id (ex : /noms-vernaculaires/7)
193
     //requete : /noms-vernaculaires/#id (ex : /noms-vernaculaires/7)
Line 223... Line 239...
223
             $limiteClause = self::formerRequeteLimite( // LIMIT
239
             $limiteClause = self::formerRequeteLimite( // LIMIT
224
                 $this->limite_requete['depart'],
240
                 $this->limite_requete['depart'],
225
                 $count,
241
                 $count,
226
                 $this->limite_requete['limite']);
242
                 $this->limite_requete['limite']);
227
         }
243
         }
228
     
244
 
229
         return sprintf(
245
         $req = sprintf(
230
             'SELECT %s, IF(num_statut="",1,0) AS is_null' .
246
             'SELECT %s, IF(num_statut="",1,0) AS is_null' .
231
             ' FROM %s WHERE %s ORDER BY is_null ASC, num_statut ASC %s -- %s:%d',
247
             ' FROM %s WHERE %s ORDER BY %s is_null ASC, num_statut ASC %s -- %s:%d',
Line 232... Line 248...
232
 
248
 
233
             in_array('*', $this->requete_champ) ? ' * ' : implode(', ', $this->requete_champ),
249
             in_array('*', $this->requete_champ) ? ' * ' : implode(', ', $this->requete_champ),
234
             $this->table,
250
             $this->table,
-
 
251
             $this->requete_condition ? implode(' AND ', $this->requete_condition) : 'TRUE',
235
             $this->requete_condition ? implode(' AND ', $this->requete_condition) : 'TRUE',
252
			 $this->tri ? ($this->tri . ' ' . $this->tri_ordre . ', ') : '',
236
             $nolimit ? '' : $limiteClause,
253
             $nolimit ? '' : $limiteClause,
-
 
254
             __FILE__, __LINE__);
237
             __FILE__, __LINE__);
255
		 return $req;
Line 238... Line 256...
238
     }
256
     }
239
 
257
 
240
	//ajout d'une limite seulement pour les listes (pas plus de 100 resultats retournés pr les requetes
258
	//ajout d'une limite seulement pour les listes (pas plus de 100 resultats retournés pr les requetes
Line 315... Line 333...
315
					switch ($key) {
333
					switch ($key) {
316
						case 'id'				: $num = $valeur;								break;
334
						case 'id'				: $num = $valeur;								break;
317
						case 'nom_vernaculaire'	: $this->table_retour['nom'] = $valeur;			break;
335
						case 'nom_vernaculaire'	: $this->table_retour['nom'] = $valeur;			break;
318
						default					:												break;
336
						default					:												break;
319
					}
337
					}
-
 
338
					// champs supplémentaires
-
 
339
					if (in_array($key, $this->champs_supp)) {
-
 
340
						$this->table_retour[$key] = $valeur;
-
 
341
					}
320
				}
342
				}
321
			}
343
			}
322
		    if ($this->retour_format == 'max') $this->table_retour['href'] = $this->ajouterHref('noms-vernaculaires', $num);
344
		    if ($this->retour_format == 'max') $this->table_retour['href'] = $this->ajouterHref('noms-vernaculaires', $num);
323
			$resultat_json[$num] = $this->table_retour;
345
			$resultat_json[$num] = $this->table_retour;
324
			$this->table_retour = array();
346
			$this->table_retour = array();