Subversion Repositories eFlore/Applications.del

Rev

Rev 1379 | Rev 1383 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1379 Rev 1380
Line 105... Line 105...
105
	 * @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
105
	 * @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
106
	 * @param array $parametres les paramètres situés après le ? dans l'url
106
	 * @param array $parametres les paramètres situés après le ? dans l'url
107
	 **/	
107
	 **/	
108
	public function consulter($ressources, $parametres) {
108
	public function consulter($ressources, $parametres) {
109
		$req = array('select' => array(), 'join' => array(), 'where' => array(), 'groupby' => array(), 'having' => array());
109
		$req = array('select' => array(), 'join' => array(), 'where' => array(), 'groupby' => array(), 'having' => array());
110
		// toujours nécessaire puisque nous tapons sur del_image qui INNER JOIN cel_images, or nous voulons certes
110
		// toujours nécessaire puisque nous tapons sur v_del_image qui INNER JOIN cel_images, or nous voulons certes
111
		// toutes les images, mais nous voulons $limite observations uniques.
111
		// toutes les images, mais nous voulons $limite observations uniques.
112
		$req['groupby'][] = 'dob.id_observation';
112
		$req['groupby'][] = 'dob.id_observation';
Line 113... Line 113...
113
 
113
 
Line 193... Line 193...
193
	 * @param req: le tableau représentant les composants de la requete SQL
193
	 * @param req: le tableau représentant les composants de la requete SQL
194
	 * @param db: l'instance de db
194
	 * @param db: l'instance de db
195
	 */
195
	 */
196
	static function getIdObs($p, $req, $db) {
196
	static function getIdObs($p, $req, $db) {
197
		$req_s = sprintf('SELECT SQL_CALC_FOUND_ROWS id_observation' .
197
		$req_s = sprintf('SELECT SQL_CALC_FOUND_ROWS id_observation' .
198
						 ' FROM del_image dob'.
198
						 ' FROM v_del_image dob'.
199
						 ' %s' . // LEFT JOIN if any
199
						 ' %s' . // LEFT JOIN if any
200
						 ' WHERE %s'. // where-clause ou TRUE
200
						 ' WHERE %s'. // where-clause ou TRUE
201
						 ' %s'. // group-by
201
						 ' %s'. // group-by
202
						 ' %s'. // having (si commentaires)
202
						 ' %s'. // having (si commentaires)
203
						 ' ORDER BY %s %s %s'.
203
						 ' ORDER BY %s %s %s'.
Line 238... Line 238...
238
			array_map(create_function('$a', 'return "dob.".$a;'), self::$sql_fields_liaisons['dob']),
238
			array_map(create_function('$a', 'return "dob.".$a;'), self::$sql_fields_liaisons['dob']),
239
			array_map(create_function('$a', 'return "di.".$a;'), self::$sql_fields_liaisons['di']),
239
			array_map(create_function('$a', 'return "di.".$a;'), self::$sql_fields_liaisons['di']),
240
			array_map(create_function('$a', 'return "du.".$a;'), self::$sql_fields_liaisons['du'])));*/
240
			array_map(create_function('$a', 'return "du.".$a;'), self::$sql_fields_liaisons['du'])));*/
241
		$select_fields = array_merge(self::$sql_fields_liaisons['dob'],
241
		$select_fields = array_merge(self::$sql_fields_liaisons['dob'],
242
									 self::$sql_fields_liaisons['di']);
242
									 self::$sql_fields_liaisons['di']);
243
		$req_s = sprintf('SELECT %s FROM del_image di'.
243
		$req_s = sprintf('SELECT %s FROM v_del_image di'.
244
						 // ' LEFT JOIN del_commentaire AS dc ON di.id_observation = dc.ce_observation AND dc.nom_sel IS NOT NULL'.
244
						 // ' LEFT JOIN del_commentaire AS dc ON di.id_observation = dc.ce_observation AND dc.nom_sel IS NOT NULL'.
245
						 ' WHERE id_observation IN (%s)',
245
						 ' WHERE id_observation IN (%s)',
246
						 implode(',', $select_fields),
246
						 implode(',', $select_fields),
247
						 implode(',', $idobs));
247
						 implode(',', $idobs));
248
		return $db->recupererTous($req_s);
248
		return $db->recupererTous($req_s);
Line 261... Line 261...
261
	 *
261
	 *
262
	 * Note: toujours rajouter les préfixes de table (dob,du,doi ou di)
262
	 * Note: toujours rajouter les préfixes de table (dob,du,doi ou di)
263
	 * le préfix de del_observation est "dob"
263
	 * le préfix de del_observation est "dob"
264
	 * le préfix de del_utilisateur sur id_utilisateur = dob.ce_utilisateur est "du"
264
	 * le préfix de del_utilisateur sur id_utilisateur = dob.ce_utilisateur est "du"
265
	 * le préfix de del_obs_image sur id_observation = dob.id_observation est "doi"
265
	 * le préfix de del_obs_image sur id_observation = dob.id_observation est "doi"
266
	 * le préfix de del_image sur id_image = doi.id_image est "di"
266
	 * le préfix de v_del_image sur id_image = doi.id_image est "di"
267
	 *
267
	 *
268
	 * @param $p les paramètres (notamment de masque) passés par l'URL et déjà traités/filtrés (sauf quotes)
268
	 * @param $p les paramètres (notamment de masque) passés par l'URL et déjà traités/filtrés (sauf quotes)
269
	 * @param $req le tableau représentant les composants de la requête à bâtir
269
	 * @param $req le tableau représentant les composants de la requête à bâtir
270
	 * @param $c conteneur, utilisé soit pour l'appel récursif à requestFilterParams() en cas de param "masque"
270
	 * @param $c conteneur, utilisé soit pour l'appel récursif à requestFilterParams() en cas de param "masque"
271
	 *								soit pour la définition du type (qui utilise la variable nb_commentaires_discussion)
271
	 *								soit pour la définition du type (qui utilise la variable nb_commentaires_discussion)
Line 324... Line 324...
324
		}
324
		}
325
		if(!empty($p['masque.commune'])) {
325
		if(!empty($p['masque.commune'])) {
326
			$req['where'][] = 'dob.zone_geo LIKE '.$db->proteger($p['masque.commune'].'%');
326
			$req['where'][] = 'dob.zone_geo LIKE '.$db->proteger($p['masque.commune'].'%');
327
		}
327
		}
328
		if(!empty($p['masque.tag'])) {
328
		if(!empty($p['masque.tag'])) {
329
			// i_mots_cles_texte provient de la VIEW del_image
329
			// i_mots_cles_texte provient de la VIEW v_del_image
330
			$req['where'][] = sprintf('CONCAT(%s) REGEXP %s',
330
			$req['where'][] = sprintf('CONCAT(%s) REGEXP %s',
331
									  self::sqlAddIfNullPourConcat(array('dob.mots_cles_texte', 'dob.i_mots_cles_texte')),
331
									  self::sqlAddIfNullPourConcat(array('dob.mots_cles_texte', 'dob.i_mots_cles_texte')),
332
									  $db->proteger($p['masque.tag']));
332
									  $db->proteger($p['masque.tag']));
333
		}
333
		}