| Line 194... |
Line 194... |
| 194 |
}
|
194 |
}
|
| Line 195... |
Line 195... |
| 195 |
|
195 |
|
| 196 |
private function ajouterContrainteAuteurId() {
|
196 |
private function ajouterContrainteAuteurId() {
|
| 197 |
$id = $this->parametres['masque.auteur'];
|
197 |
$id = $this->parametres['masque.auteur'];
|
| 198 |
$prefixe = $this->getPrefixe();
|
198 |
$prefixe = $this->getPrefixe();
|
| 199 |
$sqlTpl = "(du.id_utilisateur = %1\$d OR $prefixe.ce_utilisateur = %1\$d)";
|
199 |
$sqlTpl = "($prefixe.ce_utilisateur = %1\$d)";
|
| 200 |
$whereAuteur = sprintf($sqlTpl, $id);
|
200 |
$whereAuteur = sprintf($sqlTpl, $id);
|
| 201 |
$this->addWhere('masque.auteur', $whereAuteur);
|
201 |
$this->addWhere('masque.auteur', $whereAuteur);
|
| Line 202... |
Line 202... |
| 202 |
}
|
202 |
}
|
| 203 |
|
203 |
|
| 204 |
private function ajouterContrainteAuteurEmail() {
|
204 |
private function ajouterContrainteAuteurEmail() {
|
| 205 |
$email = $this->parametres['masque.auteur'];
|
205 |
$email = $this->parametres['masque.auteur'];
|
| 206 |
$prefixe = $this->getPrefixe();
|
206 |
$prefixe = $this->getPrefixe();
|
| 207 |
$sqlTpl = "(du.courriel LIKE %1\$s OR $prefixe.courriel_utilisateur LIKE %1\$s )";
|
207 |
$sqlTpl = "($prefixe.courriel_utilisateur LIKE %1\$s )";
|
| 208 |
$emailP = $this->bdd->proteger("$email%");
|
208 |
$emailP = $this->bdd->proteger("$email%");
|
| 209 |
$whereAuteur = sprintf($sqlTpl, $emailP);
|
209 |
$whereAuteur = sprintf($sqlTpl, $emailP);
|
| Line 294... |
Line 294... |
| 294 |
|
294 |
|
| 295 |
$this->ajouterJoinObsSiNecessaire();
|
295 |
$this->ajouterJoinObsSiNecessaire();
|
| 296 |
}
|
296 |
}
|
| Line 297... |
Line 297... |
| 297 |
}
|
297 |
}
|
| 298 |
|
298 |
|
| 299 |
private function ajouterContraintePays() {
|
299 |
private function ajouterContraintePays() {
|
| 300 |
if (isset($this->parametres['masque.pays'])) {
|
300 |
if (isset($this->parametres['masque.pays'])) {
|
| 301 |
// Attention le standard contient parfois FX pour la france métropolitaine
|
301 |
// Attention le standard contient parfois FX pour la france métropolitaine
|
| 302 |
// Dans ce cas particulier on cherche donc FR et FX
|
302 |
// Dans ce cas particulier on cherche donc FR et FX
|
| 303 |
$this->parametres['masque.pays'] = strtoupper($this->parametres['masque.pays']);
|
303 |
$this->parametres['masque.pays'] = strtoupper($this->parametres['masque.pays']);
|
| 304 |
if(strpos($this->parametres['masque.pays'], 'FR') !== false) {
|
304 |
if(strpos($this->parametres['masque.pays'], 'FR') !== false) {
|
| 305 |
$this->parametres['masque.pays'] = str_replace('FR', 'FR,FX', $this->parametres['masque.pays']);
|
305 |
$this->parametres['masque.pays'] = str_replace('FR', 'FR,FX', $this->parametres['masque.pays']);
|
| 306 |
}
|
306 |
}
|
| 307 |
$pays = explode(',', $this->parametres['masque.pays']);
|
307 |
$pays = explode(',', $this->parametres['masque.pays']);
|
| 308 |
$pays = implode(',', $this->bdd->proteger($pays));
|
308 |
$pays = implode(',', $this->bdd->proteger($pays));
|
| 309 |
$this->addWhere('masque.pays', "do.pays IN ($pays)");
|
309 |
$this->addWhere('masque.pays', "do.pays IN ($pays)");
|
| 310 |
|
310 |
|
| 311 |
$this->ajouterJoinObsSiNecessaire();
|
311 |
$this->ajouterJoinObsSiNecessaire();
|
| Line 312... |
Line 312... |
| 312 |
}
|
312 |
}
|
| 313 |
}
|
313 |
}
|
| 314 |
|
314 |
|
| Line 442... |
Line 442... |
| 442 |
// A CONFIRMER : toutes les observations moins les validées et à confirmer
|
442 |
// A CONFIRMER : toutes les observations moins les validées et à confirmer
|
| 443 |
// i.e. : des observations avec un nom valide, qui ne sont pas à déterminer
|
443 |
// i.e. : des observations avec un nom valide, qui ne sont pas à déterminer
|
| 444 |
// (ni certitude "aDeterminer" ou "douteuse", ni mot clé),
|
444 |
// (ni certitude "aDeterminer" ou "douteuse", ni mot clé),
|
| 445 |
// ne possédant pas de proposition officiellement retenue
|
445 |
// ne possédant pas de proposition officiellement retenue
|
| 446 |
// et ayant une proposition initiale totalisant un score de moins de 4
|
446 |
// et ayant une proposition initiale totalisant un score de moins de 4
|
| 447 |
$sous_requete_score_prop_votees = $this->getSousRequeteSommeVotesPropositions();
|
447 |
$sous_requete_score_prop_votees = $this->getSousRequeteSommeVotesPropositions();
|
| 448 |
$this->addWhere('masque.type',
|
448 |
$this->addWhere('masque.type',
|
| 449 |
'('.
|
449 |
'('.
|
| 450 |
'do.id_observation IN ('.
|
450 |
'do.id_observation IN ('.
|
| 451 |
'SELECT dc.ce_observation FROM del_commentaire dc WHERE dc.proposition_retenue = 0'.
|
451 |
'SELECT dc.ce_observation FROM del_commentaire dc WHERE dc.proposition_retenue = 0'.
|
| 452 |
' AND ( '.
|
452 |
' AND ( '.
|
| 453 |
'dc.proposition_initiale = 1 '.
|
453 |
'dc.proposition_initiale = 1 '.
|
| 454 |
'AND dc.nom_sel_nn != 0 '.
|
454 |
'AND dc.nom_sel_nn != 0 '.
|
| 455 |
'AND dc.nom_sel_nn IS NOT NULL '.
|
455 |
'AND dc.nom_sel_nn IS NOT NULL '.
|
| 456 |
'AND dc.id_commentaire IN ('.$sous_requete_score_prop_votees.' < 4) '.
|
456 |
'AND dc.id_commentaire IN ('.$sous_requete_score_prop_votees.' < 4) '.
|
| 457 |
') '.
|
457 |
') '.
|
| 458 |
') AND do.id_observation NOT IN ('.
|
458 |
') AND do.id_observation NOT IN ('.
|
| 459 |
'SELECT dc.ce_observation FROM del_commentaire dc '.
|
459 |
'SELECT dc.ce_observation FROM del_commentaire dc '.
|
| 460 |
'WHERE '.
|
460 |
'WHERE '.
|
| 461 |
' dc.proposition_retenue = 1'.
|
461 |
' dc.proposition_retenue = 1'.
|
| 462 |
') '.
|
462 |
') '.
|
| 463 |
'AND do.certitude != "douteux" AND do.certitude != "aDeterminer" '.
|
463 |
'AND do.certitude != "douteux" AND do.certitude != "aDeterminer" '.
|
| 464 |
'AND do.mots_cles_texte NOT LIKE "%aDeterminer%" '.
|
464 |
'AND do.mots_cles_texte NOT LIKE "%aDeterminer%" '.
|
| 465 |
'AND do.nom_sel_nn != 0 '.
|
465 |
'AND do.nom_sel_nn != 0 '.
|
| 466 |
'AND do.nom_sel_nn IS NOT NULL'.
|
466 |
'AND do.nom_sel_nn IS NOT NULL'.
|
| 467 |
') '
|
467 |
') '
|
| 468 |
);
|
468 |
);
|
| 469 |
}
|
469 |
}
|
| Line 472... |
Line 472... |
| 472 |
}
|
472 |
}
|
| 473 |
}
|
473 |
}
|
| Line 474... |
Line 474... |
| 474 |
|
474 |
|
| 475 |
private function getSousRequeteSommeVotesPropositions() {
|
475 |
private function getSousRequeteSommeVotesPropositions() {
|
| 476 |
// ATTENTION : un vote identifié compte 3 votes anonymes (dans les deux sens)
|
476 |
// ATTENTION : un vote identifié compte 3 votes anonymes (dans les deux sens)
|
| 477 |
return 'SELECT ce_proposition '.
|
477 |
return 'SELECT ce_proposition '.
|
| 478 |
'FROM del_commentaire_vote dcv '.
|
478 |
'FROM del_commentaire_vote dcv '.
|
| 479 |
'GROUP BY ce_proposition HAVING '.
|
479 |
'GROUP BY ce_proposition HAVING '.
|
| 480 |
'SUM(CASE '.
|
480 |
'SUM(CASE '.
|
| 481 |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN 3 '.
|
481 |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN 3 '.
|
| 482 |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN -3 '.
|
482 |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN -3 '.
|
| 483 |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN 1 '.
|
483 |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN 1 '.
|
| 484 |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN -1 '.
|
484 |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN -1 '.
|
| 485 |
'END '.
|
485 |
'END '.
|
| 486 |
') ';
|
486 |
') ';
|
| Line 487... |
Line 487... |
| 487 |
}
|
487 |
}
|
| 488 |
|
488 |
|
| Line 600... |
Line 600... |
| 600 |
|
600 |
|
| 601 |
private function getNombreDeTags() {
|
601 |
private function getNombreDeTags() {
|
| 602 |
$somme = 0;
|
602 |
$somme = 0;
|
| 603 |
if (isset($this->parametres['masque.tag_del']['AND'])) {
|
603 |
if (isset($this->parametres['masque.tag_del']['AND'])) {
|
| 604 |
$somme = count($this->parametres['masque.tag_del']['AND']);
|
604 |
$somme = count($this->parametres['masque.tag_del']['AND']);
|
| 605 |
} else {
|
605 |
} else {
|
| 606 |
$somme = count($this->parametres['masque.tag_del']['OR']);
|
606 |
$somme = count($this->parametres['masque.tag_del']['OR']);
|
| 607 |
}
|
607 |
}
|
| 608 |
return $somme;
|
608 |
return $somme;
|
| Line 609... |
Line 609... |
| 609 |
}
|
609 |
}
|
| Line 658... |
Line 658... |
| 658 |
$tri = isset($this->parametres['tri']) ? $this->parametres['tri'] : '';
|
658 |
$tri = isset($this->parametres['tri']) ? $this->parametres['tri'] : '';
|
| 659 |
switch ($tri) {
|
659 |
switch ($tri) {
|
| 660 |
case 'date_observation' :
|
660 |
case 'date_observation' :
|
| 661 |
$this->addOrderBy("date_observation $ordre, id_observation $ordre");
|
661 |
$this->addOrderBy("date_observation $ordre, id_observation $ordre");
|
| 662 |
break;
|
662 |
break;
|
| 663 |
case 'nb_commentaires' :
|
663 |
case 'nb_commentaires' :
|
| 664 |
$sql_nb_comms = '(SELECT COUNT(id_commentaire) FROM del_commentaire AS dc WHERE ce_observation = id_observation)';
|
664 |
$sql_nb_comms = '(SELECT COUNT(id_commentaire) FROM del_commentaire AS dc WHERE ce_observation = id_observation)';
|
| 665 |
$this->addOrderBy("$sql_nb_comms $ordre, id_observation $ordre");
|
665 |
$this->addOrderBy("$sql_nb_comms $ordre, id_observation $ordre");
|
| 666 |
break;
|
666 |
break;
|
| 667 |
case 'date_transmission' :
|
667 |
case 'date_transmission' :
|
| 668 |
default:
|
668 |
default:
|
| 669 |
$this->addOrderBy("do.date_transmission $ordre, id_observation $ordre");
|
669 |
$this->addOrderBy("do.date_transmission $ordre, id_observation $ordre");
|
| 670 |
}
|
670 |
}
|