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