| Line 433... |
Line 433... |
| 433 |
// A CONFIRMER : toutes les observations moins les validées et à confirmer
|
433 |
// A CONFIRMER : toutes les observations moins les validées et à confirmer
|
| 434 |
// i.e. : des observations avec un nom valide, qui ne sont pas à déterminer
|
434 |
// i.e. : des observations avec un nom valide, qui ne sont pas à déterminer
|
| 435 |
// (ni certitude "aDeterminer" ou "douteuse", ni mot clé),
|
435 |
// (ni certitude "aDeterminer" ou "douteuse", ni mot clé),
|
| 436 |
// ne possédant pas de proposition officiellement retenue
|
436 |
// ne possédant pas de proposition officiellement retenue
|
| 437 |
// et ayant une proposition initiale totalisant un score de moins de 4
|
437 |
// et ayant une proposition initiale totalisant un score de moins de 4
|
| 438 |
$sous_requete_score_prop_votees = $this->getSousRequeteSommeVotesPropositions();
|
438 |
$sous_requete_score_prop_votees = $this->getSousRequeteSommeVotesPropositions();
|
| 439 |
$this->addWhere('masque.type',
|
439 |
$this->addWhere('masque.type',
|
| 440 |
'('.
|
440 |
'('.
|
| 441 |
'do.id_observation IN ('.
|
441 |
'do.id_observation IN ('.
|
| 442 |
'SELECT dc.ce_observation FROM del_commentaire dc WHERE dc.proposition_retenue = 0'.
|
442 |
'SELECT dc.ce_observation FROM del_commentaire dc WHERE dc.proposition_retenue = 0'.
|
| 443 |
' AND ( '.
|
443 |
' AND ( '.
|
| 444 |
'dc.proposition_initiale = 1 '.
|
444 |
'dc.proposition_initiale = 1 '.
|
| 445 |
'AND dc.nom_sel_nn != 0 '.
|
445 |
'AND dc.nom_sel_nn != 0 '.
|
| 446 |
'AND dc.nom_sel_nn IS NOT NULL '.
|
446 |
'AND dc.nom_sel_nn IS NOT NULL '.
|
| 447 |
'AND dc.id_commentaire IN ('.$sous_requete_score_prop_votees.' < 4) '.
|
447 |
'AND dc.id_commentaire IN ('.$sous_requete_score_prop_votees.' < 4) '.
|
| 448 |
') '.
|
448 |
') '.
|
| 449 |
') AND do.id_observation NOT IN ('.
|
449 |
') AND do.id_observation NOT IN ('.
|
| 450 |
'SELECT dc.ce_observation FROM del_commentaire dc '.
|
450 |
'SELECT dc.ce_observation FROM del_commentaire dc '.
|
| 451 |
'WHERE '.
|
451 |
'WHERE '.
|
| 452 |
' dc.proposition_retenue = 1'.
|
452 |
' dc.proposition_retenue = 1'.
|
| 453 |
') '.
|
453 |
') '.
|
| 454 |
'AND do.certitude != "douteux" AND do.certitude != "aDeterminer" '.
|
454 |
'AND do.certitude != "douteux" AND do.certitude != "aDeterminer" '.
|
| 455 |
'AND do.mots_cles_texte NOT LIKE "%aDeterminer%" '.
|
455 |
'AND do.mots_cles_texte NOT LIKE "%aDeterminer%" '.
|
| 456 |
'AND do.nom_sel_nn != 0 '.
|
456 |
'AND do.nom_sel_nn != 0 '.
|
| 457 |
'AND do.nom_sel_nn IS NOT NULL'.
|
457 |
'AND do.nom_sel_nn IS NOT NULL'.
|
| 458 |
') '
|
458 |
') '
|
| 459 |
);
|
459 |
);
|
| 460 |
}
|
460 |
}
|
| Line 465... |
Line 465... |
| 465 |
}
|
465 |
}
|
| 466 |
}
|
466 |
}
|
| Line 467... |
Line 467... |
| 467 |
|
467 |
|
| 468 |
private function getSousRequeteSommeVotesPropositions() {
|
468 |
private function getSousRequeteSommeVotesPropositions() {
|
| 469 |
// ATTENTION : un vote identifié compte 3 votes anonymes (dans les deux sens)
|
469 |
// ATTENTION : un vote identifié compte 3 votes anonymes (dans les deux sens)
|
| 470 |
return 'SELECT ce_proposition '.
|
470 |
return 'SELECT ce_proposition '.
|
| 471 |
'FROM del_commentaire_vote dcv '.
|
471 |
'FROM del_commentaire_vote dcv '.
|
| 472 |
'GROUP BY ce_proposition HAVING '.
|
472 |
'GROUP BY ce_proposition HAVING '.
|
| 473 |
'SUM(CASE '.
|
473 |
'SUM(CASE '.
|
| 474 |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN 3 '.
|
474 |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN 3 '.
|
| 475 |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN -3 '.
|
475 |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN -3 '.
|
| 476 |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN 1 '.
|
476 |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN 1 '.
|
| 477 |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN -1 '.
|
477 |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN -1 '.
|
| 478 |
'END '.
|
478 |
'END '.
|
| 479 |
') ';
|
479 |
') ';
|
| Line 480... |
Line 480... |
| 480 |
}
|
480 |
}
|
| 481 |
|
481 |
|
| Line 597... |
Line 597... |
| 597 |
* Attention : si le critère de tri n'est pas suffisant, les résultats affichés peuvent varier à chaque appel
|
597 |
* Attention : si le critère de tri n'est pas suffisant, les résultats affichés peuvent varier à chaque appel
|
| 598 |
* de la même page de résultat de PictoFlora.
|
598 |
* de la même page de résultat de PictoFlora.
|
| 599 |
*/
|
599 |
*/
|
| 600 |
public function definirOrdreSqlAppliImg() {
|
600 |
public function definirOrdreSqlAppliImg() {
|
| 601 |
$ordre = $this->parametres['ordre'];
|
601 |
$ordre = $this->parametres['ordre'];
|
| 602 |
|
602 |
|
| - |
|
603 |
$tri = isset($this->parametres['tri']) ? $this->parametres['tri'] : '';
|
| 603 |
switch ($this->parametres['tri']) {
|
604 |
switch ($tri) {
|
| 604 |
case 'moyenne-arithmetique' :
|
605 |
case 'moyenne-arithmetique' :
|
| 605 |
$this->addOrderBy("dis.moyenne $ordre, dis.nb_votes $ordre, id_image $ordre");
|
606 |
$this->addOrderBy("dis.moyenne $ordre, dis.nb_votes $ordre, id_image $ordre");
|
| 606 |
break;
|
607 |
break;
|
| 607 |
case 'points' :
|
608 |
case 'points' :
|
| 608 |
$this->addOrderBy("dis.nb_points $ordre, dis.moyenne $ordre, dis.nb_votes $ordre, id_image $ordre");
|
609 |
$this->addOrderBy("dis.nb_points $ordre, dis.moyenne $ordre, dis.nb_votes $ordre, id_image $ordre");
|
| Line 621... |
Line 622... |
| 621 |
|
622 |
|
| 622 |
public function definirOrdreSqlAppliObs() {
|
623 |
public function definirOrdreSqlAppliObs() {
|
| Line 623... |
Line 624... |
| 623 |
$ordre = $this->parametres['ordre'];
|
624 |
$ordre = $this->parametres['ordre'];
|
| - |
|
625 |
|
| 624 |
|
626 |
// parmi self::$tri_possible
|
| 625 |
// parmi self::$tri_possible
|
627 |
$tri = isset($this->parametres['tri']) ? $this->parametres['tri'] : '';
|
| 626 |
switch ($this->parametres['tri']) {
|
628 |
switch ($tri) {
|
| 627 |
case 'date_observation' :
|
629 |
case 'date_observation' :
|
| 628 |
$this->addOrderBy("date_observation $ordre, id_observation $ordre");
|
630 |
$this->addOrderBy("date_observation $ordre, id_observation $ordre");
|
| 629 |
break;
|
631 |
break;
|
| 630 |
case 'nb_commentaires' :
|
632 |
case 'nb_commentaires' :
|
| 631 |
$sql_nb_comms = '(SELECT COUNT(id_commentaire) FROM del_commentaire AS dc WHERE ce_observation = id_observation)';
|
633 |
$sql_nb_comms = '(SELECT COUNT(id_commentaire) FROM del_commentaire AS dc WHERE ce_observation = id_observation)';
|
| 632 |
$this->addOrderBy("$sql_nb_comms $ordre, id_observation $ordre");
|
634 |
$this->addOrderBy("$sql_nb_comms $ordre, id_observation $ordre");
|
| 633 |
break;
|
635 |
break;
|
| 634 |
case 'date_transmission' :
|
636 |
case 'date_transmission' :
|
| 635 |
default:
|
637 |
default:
|