Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3667 Rev 3808
Line 50... Line 50...
50
 
50
        
51
		if ($this->doitJoindreTableObs($criteres, $ordre)) {
51
        if ($this->doitJoindreTableObs($criteres, $ordre)) {
52
			$requete_recherche_images .= $this->fabriquerRequeteJointureObs();
52
            $requete_recherche_images .= $this->fabriquerRequeteJointureObs();
53
			$requete_recherche_images .= ($id_utilisateur != null) ? 'AND ci.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
53
            $requete_recherche_images .= ($id_utilisateur != null) ? 'AND ci.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
54
		} else {
54
        } else {
55
			$requete_recherche_images .= 'FROM cel_images ci ';
55
            $requete_recherche_images .= 'FROM cel_images_export ci ';
56
			$requete_recherche_images .= ($id_utilisateur != null) ? 'WHERE ci.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
56
            $requete_recherche_images .= ($id_utilisateur != null) ? 'WHERE ci.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
Line 57... Line 57...
57
		}
57
        }
58
 
58
        
Line 75... Line 75...
75
 
75
        
76
		if ($this->doitJoindreTableObs($criteres)) {
76
        if ($this->doitJoindreTableObs($criteres)) {
77
			$requete_recherche_images .= $this->fabriquerRequeteJointureObs();
77
            $requete_recherche_images .= $this->fabriquerRequeteJointureObs();
78
			$requete_recherche_images .= ($id_utilisateur != null) ? 'AND ci.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
78
            $requete_recherche_images .= ($id_utilisateur != null) ? 'AND ci.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
79
		} else {
79
        } else {
80
			$requete_recherche_images .= 'FROM cel_images ci ';
80
            $requete_recherche_images .= 'FROM cel_images_export ci ';
81
			$requete_recherche_images .= ($id_utilisateur != null) ? 'WHERE ci.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
81
            $requete_recherche_images .= ($id_utilisateur != null) ? 'WHERE ci.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
82
		}
82
        }
Line 83... Line 83...
83
		$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
83
        $sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
Line 99... Line 99...
99
		return count(array_intersect(array_keys($criteres),$criteres_obs)) > 0 ||
99
        return count(array_intersect(array_keys($criteres),$criteres_obs)) > 0 ||
100
				(!empty($tri) && in_array($tri, $tris_obs));
100
        (!empty($tri) && in_array($tri, $tris_obs));
101
	}
101
    }
Line 102... Line 102...
102
 
102
    
103
	private function fabriquerRequeteJointureObs() {
103
    private function fabriquerRequeteJointureObs() {
104
		$requete = 'FROM cel_images ci '.
104
        $requete = 'FROM cel_images_export ci '.
105
			'LEFT JOIN cel_obs co '.
105
            'LEFT JOIN cel_export_total co '.
106
				'ON ci.ce_observation = co.id_observation '.
106
            'ON ci.ce_observation = co.id_observation '.
107
			'WHERE 1 ';
107
            'WHERE 1 ';
108
		return $requete;
108
        return $requete;
Line 109... Line 109...
109
	}
109
    }
110
 
110
    
111
	public function obtenirInformationsObservationsAssociees($id_utilisateur, $id_image) {
111
    public function obtenirInformationsObservationsAssociees($id_utilisateur, $id_image) {
Line 112... Line 112...
112
		$requete = 'SELECT ce_observation FROM cel_images WHERE id_image = '.$id_image;
112
        $requete = 'SELECT ce_observation FROM cel_images_export WHERE id_image = '.$id_image;
113
		$resultats = Cel::db()->requeter($requete);
113
        $resultats = Cel::db()->requeter($requete);
114
 
114
        
115
		$idsObsListe = array();
115
        $idsObsListe = array();
116
		foreach ($resultats as $liaison) {
116
        foreach ($resultats as $liaison) {
Line 117... Line 117...
117
			$idsObsListe[] = $liaison['ce_observation'];
117
            $idsObsListe[] = $liaison['ce_observation'];
118
		}
118
        }
119
		$ids_obs = implode(',', $idsObsListe);
119
        $ids_obs = implode(',', $idsObsListe);
120
 
120
        
Line 121... Line 121...
121
		$infos_obs = '';
121
        $infos_obs = '';
122
		if (trim($ids_obs) != '') {
122
        if (trim($ids_obs) != '') {
123
			$requete = 'SELECT * FROM cel_obs WHERE id_observation IN ('.$ids_obs.') AND ce_utilisateur = "'.$id_utilisateur.'"';
123
            $requete = 'SELECT * FROM cel_export_total WHERE id_observation IN ('.$ids_obs.') AND ce_utilisateur = "'.$id_utilisateur.'"';
Line 187... Line 187...
187
					$sous_requete .= ') AND ' ;
187
                    $sous_requete .= ') AND ' ;
188
					break;
188
                    break;
189
				case "auteur":
189
                case "auteur":
190
					$sous_requete .= '(ci.ce_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').' OR '.
190
                    $sous_requete .= '(ci.ce_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').' OR '.
191
								'ci.courriel_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').' OR '.
191
                        'ci.courriel_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').' OR '.
