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 |
}
|