52,15 → 52,8 |
$erreurs = array(); |
|
if (empty($this->mappingFiltre)) { |
$erreurs[] = '- le fichier de configuration ne contient pas le tableau [mapping_masque] ou celui-ci est vide ;'; |
} else { |
$champsMappingFiltre = array('espece', 'observation'); |
foreach ($champsMappingFiltre as $champ) { |
if (!isset($this->mappingFiltre[$champ])) { |
$erreurs[] = '- le mapping du champ "'.$champ.'" pour le commentaire est manquant ;'; |
$erreurs[] = 'Le fichier de configuration ne contient pas le tableau [mapping_masque] ou celui-ci est vide.'; |
} |
} |
} |
|
if (!empty($erreurs)) { |
$e = 'Erreur lors de la configuration : '."\n"; |
94,10 → 87,10 |
|
private function construireDonneesCommunesAuFlux($infos) { |
$donnees = array(); |
$donnees['guid'] = $this->creerUrlService(); |
$donnees['guid'] = htmlspecialchars($this->creerUrlService()); |
$donnees['titre'] = 'identiPlante : commentaires et propositions'; |
$donnees['description'] = 'Ce flux regroupe les dernières déterminations et commentaires rédigés dans l\'application identiPlante'; |
$donnees['lien_service'] = $this->creerUrlService(); |
$donnees['lien_service'] = htmlspecialchars($this->creerUrlService()); |
$donnees['lien_del'] = $this->conteneur->getParametre('delAppliLien'); |
$donnees['editeur'] = $this->conteneur->getParametre('editeur'); |
$derniere_info_en_date = reset($infos); |
260,36 → 253,39 |
* */ |
private function chargerClauseWhere() { |
$where = array(); |
|
$tableauMasque = $this->masque->getMasque(); |
if (!empty($tableauMasque)) { |
foreach($tableauMasque as $idMasque => $valeurMasque) { |
$idMasque = str_replace('masque.', '', $idMasque); |
$champ = $this->mappingFiltre[$idMasque]; |
$valeurMasquePattern = $this->gestionBdd->getBdd()->proteger($valeurMasque.'%'); |
$valeurMasqueProtegee = $this->gestionBdd->getBdd()->proteger($valeurMasque); |
|
switch ($idMasque) { |
case 'espece': |
$where[] = ' dob.'.$this->mappingFiltre[$idMasque]. |
' LIKE '.$this->gestionBdd->getBdd()->proteger($valeurMasque.'%').' '. |
' OR '.' dc.'.$this->mappingFiltre[$idMasque]. |
' LIKE '.$this->gestionBdd->getBdd()->proteger($valeurMasque.'%').' '; |
$where[] = " dob.$champ LIKE $valeurMasquePattern OR dc.$champ LIKE $valeurMasquePattern "; |
break; |
case 'auteur': |
$where[] = $this->creerFiltreAuteur($valeurMasque).' '; |
$where[] = $this->creerFiltreAuteur($valeurMasque); |
break; |
default: |
$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->gestionBdd->getBdd()->proteger($valeurMasque); |
$where[] = " $champ = $valeurMasqueProtegee "; |
} |
} |
} |
|
$whereSql = ''; |
if (!empty($where)) { |
return ' AND '.implode('AND', $where); |
} else { |
return; |
$whereSql = ' AND '.implode('AND', $where); |
} |
return $whereSql; |
} |
|
private function creerFiltreAuteur($auteurId) { |
$masque = ''; |
$whereAuteur = ''; |
if (is_numeric($auteurId)) { |
$masque = " dc.ce_utilisateur = $auteurId "; |
$whereAuteur = " dc.ce_utilisateur = $auteurId "; |
} else { |
$auteurIdMotif = $this->gestionBdd->getBdd()->proteger($auteurId.'%'); |
|
300,19 → 296,19 |
$nomMotif = $this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%'); |
$prenomMotif = $this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%'); |
|
$masque = '('. |
$whereAuteur = ' ('. |
"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ". |
'OR '. |
"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ". |
')'; |
} else { |
$masque = "(dc.utilisateur_nom LIKE $auteurIdMotif OR dc.utilisateur_prenom LIKE $auteurIdMotif) "; |
$whereAuteur = "(dc.utilisateur_nom LIKE $auteurIdMotif OR dc.utilisateur_prenom LIKE $auteurIdMotif) "; |
} |
} else { |
$masque = " dob.utilisateur_courriel LIKE $auteurIdMotif "; |
$whereAuteur = " dob.utilisateur_courriel LIKE $auteurIdMotif "; |
} |
} |
return $masque; |
return $whereAuteur; |
} |
} |
?> |