192
								'ci.nom_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').' OR '.
-
 
193
								'ci.prenom_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').
192
                        'ci.pseudo_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').
194
								') AND ';
193
                        ') AND ';
195
					break;
194
                    break;
196
				case "ce_zone_geo":
195
                case "ce_zone_geo":
197
					if($valeur == "NULL") {
196
                    if($valeur == "NULL") {
198
						$sous_requete .= "(co.ce_zone_geo IS NULL OR co.ce_zone_geo = '')";
197
                        $sous_requete .= "(co.ce_zone_geo IS NULL OR co.ce_zone_geo = '')";
Line 235... Line 234...
235
			'co.ce_zone_geo LIKE '.Cel::db()->proteger('%'.$chaine_recherche.'%').' OR '.
234
            'co.ce_zone_geo LIKE '.Cel::db()->proteger('%'.$chaine_recherche.'%').' OR '.
236
			//TODO: recherche multicriteres sur mots clés texte ne fonctionne pas à cause de la jointure
235
            //TODO: recherche multicriteres sur mots clés texte ne fonctionne pas à cause de la jointure
237
			//'ci.mots_cles_texte LIKE '.Cel::db()->proteger('%'.$chaine_recherche.'%').' OR '.
236
        //'ci.mots_cles_texte LIKE '.Cel::db()->proteger('%'.$chaine_recherche.'%').' OR '.
238
			'ci.ce_utilisateur LIKE '.Cel::db()->proteger($chaine_recherche.'%').' OR '.
237
        'ci.ce_utilisateur LIKE '.Cel::db()->proteger($chaine_recherche.'%').' OR '.
239
			'ci.courriel_utilisateur LIKE '.Cel::db()->proteger($chaine_recherche.'%').' OR '.
238
        'ci.courriel_utilisateur LIKE '.Cel::db()->proteger($chaine_recherche.'%').' OR '.
240
			'ci.nom_utilisateur LIKE '.Cel::db()->proteger($chaine_recherche.'%').' OR '.
-
 
241
			'ci.prenom_utilisateur LIKE '.Cel::db()->proteger($chaine_recherche.'%').' '.
239
        'ci.pseudo_utilisateur  LIKE '.Cel::db()->proteger($chaine_recherche.'%').' '.
242
		') ';
240
        ') ';
243
		return $requete;
241
        return $requete;
244
	}
242
    }
Line 245... Line 243...
245
 
243
    
Line 293... Line 291...
293
	}
291
    }
Line 294... Line 292...
294
 
292
    
295
	public function obtenirCourrielUtilisateurPourIdImage($id_image) {
293
    public function obtenirCourrielUtilisateurPourIdImage($id_image) {
296
		$idImageP = Cel::db()->proteger($id_image);
294
        $idImageP = Cel::db()->proteger($id_image);
297
		$requete = 'SELECT courriel_utilisateur '.
295
        $requete = 'SELECT courriel_utilisateur '.
298
			'FROM cel_images '.
296
            'FROM cel_images_export '.
299
			"WHERE id_image = $idImageP ".
297
            "WHERE id_image = $idImageP ".
300
			' -- '.__FILE__.':'.__LINE__;
298
            ' -- '.__FILE__.':'.__LINE__;
Line 301... Line 299...
301
		$utilisateur_courriel = Cel::db()->requeter($requete);
299
        $utilisateur_courriel = Cel::db()->requeter($requete);
Line 306... Line 304...
306
		}
304
        }
307
		return $retour;
305
        return $retour;
308
	}
306
    }
Line 309... Line 307...
309
 
307
    
310
	private function getIdsMotsClesImage($id_image) {
308
    private function getIdsMotsClesImage($id_image) {
311
		$requete = 'SELECT DISTINCT id_mot_cle '.
309
        $requete = 'SELECT DISTINCT photo_tag_id '.
312
			'FROM cel_mots_cles_images_liaison '.
310
            'FROM photo_tag_photo '.
313
			"WHERE id_element_lie = $id_image ".
311
            "WHERE photo_id = $id_image ".
314
			' -- '.__FILE__.':'.__LINE__;
312
            ' -- '.__FILE__.':'.__LINE__;
315
		return Cel::db()->requeter($requete);
313
        return Cel::db()->requeter($requete);
316
	}
314
    }