| Line 81... |
Line 81... |
| 81 |
$tris_possibles_tableau = explode(',', $tris_possibles);
|
81 |
$tris_possibles_tableau = explode(',', $tris_possibles);
|
| 82 |
if(isset($this->parametres['tri']) && !in_array($this->parametres['tri'], $tris_possibles_tableau)) {
|
82 |
if(isset($this->parametres['tri']) && !in_array($this->parametres['tri'], $tris_possibles_tableau)) {
|
| 83 |
$erreurs[] = '- le type de tri demandé est incorrect, les valeurs possibles sont '.$tris_possibles.' ;';
|
83 |
$erreurs[] = '- le type de tri demandé est incorrect, les valeurs possibles sont '.$tris_possibles.' ;';
|
| 84 |
}
|
84 |
}
|
| Line -... |
Line 85... |
| - |
|
85 |
|
| - |
|
86 |
if(isset($this->parametres['tri']) && $this->parametres['tri'] == "votes") {
|
| - |
|
87 |
if(!isset($this->parametres['protocole']) || !is_numeric($this->parametres['protocole'])) {
|
| - |
|
88 |
$erreurs[] = '- Le paramètre protocole est obligatoire en cas de tri par vote et doit être un entier ;';
|
| - |
|
89 |
}
|
| - |
|
90 |
}
|
| 85 |
|
91 |
|
| 86 |
$directions_tri = array('asc', 'desc');
|
92 |
$directions_tri = array('asc', 'desc');
|
| 87 |
if(isset($this->parametres['ordre']) && !in_array($this->parametres['ordre'], $directions_tri)) {
|
93 |
if(isset($this->parametres['ordre']) && !in_array($this->parametres['ordre'], $directions_tri)) {
|
| 88 |
$erreurs[] = '- la direction du tri demandé est incorrecte, les valeurs supportées sont asc ou desc ;';
|
94 |
$erreurs[] = '- la direction du tri demandé est incorrecte, les valeurs supportées sont asc ou desc ;';
|
| Line 372... |
Line 378... |
| 372 |
/**
|
378 |
/**
|
| 373 |
* Chargement depuis la bdd de toutes les liaisons entre images et observations
|
379 |
* Chargement depuis la bdd de toutes les liaisons entre images et observations
|
| 374 |
* */
|
380 |
* */
|
| 375 |
private function chargerLiaisons() {
|
381 |
private function chargerLiaisons() {
|
| Line -... |
Line 382... |
| - |
|
382 |
|
| - |
|
383 |
// Attention le LEFT JOIN est indispensable pour ramener les images n'ayant pas de votes
|
| 376 |
|
384 |
// en cas de tri par votes
|
| - |
|
385 |
$requeteLiaisons = 'SELECT DISTINCT SQL_CALC_FOUND_ROWS di.*, doi.*, du.*, dob.* '.
|
| - |
|
386 |
($this->doitJoindreTableVotes() ?
|
| - |
|
387 |
', IF(dvote.ce_protocole = '.$this->parametres['protocole'].', SUM(dvote.valeur), 0) as total_votes ' :
|
| - |
|
388 |
''
|
| 377 |
$requeteLiaisons = 'SELECT DISTINCT SQL_CALC_FOUND_ROWS * '.
|
389 |
).
|
| 378 |
'FROM '.$this->gestionBdd->formaterTable('del_obs_image', 'doi').
|
390 |
'FROM '.$this->gestionBdd->formaterTable('del_obs_image', 'doi').
|
| 379 |
'INNER JOIN del_image di '.
|
391 |
'INNER JOIN del_image di '.
|
| 380 |
'ON doi.id_image = di.id_image '.
|
392 |
'ON doi.id_image = di.id_image '.
|
| 381 |
'INNER JOIN del_observation dob '.
|
393 |
'INNER JOIN del_observation dob '.
|
| 382 |
'ON doi.id_observation = dob.id_observation '.
|
394 |
'ON doi.id_observation = dob.id_observation '.
|
| 383 |
'INNER JOIN del_utilisateur du '.
|
395 |
'INNER JOIN del_utilisateur du '.
|
| - |
|
396 |
'ON du.id_utilisateur = di.ce_utilisateur '.
|
| - |
|
397 |
($this->doitJoindreTableVotes() ?
|
| - |
|
398 |
'LEFT JOIN del_image_vote dvote '.
|
| - |
|
399 |
'ON doi.id_image = dvote.ce_image AND dvote.ce_protocole = '.$this->parametres['protocole'] :
|
| - |
|
400 |
''
|
| 384 |
'ON du.id_utilisateur = di.ce_utilisateur';
|
401 |
);
|
| 385 |
$requeteLiaisons .= $this->chargerClauseWhere();
|
402 |
$requeteLiaisons .= $this->chargerClauseWhere();
|
| 386 |
$requeteLiaisons .= $this->getTri();
|
403 |
$requeteLiaisons .= $this->getTri();
|
| - |
|
404 |
$requeteLiaisons .= $this->gestionBdd->getLimitSql();
|
| 387 |
$requeteLiaisons .= $this->gestionBdd->getLimitSql();
|
405 |
|
| 388 |
return $this->bdd->recupererTous($requeteLiaisons);
|
406 |
return $this->bdd->recupererTous($requeteLiaisons);
|
| Line -... |
Line 407... |
| - |
|
407 |
}
|
| - |
|
408 |
|
| - |
|
409 |
private function doitJoindreTableVotes() {
|
| - |
|
410 |
return ($this->tri == 'votes');
|
| 389 |
}
|
411 |
}
|
| 390 |
|
412 |
|
| 391 |
private function getTri() {
|
413 |
private function getTri() {
|
| - |
|
414 |
$order = '';
|
| - |
|
415 |
if($this->doitJoindreTableVotes()) {
|
| 392 |
$order = '';
|
416 |
$order = ' GROUP BY dvote.ce_image, dob.id_observation ORDER BY total_votes '.$this->directionTri.', date_transmission desc ';
|
| 393 |
if($this->tri != 'vote') {
|
417 |
} else {
|
| 394 |
$order = ' ORDER BY '.$this->tri.' '.$this->directionTri.' ';
|
418 |
$order = ' ORDER BY '.$this->tri.' '.$this->directionTri.' ';
|
| 395 |
}
|
419 |
}
|