196,7 → 196,7 |
private function ajouterContrainteAuteurId() { |
$id = $this->parametres['masque.auteur']; |
$prefixe = $this->getPrefixe(); |
$sqlTpl = "(du.id_utilisateur = %1\$d OR $prefixe.ce_utilisateur = %1\$d)"; |
$sqlTpl = "($prefixe.ce_utilisateur = %1\$d)"; |
$whereAuteur = sprintf($sqlTpl, $id); |
$this->addWhere('masque.auteur', $whereAuteur); |
} |
204,7 → 204,7 |
private function ajouterContrainteAuteurEmail() { |
$email = $this->parametres['masque.auteur']; |
$prefixe = $this->getPrefixe(); |
$sqlTpl = "(du.courriel LIKE %1\$s OR $prefixe.courriel_utilisateur LIKE %1\$s )"; |
$sqlTpl = "($prefixe.courriel_utilisateur LIKE %1\$s )"; |
$emailP = $this->bdd->proteger("$email%"); |
$whereAuteur = sprintf($sqlTpl, $emailP); |
$this->addWhere('masque.auteur', $whereAuteur); |
296,7 → 296,7 |
} |
} |
|
private function ajouterContraintePays() { |
private function ajouterContraintePays() { |
if (isset($this->parametres['masque.pays'])) { |
// Attention le standard contient parfois FX pour la france métropolitaine |
// Dans ce cas particulier on cherche donc FR et FX |
304,12 → 304,12 |
if(strpos($this->parametres['masque.pays'], 'FR') !== false) { |
$this->parametres['masque.pays'] = str_replace('FR', 'FR,FX', $this->parametres['masque.pays']); |
} |
$pays = explode(',', $this->parametres['masque.pays']); |
$pays = implode(',', $this->bdd->proteger($pays)); |
$this->addWhere('masque.pays', "do.pays IN ($pays)"); |
|
$this->ajouterJoinObsSiNecessaire(); |
} |
$pays = explode(',', $this->parametres['masque.pays']); |
$pays = implode(',', $this->bdd->proteger($pays)); |
$this->addWhere('masque.pays', "do.pays IN ($pays)"); |
|
$this->ajouterJoinObsSiNecessaire(); |
} |
} |
|
private function ajouterContrainteIdZoneGeo() { |
444,16 → 444,16 |
// (ni certitude "aDeterminer" ou "douteuse", ni mot clé), |
// ne possédant pas de proposition officiellement retenue |
// et ayant une proposition initiale totalisant un score de moins de 4 |
$sous_requete_score_prop_votees = $this->getSousRequeteSommeVotesPropositions(); |
$sous_requete_score_prop_votees = $this->getSousRequeteSommeVotesPropositions(); |
$this->addWhere('masque.type', |
'('. |
'do.id_observation IN ('. |
'SELECT dc.ce_observation FROM del_commentaire dc WHERE dc.proposition_retenue = 0'. |
' AND ( '. |
'dc.proposition_initiale = 1 '. |
'AND dc.nom_sel_nn != 0 '. |
'AND dc.nom_sel_nn IS NOT NULL '. |
'AND dc.id_commentaire IN ('.$sous_requete_score_prop_votees.' < 4) '. |
' AND ( '. |
'dc.proposition_initiale = 1 '. |
'AND dc.nom_sel_nn != 0 '. |
'AND dc.nom_sel_nn IS NOT NULL '. |
'AND dc.id_commentaire IN ('.$sous_requete_score_prop_votees.' < 4) '. |
') '. |
') AND do.id_observation NOT IN ('. |
'SELECT dc.ce_observation FROM del_commentaire dc '. |
460,9 → 460,9 |
'WHERE '. |
' dc.proposition_retenue = 1'. |
') '. |
'AND do.certitude != "douteux" AND do.certitude != "aDeterminer" '. |
'AND do.mots_cles_texte NOT LIKE "%aDeterminer%" '. |
'AND do.nom_sel_nn != 0 '. |
'AND do.certitude != "douteux" AND do.certitude != "aDeterminer" '. |
'AND do.mots_cles_texte NOT LIKE "%aDeterminer%" '. |
'AND do.nom_sel_nn != 0 '. |
'AND do.nom_sel_nn IS NOT NULL'. |
') ' |
); |
474,15 → 474,15 |
|
private function getSousRequeteSommeVotesPropositions() { |
// ATTENTION : un vote identifié compte 3 votes anonymes (dans les deux sens) |
return 'SELECT ce_proposition '. |
'FROM del_commentaire_vote dcv '. |
'GROUP BY ce_proposition HAVING '. |
'SUM(CASE '. |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN 3 '. |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN -3 '. |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN 1 '. |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN -1 '. |
'END '. |
return 'SELECT ce_proposition '. |
'FROM del_commentaire_vote dcv '. |
'GROUP BY ce_proposition HAVING '. |
'SUM(CASE '. |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN 3 '. |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' != 0 THEN -3 '. |
' WHEN valeur = 1 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN 1 '. |
' WHEN valeur = 0 AND dcv.ce_utilisateur REGEXP \'^-?[0-9]+$\' = 0 THEN -1 '. |
'END '. |
') '; |
} |
|
602,8 → 602,8 |
$somme = 0; |
if (isset($this->parametres['masque.tag_del']['AND'])) { |
$somme = count($this->parametres['masque.tag_del']['AND']); |
} else { |
$somme = count($this->parametres['masque.tag_del']['OR']); |
} else { |
$somme = count($this->parametres['masque.tag_del']['OR']); |
} |
return $somme; |
} |
660,9 → 660,9 |
case 'date_observation' : |
$this->addOrderBy("date_observation $ordre, id_observation $ordre"); |
break; |
case 'nb_commentaires' : |
$sql_nb_comms = '(SELECT COUNT(id_commentaire) FROM del_commentaire AS dc WHERE ce_observation = id_observation)'; |
$this->addOrderBy("$sql_nb_comms $ordre, id_observation $ordre"); |
case 'nb_commentaires' : |
$sql_nb_comms = '(SELECT COUNT(id_commentaire) FROM del_commentaire AS dc WHERE ce_observation = id_observation)'; |
$this->addOrderBy("$sql_nb_comms $ordre, id_observation $ordre"); |
break; |
case 'date_transmission' : |
default: |