Subversion Repositories eFlore/Applications.del

Rev

Rev 1821 | Rev 2157 | Go to most recent revision | Show entire file | Ignore 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) '.
-
 
187
					'			= du.id_utilisateur '.
-
 
188
					'WHERE actif = 1 '.
-
 
189
					"	AND id_tag IN ($idsTagsConcat) ".
-
 
190
					'ORDER BY date DESC '.
-
 
191
					'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' '.
-
 
192
					' -- '.__FILE__.' : '.__LINE__;
-
 
193
			$elements = $this->bdd->recupererTous($requete);
-
 
194
		}
-
 
195
		return $elements;
-
 
196
	}
-
 
197
 
-
 
198
	/**
-
 
199
	 * Retrouver les ids des derniers votes image
-
 
200
	 * */
-
 
201
	private function getIdsDerniersVotesImage() {
-
 
202
		$requete = 'SELECT DISTINCT id_tag '.
184
				'			= du.id_utilisateur '.
203
				'FROM del_image_tag '.
185
				'WHERE actif = 1 '.
204
				'WHERE actif = 1 '.
186
				($clauseWhere != '' ? "AND $clauseWhere " : '').
205
				// Pas de filtre pour ce service. Utiliser le principe des autres ws de syndication si on devait en rajouter.
187
				'ORDER BY date DESC '.
206
				'ORDER BY date DESC '.
188
				'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' '.
207
				'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' '.
189
				' -- '.__FILE__.' : '.__LINE__;
208
				' -- '.__FILE__.' : '.__LINE__;
190
		$elements = $this->bdd->recupererTous($requete);
-
 
191
		return $elements;
-
 
Line 192... Line -...
192
	}
-
 
193
 
209
		$resultats = $this->bdd->recupererTous($requete);
194
	private function chargerClauseWhere() {
210
 
195
		$where = array();
-
 
196
		$filtres = $this->navigation->getFiltre();
-
 
197
		if (!empty($filtres)) {
211
		$idsTags = array();
198
			$filtrePossibles = $this->conteneur->getParametreTableau('syndication.tag_filtres');
-
 
199
			foreach ($filtres as $cleFiltre => $valeur) {
-
 
200
				if (in_array($cleFiltre, $filtrePossibles)) {
-
 
201
					$champ = $this->mapping[$cleFiltre];
212
		if ($resultats != false && is_array($resultats)) {
202
					$valeurP = $this->bdd->proteger($valeur);
-
 
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
	}