| 1047 | 
           aurelien | 
           1 | 
           <?php
  | 
        
        
            | 
            | 
           2 | 
           /**
  | 
        
        
            | 
            | 
           3 | 
            * Service fournissant des informations concernant les commentaire de DEL au format RSS1, RSS2 ou ATOM.
  | 
        
        
            | 
            | 
           4 | 
            * Encodage en entrée : utf8
  | 
        
        
            | 
            | 
           5 | 
            * Encodage en sortie : utf8
  | 
        
        
           | 1284 | 
           jpm | 
           6 | 
            *
  | 
        
        
           | 1047 | 
           aurelien | 
           7 | 
            * @author Aurélien PERONNET <aurelien@tela-botanica.org>
  | 
        
        
            | 
            | 
           8 | 
            * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
  | 
        
        
            | 
            | 
           9 | 
            * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
  | 
        
        
            | 
            | 
           10 | 
            * @version $Id$
  | 
        
        
            | 
            | 
           11 | 
            * @copyright 2010
  | 
        
        
            | 
            | 
           12 | 
            */
  | 
        
        
            | 
            | 
           13 | 
           class SyndicationCommentaires {
  | 
        
        
           | 1284 | 
           jpm | 
           14 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           15 | 
           	private $ressources = null;
  | 
        
        
            | 
            | 
           16 | 
           	private $parametres = null;
  | 
        
        
            | 
            | 
           17 | 
           	private $format = null;
  | 
        
        
            | 
            | 
           18 | 
           	private $service = null;
  | 
        
        
            | 
            | 
           19 | 
           	private $squelette = null;
  | 
        
        
            | 
            | 
           20 | 
           	private $squelette_dossier = null;
  | 
        
        
           | 1049 | 
           aurelien | 
           21 | 
           	private $masque = array();
  | 
        
        
            | 
            | 
           22 | 
           	private $mappingFiltre = array();
  | 
        
        
           | 1047 | 
           aurelien | 
           23 | 
           	private $conteneur = null;
  | 
        
        
            | 
            | 
           24 | 
           	private $gestionBdd = null;
  | 
        
        
           | 1055 | 
           aurelien | 
           25 | 
           	private $navigation = null;
  | 
        
        
           | 1284 | 
           jpm | 
           26 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           27 | 
           	public function __construct(Conteneur $conteneur = null) {
  | 
        
        
            | 
            | 
           28 | 
           		$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
  | 
        
        
           | 1049 | 
           aurelien | 
           29 | 
           		$this->conteneur->chargerConfiguration('config_syndication_commentaires.ini');
  | 
        
        
            | 
            | 
           30 | 
           		$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque');
  | 
        
        
            | 
            | 
           31 | 
           		$this->masque = $conteneur->getMasque();
  | 
        
        
           | 1047 | 
           aurelien | 
           32 | 
           		$this->gestionBdd = $conteneur->getGestionBdd();
  | 
        
        
           | 1055 | 
           aurelien | 
           33 | 
           		$this->navigation = $conteneur->getNavigation();
  | 
        
        
           | 1047 | 
           aurelien | 
           34 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           35 | 
              | 
        
        
            | 
            | 
           36 | 
           	public function consulter($params = array()) {
  | 
        
        
            | 
            | 
           37 | 
           		$this->verifierConfiguration();
  | 
        
        
            | 
            | 
           38 | 
              | 
        
        
           | 1055 | 
           aurelien | 
           39 | 
           		if ($this->fluxAdminDemande()) {
  | 
        
        
            | 
            | 
           40 | 
           			$this->demanderAutorisationAdmin();
  | 
        
        
           | 1284 | 
           jpm | 
           41 | 
           		}
  | 
        
        
            | 
            | 
           42 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           43 | 
           		$donnees_brutes = $this->getDerniersCommentaires();
  | 
        
        
           | 1284 | 
           jpm | 
           44 | 
           		$commentaires_formates = $this->formaterPourRss($donnees_brutes) ;
  | 
        
        
           | 1047 | 
           aurelien | 
           45 | 
           		return $commentaires_formates;
  | 
        
        
            | 
            | 
           46 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           47 | 
              | 
        
        
           | 1049 | 
           aurelien | 
           48 | 
           	/**
  | 
        
        
            | 
            | 
           49 | 
           	* Vérifier que le service est bien configuré
  | 
        
        
            | 
            | 
           50 | 
           	* */
  | 
        
        
            | 
            | 
           51 | 
           	public function verifierConfiguration() {
  | 
        
        
           | 1284 | 
           jpm | 
           52 | 
              | 
        
        
           | 1049 | 
           aurelien | 
           53 | 
           		$erreurs = array();
  | 
        
        
            | 
            | 
           54 | 
           		$tableauImages = $this->conteneur->getParametre('mapping_masque');
  | 
        
        
           | 1284 | 
           jpm | 
           55 | 
              | 
        
        
           | 1049 | 
           aurelien | 
           56 | 
           		if (empty($this->mappingFiltre)) {
  | 
        
        
            | 
            | 
           57 | 
           			$erreurs[] = '- le fichier de configuration ne contient pas le tableau [mapping_masque] ou celui-ci est vide ;';
  | 
        
        
            | 
            | 
           58 | 
           		} else {
  | 
        
        
            | 
            | 
           59 | 
           			$champsMappingFiltre = array('espece', 'observation');
  | 
        
        
            | 
            | 
           60 | 
           			foreach ($champsMappingFiltre as $champ) {
  | 
        
        
            | 
            | 
           61 | 
           				if (!isset($this->mappingFiltre[$champ])) {
  | 
        
        
            | 
            | 
           62 | 
           					$erreurs[] = '- le mapping du champ "'.$champ.'" pour le commentaire est manquant ;';
  | 
        
        
            | 
            | 
           63 | 
           				}
  | 
        
        
            | 
            | 
           64 | 
           			}
  | 
        
        
            | 
            | 
           65 | 
           		}
  | 
        
        
           | 1284 | 
           jpm | 
           66 | 
              | 
        
        
           | 1049 | 
           aurelien | 
           67 | 
           		if (!empty($erreurs)) {
  | 
        
        
            | 
            | 
           68 | 
           			$e = 'Erreur lors de la configuration : '."\n";
  | 
        
        
            | 
            | 
           69 | 
           			$e .= implode("\n", $erreurs);
  | 
        
        
            | 
            | 
           70 | 
           			throw new Exception($e, RestServeur::HTTP_CODE_ERREUR);
  | 
        
        
            | 
            | 
           71 | 
           		}
  | 
        
        
            | 
            | 
           72 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           73 | 
              | 
        
        
           | 1055 | 
           aurelien | 
           74 | 
           	/**
  | 
        
        
            | 
            | 
           75 | 
           	 * Verifier si le flux admin est demande
  | 
        
        
            | 
            | 
           76 | 
           	 */
  | 
        
        
            | 
            | 
           77 | 
           	private function fluxAdminDemande() {
  | 
        
        
           | 1284 | 
           jpm | 
           78 | 
           		return $this->conteneur->getParametre('admin') != null && $this->conteneur->getParametre('admin') == 1;
  | 
        
        
           | 1055 | 
           aurelien | 
           79 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           80 | 
              | 
        
        
           | 1055 | 
           aurelien | 
           81 | 
           	private function demanderAutorisationAdmin() {
  | 
        
        
            | 
            | 
           82 | 
           		$verification = new ControleAcces($this->conteneur);
  | 
        
        
            | 
            | 
           83 | 
           		$verification->demanderAuthentificationAdmin();
  | 
        
        
            | 
            | 
           84 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           85 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           86 | 
           	private function formaterPourRss($elements) {
  | 
        
        
            | 
            | 
           87 | 
           		$donnees = $this->construireDonneesCommunesAuFlux($elements);
  | 
        
        
            | 
            | 
           88 | 
           		foreach ($elements as $element) {
  | 
        
        
            | 
            | 
           89 | 
           			$identifiants[$element['id_commentaire']] = $element['id_commentaire'];
  | 
        
        
            | 
            | 
           90 | 
           		}
  | 
        
        
            | 
            | 
           91 | 
           		foreach ($elements as $element) {
  | 
        
        
            | 
            | 
           92 | 
           			$donnees['items'][] = $this->construireDonneesCommunesAuxItems($element);
  | 
        
        
            | 
            | 
           93 | 
           		}
  | 
        
        
            | 
            | 
           94 | 
           		return $donnees;
  | 
        
        
            | 
            | 
           95 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           96 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           97 | 
           	private function creerCategorie($element) {
  | 
        
        
            | 
            | 
           98 | 
           		$categorie = 'Commentaires';
  | 
        
        
            | 
            | 
           99 | 
           		$categorie = htmlentities($categorie);
  | 
        
        
            | 
            | 
           100 | 
           		return $categorie;
  | 
        
        
            | 
            | 
           101 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           102 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           103 | 
           	private function creerUrlService() {
  | 
        
        
            | 
            | 
           104 | 
           		$url_service = '';
  | 
        
        
            | 
            | 
           105 | 
           		if (count($_GET) > 0) {
  | 
        
        
            | 
            | 
           106 | 
           			$parametres_get = array();
  | 
        
        
            | 
            | 
           107 | 
           			foreach ($_GET as $cle => $valeur) {
  | 
        
        
            | 
            | 
           108 | 
           				$parametres_get[] = $cle.'='.$valeur;
  | 
        
        
            | 
            | 
           109 | 
           			}
  | 
        
        
            | 
            | 
           110 | 
           			$url_service .= '?'.implode('&', $parametres_get);
  | 
        
        
            | 
            | 
           111 | 
           		}
  | 
        
        
            | 
            | 
           112 | 
           		return $url_service;
  | 
        
        
            | 
            | 
           113 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           114 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           115 | 
           	private function construireDonneesCommunesAuFlux($infos) {
  | 
        
        
            | 
            | 
           116 | 
           		$donnees = array();
  | 
        
        
            | 
            | 
           117 | 
           		$donnees['guid'] = '';
  | 
        
        
           | 1284 | 
           jpm | 
           118 | 
           		$donnees['titre'] = 'identiPlante : commentaires et propositions';
  | 
        
        
            | 
            | 
           119 | 
           		$donnees['description'] = 'Ce flux regroupe les dernières déterminations et commentaires rédigés dans l\'application identiPlante';
  | 
        
        
           | 1047 | 
           aurelien | 
           120 | 
           		$donnees['lien_service'] = $this->creerUrlService();
  | 
        
        
            | 
            | 
           121 | 
           		$donnees['lien_del'] = $this->conteneur->getParametre('delAppliLien');
  | 
        
        
            | 
            | 
           122 | 
           		$donnees['editeur'] = $this->conteneur->getParametre('editeur');
  | 
        
        
            | 
            | 
           123 | 
           		$derniere_info_en_date = reset($infos);
  | 
        
        
            | 
            | 
           124 | 
           		$date_modification_timestamp = strtotime($derniere_info_en_date['date']);
  | 
        
        
            | 
            | 
           125 | 
           		$donnees['date_maj_RSS'] = date(DATE_RSS, $date_modification_timestamp);
  | 
        
        
            | 
            | 
           126 | 
           		$donnees['date_maj_ATOM'] = date(DATE_ATOM, $date_modification_timestamp);
  | 
        
        
            | 
            | 
           127 | 
           		$donnees['date_maj_W3C'] = date(DATE_W3C, $date_modification_timestamp);
  | 
        
        
            | 
            | 
           128 | 
           		$donnees['annee_courante'] = date('Y');
  | 
        
        
            | 
            | 
           129 | 
           		$donnees['generateur'] = 'DEL - SyndicationCommentaire';
  | 
        
        
            | 
            | 
           130 | 
           		$donnees['generateur_version'] = (preg_match('/([0-9]+)/', '$Revision$', $match)) ?  $match[1] : '0';
  | 
        
        
           | 1284 | 
           jpm | 
           131 | 
           		return $donnees;
  | 
        
        
           | 1047 | 
           aurelien | 
           132 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           133 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           134 | 
           	private function construireDonneesCommunesAuxItems($info) {
  | 
        
        
            | 
            | 
           135 | 
           		$item = array();
  | 
        
        
            | 
            | 
           136 | 
           		$date_modification_timestamp = strtotime($info['date']);
  | 
        
        
            | 
            | 
           137 | 
           		$item['date_maj_simple'] = strftime('%A %d %B %Y à %H:%M', $date_modification_timestamp);
  | 
        
        
            | 
            | 
           138 | 
           		$item['date_maj_RSS'] = date(DATE_RSS, $date_modification_timestamp);
  | 
        
        
            | 
            | 
           139 | 
           		$item['date_maj_ATOM'] = date(DATE_ATOM, $date_modification_timestamp);
  | 
        
        
            | 
            | 
           140 | 
           		$item['date_maj_W3C'] = date(DATE_W3C, $date_modification_timestamp);
  | 
        
        
            | 
            | 
           141 | 
           		$item['titre'] = $this->creerTitre($info);
  | 
        
        
            | 
            | 
           142 | 
           		$item['guid'] = $this->creerGuidItem($info);
  | 
        
        
            | 
            | 
           143 | 
           		$item['lien'] = $this->creerLienItem($info);
  | 
        
        
            | 
            | 
           144 | 
           		$item['categorie'] = $this->creerCategorie($item);
  | 
        
        
            | 
            | 
           145 | 
           		$item['description'] = $this->creerDescription($info, $item);
  | 
        
        
            | 
            | 
           146 | 
           		$item['description_encodee'] = htmlspecialchars($this->creerDescription($info, $item));
  | 
        
        
            | 
            | 
           147 | 
           		$item['modifie_par'] = $this->creerAuteur($info);
  | 
        
        
            | 
            | 
           148 | 
           		return $item;
  | 
        
        
            | 
            | 
           149 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           150 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           151 | 
           	private function creerGuidItem($element) {
  | 
        
        
            | 
            | 
           152 | 
           		$guid = sprintf($this->conteneur->getParametre('guidObsTpl'), $element['id_commentaire']);
  | 
        
        
            | 
            | 
           153 | 
           		return $guid;
  | 
        
        
            | 
            | 
           154 | 
           	}
  | 
        
        
            | 
            | 
           155 | 
              | 
        
        
            | 
            | 
           156 | 
           	private function creerLienItem($element) {
  | 
        
        
            | 
            | 
           157 | 
           		$lien = sprintf($this->conteneur->getParametre('delFicheObsTpl'), $element['dob_id_observation']);
  | 
        
        
            | 
            | 
           158 | 
           		return $lien;
  | 
        
        
            | 
            | 
           159 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           160 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           161 | 
           	private function creerTitre($element) {
  | 
        
        
           | 1048 | 
           aurelien | 
           162 | 
           		$intitule = ($element['nom_sel'] != '') ? 'Proposition' : 'Commentaire';
  | 
        
        
           | 1286 | 
           jpm | 
           163 | 
           		$idObs = $element['dob_id_observation'];
  | 
        
        
            | 
            | 
           164 | 
           		$nomSel = htmlspecialchars($element['dob_nom_sel']);
  | 
        
        
            | 
            | 
           165 | 
           		$zoneGeo = htmlspecialchars((($element['dob_zone_geo'] != '') ? $element['dob_zone_geo'] : '?'));
  | 
        
        
            | 
            | 
           166 | 
           		$dateObs = htmlspecialchars(strftime('%d %B %Y', strtotime($element['dob_date_observation'])));
  | 
        
        
            | 
            | 
           167 | 
              | 
        
        
            | 
            | 
           168 | 
           		$titre = "$intitule - Observation $idObs - $nomSel à $zoneGeo le $dateObs";
  | 
        
        
           | 1047 | 
           aurelien | 
           169 | 
           		return $titre;
  | 
        
        
            | 
            | 
           170 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           171 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           172 | 
           	private function creerDescription($donnees, $item) {
  | 
        
        
           | 1286 | 
           jpm | 
           173 | 
           		$idCommentaire = $donnees['id_commentaire'];
  | 
        
        
           | 1284 | 
           jpm | 
           174 | 
           		$nomSel = ($donnees['nom_sel'] != '') ? htmlspecialchars($donnees['nom_sel']) : '';
  | 
        
        
            | 
            | 
           175 | 
           		$txt = ($donnees['texte'] != '') ? htmlspecialchars($donnees['texte']) : '';
  | 
        
        
           | 1285 | 
           jpm | 
           176 | 
           		$etreProposition = ($nomSel != '') ? true : false;
  | 
        
        
           | 1284 | 
           jpm | 
           177 | 
           		$auteur = htmlspecialchars($this->creerAuteur($donnees)).
  | 
        
        
            | 
            | 
           178 | 
           			($this->fluxAdminDemande() ? ' ('.$donnees['utilisateur_courriel'].')' : '');
  | 
        
        
            | 
            | 
           179 | 
              | 
        
        
           | 1285 | 
           jpm | 
           180 | 
           		$contenu = '';
  | 
        
        
            | 
            | 
           181 | 
           		if ($etreProposition) {
  | 
        
        
           | 1286 | 
           jpm | 
           182 | 
           			$contenu = "<li>Proposition #$idCommentaire : <em>$nomSel</em></li>".
  | 
        
        
           | 1288 | 
           jpm | 
           183 | 
           				((!empty($txt)) ? "<li>Argumentaire : $txt</li>" : '').
  | 
        
        
           | 1285 | 
           jpm | 
           184 | 
           				"<li>Auteur de la proposition : $auteur</li>";
  | 
        
        
            | 
            | 
           185 | 
           		} else {
  | 
        
        
           | 1286 | 
           jpm | 
           186 | 
           			$contenu = "<li>Commentaire #$idCommentaire : <pre>$txt</pre></li>".
  | 
        
        
           | 1285 | 
           jpm | 
           187 | 
           					"<li>Auteur du commentaire : $auteur</li>";
  | 
        
        
            | 
            | 
           188 | 
           		}
  | 
        
        
            | 
            | 
           189 | 
           		$description = "<ul>$contenu</ul>";
  | 
        
        
           | 1047 | 
           aurelien | 
           190 | 
           		return $description;
  | 
        
        
            | 
            | 
           191 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           192 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           193 | 
           	private function creerAuteur($info) {
  | 
        
        
            | 
            | 
           194 | 
           		return $info['utilisateur_prenom'].' '.$info['utilisateur_nom'];
  | 
        
        
            | 
            | 
           195 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           196 | 
              | 
        
        
            | 
            | 
           197 | 
           	private function getDerniersCommentaires() {
  | 
        
        
            | 
            | 
           198 | 
           		$requete = 'SELECT DISTINCT dc.*, '.
  | 
        
        
            | 
            | 
           199 | 
           			'	dob.id_observation AS dob_id_observation, dob.ce_zone_geo AS dob_ce_zone_geo, '.
  | 
        
        
            | 
            | 
           200 | 
           			'	dob.zone_geo AS dob_zone_geo, dob.date_observation AS dob_date_observation, dob.nom_sel AS dob_nom_sel '.
  | 
        
        
            | 
            | 
           201 | 
           			'FROM del_commentaire AS dc '.
  | 
        
        
            | 
            | 
           202 | 
           			'	INNER JOIN del_observation AS dob '.
  | 
        
        
            | 
            | 
           203 | 
           			'		ON dob.id_observation = dc.ce_observation '.
  | 
        
        
            | 
            | 
           204 | 
           			'WHERE ((dob.ce_utilisateur = dc.ce_utilisateur AND dob.nom_sel != dc.nom_sel) '.
  | 
        
        
            | 
            | 
           205 | 
           			'	OR (dob.ce_utilisateur != dc.ce_utilisateur)) '.
  | 
        
        
            | 
            | 
           206 | 
           			$this->chargerClauseWhere().' '.
  | 
        
        
            | 
            | 
           207 | 
           			'ORDER BY dc.date DESC '.
  | 
        
        
            | 
            | 
           208 | 
           			'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' ';
  | 
        
        
            | 
            | 
           209 | 
              | 
        
        
           | 1047 | 
           aurelien | 
           210 | 
           		$elements = $this->gestionBdd->getBdd()->recupererTous($requete);
  | 
        
        
            | 
            | 
           211 | 
           		return $elements;
  | 
        
        
            | 
            | 
           212 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           213 | 
              | 
        
        
           | 1049 | 
           aurelien | 
           214 | 
           	/**
  | 
        
        
            | 
            | 
           215 | 
           	* Charger la clause WHERE en fonction des paramètres de masque
  | 
        
        
            | 
            | 
           216 | 
           	* */
  | 
        
        
            | 
            | 
           217 | 
           	private function chargerClauseWhere() {
  | 
        
        
            | 
            | 
           218 | 
           		$where = array();
  | 
        
        
            | 
            | 
           219 | 
           		$tableauMasque = $this->masque->getMasque();
  | 
        
        
            | 
            | 
           220 | 
           		if (!empty($tableauMasque)) {
  | 
        
        
           | 1284 | 
           jpm | 
           221 | 
           			foreach($tableauMasque as $idMasque => $valeurMasque) {
  | 
        
        
           | 1049 | 
           aurelien | 
           222 | 
           				$idMasque = str_replace('masque.', '', $idMasque);
  | 
        
        
            | 
            | 
           223 | 
           				switch ($idMasque) {
  | 
        
        
            | 
            | 
           224 | 
           					case 'espece':
  | 
        
        
           | 1284 | 
           jpm | 
           225 | 
           						$where[] = ' dob.'.$this->mappingFiltre[$idMasque].
  | 
        
        
            | 
            | 
           226 | 
           							' LIKE '.$this->gestionBdd->getBdd()->proteger($valeurMasque.'%').' '.
  | 
        
        
            | 
            | 
           227 | 
           							' OR '.' dc.'.$this->mappingFiltre[$idMasque].
  | 
        
        
            | 
            | 
           228 | 
           							' LIKE '.$this->gestionBdd->getBdd()->proteger($valeurMasque.'%').' ';
  | 
        
        
            | 
            | 
           229 | 
           						break;
  | 
        
        
           | 1049 | 
           aurelien | 
           230 | 
           					case 'auteur':
  | 
        
        
           | 1284 | 
           jpm | 
           231 | 
           						$where[] = $this->creerFiltreAuteur($valeurMasque).' ';
  | 
        
        
            | 
            | 
           232 | 
           						break;
  | 
        
        
           | 1049 | 
           aurelien | 
           233 | 
           					default:
  | 
        
        
            | 
            | 
           234 | 
           						$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->gestionBdd->getBdd()->proteger($valeurMasque);
  | 
        
        
            | 
            | 
           235 | 
           				}
  | 
        
        
           | 1284 | 
           jpm | 
           236 | 
           			}
  | 
        
        
           | 1049 | 
           aurelien | 
           237 | 
           		}
  | 
        
        
            | 
            | 
           238 | 
           		if (!empty($where)) {
  | 
        
        
            | 
            | 
           239 | 
           			return ' AND '.implode('AND', $where);
  | 
        
        
            | 
            | 
           240 | 
           		} else {
  | 
        
        
            | 
            | 
           241 | 
           			return;
  | 
        
        
            | 
            | 
           242 | 
           		}
  | 
        
        
            | 
            | 
           243 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           244 | 
              | 
        
        
            | 
            | 
           245 | 
           	private function creerFiltreAuteur($auteurId) {
  | 
        
        
           | 1049 | 
           aurelien | 
           246 | 
           		$masque = '';
  | 
        
        
            | 
            | 
           247 | 
           		if (is_numeric($auteurId)) {
  | 
        
        
           | 1284 | 
           jpm | 
           248 | 
           			$masque = " dc.ce_utilisateur = $auteurId ";
  | 
        
        
           | 1049 | 
           aurelien | 
           249 | 
           		} else {
  | 
        
        
           | 1284 | 
           jpm | 
           250 | 
           			$auteurIdMotif = $this->gestionBdd->getBdd()->proteger($auteurId.'%');
  | 
        
        
            | 
            | 
           251 | 
              | 
        
        
           | 1049 | 
           aurelien | 
           252 | 
           			if (strpos($auteurId, '@') === false) {
  | 
        
        
           | 1284 | 
           jpm | 
           253 | 
           				$tableauNomPrenom = explode(' ', $auteurId, 2);
  | 
        
        
            | 
            | 
           254 | 
           				if (count($tableauNomPrenom) == 2) {
  | 
        
        
           | 1049 | 
           aurelien | 
           255 | 
           					// on teste potentiellement un nom prenom ou bien un prénom nom
  | 
        
        
           | 1284 | 
           jpm | 
           256 | 
           					$nomMotif = $this->gestionBdd->getBdd()->proteger($tableauNomPrenom[0].'%');
  | 
        
        
            | 
            | 
           257 | 
           					$prenomMotif = $this->gestionBdd->getBdd()->proteger($tableauNomPrenom[1].'%');
  | 
        
        
            | 
            | 
           258 | 
              | 
        
        
           | 1049 | 
           aurelien | 
           259 | 
           					$masque = '('.
  | 
        
        
           | 1284 | 
           jpm | 
           260 | 
           						"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ".
  | 
        
        
            | 
            | 
           261 | 
           						'OR '.
  | 
        
        
            | 
            | 
           262 | 
           						"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ".
  | 
        
        
            | 
            | 
           263 | 
           					')';
  | 
        
        
           | 1049 | 
           aurelien | 
           264 | 
           				} else {
  | 
        
        
           | 1284 | 
           jpm | 
           265 | 
           					$masque = "(dc.utilisateur_nom LIKE $auteurIdMotif OR dc.utilisateur_prenom LIKE $auteurIdMotif) ";
  | 
        
        
           | 1049 | 
           aurelien | 
           266 | 
           				}
  | 
        
        
            | 
            | 
           267 | 
           			} else {
  | 
        
        
           | 1284 | 
           jpm | 
           268 | 
           				$masque = " dob.utilisateur_courriel LIKE $auteurIdMotif ";
  | 
        
        
           | 1049 | 
           aurelien | 
           269 | 
           			}
  | 
        
        
            | 
            | 
           270 | 
           		}
  | 
        
        
            | 
            | 
           271 | 
           		return $masque;
  | 
        
        
            | 
            | 
           272 | 
           	}
  | 
        
        
           | 1284 | 
           jpm | 
           273 | 
           }
  | 
        
        
            | 
            | 
           274 | 
           ?>
  |