Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 2047 → Rev 2048

/trunk/services/bibliotheque/Sql.php
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: