Subversion Repositories eFlore/Applications.del

Rev

Rev 1821 | Rev 2210 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1821 Rev 1922
Line 165... Line 165...
165
 
165
 
166
	/**
166
	/**
167
	 * Retrouver les derniers votes image
167
	 * Retrouver les derniers votes image
168
	 * */
168
	 * */
-
 
169
	private function getDerniersVotesImage() {
169
	private function getDerniersVotesImage() {
170
		$elements = array();
-
 
171
		$idsTags = $this->getIdsDerniersVotesImage();
-
 
172
		if (!empty($idsTags)) {
170
		$clauseWhere = $this->chargerClauseWhere();
173
			$idsTagsConcat = implode(', ', $idsTags);
171
		$requete = 'SELECT DISTINCT id_tag, tag, date, '.
174
			$requete = 'SELECT DISTINCT id_tag, tag, date, '.
172
				'	do.id_observation, do.nom_sel, do.zone_geo, do.date_observation, doi.id_image, '.
175
					'	do.id_observation, do.nom_sel, do.zone_geo, do.date_observation, di.id_image, '.
173
				'	duo.prenom AS auteur_prenom, duo.nom AS auteur_nom, duo.courriel AS auteur_courriel, '.
176
					'	duo.prenom AS auteur_prenom, duo.nom AS auteur_nom, duo.courriel AS auteur_courriel, '.
174
				'	du.prenom AS tagueur_prenom, du.nom AS tagueur_nom, du.courriel AS tagueur_courriel '.
177
					'	du.prenom AS tagueur_prenom, du.nom AS tagueur_nom, du.courriel AS tagueur_courriel '.
175
				'FROM del_image_tag AS dit '.
178
					'FROM del_image_tag AS dit '.
176
				'	INNER JOIN del_obs_image AS doi '.
179
					'	INNER JOIN del_image AS di '.
177
				'		ON ce_image = id_image '.
180
					'		ON ce_image = id_image '.
178
				'	INNER JOIN del_observation AS do '.
181
					'	INNER JOIN del_observation AS do '.
179
				'			ON doi.id_observation = do.id_observation '.
182
					'			ON di.ce_observation = do.id_observation '.
180
				'	LEFT JOIN del_utilisateur AS duo '.
183
					'	LEFT JOIN del_utilisateur AS duo '.
181
				'		ON do.ce_utilisateur = duo.id_utilisateur '.
184
					'		ON do.ce_utilisateur = duo.id_utilisateur '.
182
				'	LEFT JOIN del_utilisateur AS du '.
185
					'	LEFT JOIN del_utilisateur AS du '.
183
				'		ON if((CHAR_LENGTH(dit.ce_utilisateur) <> 32),CAST(dit.ce_utilisateur AS unsigned),0) '.
186
					'		ON if((CHAR_LENGTH(dit.ce_utilisateur) <> 32),CAST(dit.ce_utilisateur AS unsigned),0) '.
184
				'			= du.id_utilisateur '.
187
					'			= du.id_utilisateur '.
185
				'WHERE actif = 1 '.
188
					'WHERE actif = 1 '.
186
				($clauseWhere != '' ? "AND $clauseWhere " : '').
189
					"	AND id_tag IN ($idsTagsConcat) ".
187
				'ORDER BY date DESC '.
190
					'ORDER BY date DESC '.
188
				'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' '.
191
					'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' '.
189
				' -- '.__FILE__.' : '.__LINE__;
192
					' -- '.__FILE__.' : '.__LINE__;
-
 
193
			$elements = $this->bdd->recupererTous($requete);
190
		$elements = $this->bdd->recupererTous($requete);
194
		}
191
		return $elements;
195
		return $elements;
Line -... Line 196...
-
 
196
	}
-
 
197
 
-
 
198
	/**
192
	}
199
	 * Retrouver les ids des derniers votes image
193
 
200
	 * */
194
	private function chargerClauseWhere() {
201
	private function getIdsDerniersVotesImage() {
195
		$where = array();
202
		$requete = 'SELECT DISTINCT id_tag '.
196
		$filtres = $this->navigation->getFiltre();
203
				'FROM del_image_tag '.
197
		if (!empty($filtres)) {
204
				'WHERE actif = 1 '.
198
			$filtrePossibles = $this->conteneur->getParametreTableau('syndication.tag_filtres');
205
				// Pas de filtre pour ce service. Utiliser le principe des autres ws de syndication si on devait en rajouter.
199
			foreach ($filtres as $cleFiltre => $valeur) {
206
				'ORDER BY date DESC '.
200
				if (in_array($cleFiltre, $filtrePossibles)) {
207
				'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' '.
-
 
208
				' -- '.__FILE__.' : '.__LINE__;
-
 
209
		$resultats = $this->bdd->recupererTous($requete);
-
 
210
 
201
					$champ = $this->mapping[$cleFiltre];
211
		$idsTags = array();
202
					$valeurP = $this->bdd->proteger($valeur);
212
		if ($resultats != false && is_array($resultats)) {
203
					$where[] = " $champ = $valeurP ";
213
			foreach ($resultats as $infos) {
204
				}
214
				$idsTags[] = $infos['id_tag'];
205
			}
-
 
206
		}
215
			}
207
 
216
		}
208
		return (!empty($where)) ? implode('AND', $where) : '';
217
		return $idsTags;
209
	}
218
	}