Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1663 Rev 1681
Line 71... Line 71...
71
 
71
 
72
		if($liaisons) {
72
		if($liaisons) {
73
                  $compte = $this->bdd->recuperer('SELECT FOUND_ROWS() AS nbre');
73
                  $compte = $this->bdd->recuperer('SELECT FOUND_ROWS() AS nbre');
Line -... Line 74...
-
 
74
                  $total = (int) $compte['nbre'];
74
                  $total = (int) $compte['nbre'];
75
                  
-
 
76
                  $imgdata = $this->recupererDonneeObs($liaisons);
75
                  
77
                  $obs = $this->regrouperObs($liaisons, $imgdata);
76
                  $obs = $this->regrouperObs($liaisons);
78
 
77
                  $obs = $this->chargerPropositionPlusProbable($obs);
79
                  $obs = $this->chargerPropositionPlusProbable($obs);
Line 78... Line 80...
78
                  $obs = $this->orderArray($obs);
80
                  $obs = $this->orderArray($obs);
Line 117... Line 119...
117
          
119
          
118
 
120
 
119
 
-
 
120
          $requete_sql = 
-
 
121
            'select SQL_CALC_FOUND_ROWS vdi.id_observation, vdi.id_image, '.
-
 
122
            'vdi.nom_sel, '.
-
 
123
            'vdi.nom_referentiel, vdi.nom_ret, vdi.nom_ret_nn, vdi.nt, vdi.famille, '.
-
 
124
            'vdi.zone_geo, vdi.latitude, vdi.longitude, '. 
-
 
125
            'vdi.date_observation, vdi.date_creation, vdi.date_transmission, '. 
-
 
126
            'vdi.mots_cles_texte as mots_cles_texte, '.  
-
 
127
            'vdi.i_mots_cles_texte as mots_cles_texte_image, '.  
-
 
Line 128... Line 121...
128
 
121
 
Line 129... Line 122...
129
            'vdi.ce_utilisateur as ce_utilisateur, '.
122
          $requete_sql = 
130
            'vdi.prenom_utilisateur, vdi.courriel_utilisateur, vdi.nom_utilisateur, vdi.nom_original as nom_image, '.  
123
            'select SQL_CALC_FOUND_ROWS vdi.id_observation, vdi.id_image, '.
Line 166... Line 159...
166
          // charlie est ici :-) 
159
          // charlie est ici :-) 
167
          // eg: 16150,16185,16245,16246,118995,129989
160
          // eg: 16150,16185,16245,16246,118995,129989
Line 168... Line 161...
168
                
161
                
Line -... Line 162...
-
 
162
	}
-
 
163
	
-
 
164
 
-
 
165
        // recupere les donnée associées (fait en 2 requetes pour optimiser)
-
 
166
        private function recupererDonneeObs(&$liaisons) {
-
 
167
 
-
 
168
          // recuperer les ids
-
 
169
          $ids = array();
-
 
170
          foreach ($liaisons as $img) {
-
 
171
            $id = $img['id_image'];
-
 
172
            $ids[] = $id;
-
 
173
          }
-
 
174
          
-
 
175
          // recuperer les donnees
-
 
176
          $resultats = $this->bdd->recupererTous(sprintf(
-
 
177
                  'SELECT  '.
-
 
178
                  'vdi.id_observation, vdi.id_image, '.
-
 
179
                  'vdi.nom_sel, '.
-
 
180
                  'vdi.nom_referentiel, vdi.nom_ret, vdi.nom_ret_nn, vdi.nt, vdi.famille, '.
-
 
181
                  'vdi.zone_geo, vdi.latitude, vdi.longitude, '. 
-
 
182
                  'vdi.date_observation, vdi.date_creation, vdi.date_transmission, '. 
-
 
183
                  'vdi.mots_cles_texte as mots_cles_texte, '.  
-
 
184
                  'vdi.i_mots_cles_texte as mots_cles_texte_image, '.  
-
 
185
                  
-
 
186
                  'vdi.ce_utilisateur as ce_utilisateur, '.
-
 
187
                  'vdi.prenom_utilisateur, vdi.courriel_utilisateur, vdi.nom_utilisateur, vdi.nom_original as nom_image '.  
-
 
188
 
-
 
189
                  'FROM v_del_image as vdi '.
-
 
190
                  'WHERE vdi.id_image IN (%s) '.
-
 
191
                  '', implode(',', $ids)));
-
 
192
 
-
 
193
          // regroupe les données par id_image
-
 
194
          $img_data = array();
-
 
195
          foreach ($resultats as $img) {
-
 
196
            $id = $img['id_image'];
-
 
197
            $img_data[$id] = $img;
-
 
198
          }
-
 
199
          return $img_data;
169
	}
200
        }
170
	
201
 
171
	/**
202
	/**
172
	* Retourner un tableau d'images formaté en fonction des liaisons trouvées
203
	* Retourner un tableau d'images formaté en fonction des liaisons trouvées
173
	* @param $liaisons les liaisons de la table del_obs_images
204
	* @param $liaisons les liaisons de la table del_obs_images
Line 174... Line 205...
174
	* */
205
	* */
175
	private function regrouperObs(&$liaisons) {
206
	private function regrouperObs(&$liaisons, &$imgdatas) {
176
 
207
 
177
          // regroupe les observations
208
          // regroupe les observations
-
 
209
          $obs = array();
Line -... Line 210...
-
 
210
          foreach ($liaisons as $img) {
-
 
211
            $idobs = $img['id_observation'];
178
          $obs = array();
212
            $idimg = $img['id_image'];
179
          foreach ($liaisons as $img) {
213
 
180
            $idobs = $img['id_observation'];
214
            $imgdata = $imgdatas[$idimg];
Line 181... Line 215...
181
 
215
 
182
            if (!isset($obs[$idobs])) {
216
            if (!isset($obs[$idobs])) {
183
              $obs[$idobs] = array();
217
              $obs[$idobs] = array();
184
            }
218
            }
185
 
219
 
Line 186... Line 220...
186
            $obs[$idobs]['id_observation'] = $idobs;
220
            $obs[$idobs]['id_observation'] = $idobs;
Line 187... Line 221...
187
            $obs[$idobs]['auteur_id'] = $img['ce_utilisateur'];
221
            $obs[$idobs]['auteur_id'] = $imgdata['ce_utilisateur'];
188
            $obs[$idobs]['auteur_prenom'] = $img['prenom_utilisateur'];
222
            $obs[$idobs]['auteur_prenom'] = $imgdata['prenom_utilisateur'];
189
            $obs[$idobs]['auteur_nom'] = $img['nom_utilisateur'];
223
            $obs[$idobs]['auteur_nom'] = $imgdata['nom_utilisateur'];
190
            $obs[$idobs]['auteur_courriel'] = $img['courriel_utilisateur'];
224
            $obs[$idobs]['auteur_courriel'] = $imgdata['courriel_utilisateur'];
Line 191... Line 225...
191
 
225
 
192
            $obs[$idobs]['mots_cles_obs_cel'] = $this->formaterMotsClesCel($img['mots_cles_texte']);
226
            $obs[$idobs]['mots_cles_obs_cel'] = $this->formaterMotsClesCel($imgdata['mots_cles_texte']);
193
            
227
            
194
            $obs[$idobs]['date_observation'] = $img['date_observation'];
228
            $obs[$idobs]['date_observation'] = $imgdata['date_observation'];
195
            $obs[$idobs]['date_publication'] = $img['date_transmission'];
229
            $obs[$idobs]['date_publication'] = $imgdata['date_transmission'];
196
            $obs[$idobs]['date_creation'] = $img['date_creation'];
230
            $obs[$idobs]['date_creation'] = $imgdata['date_creation'];
197
            $obs[$idobs]['date_changement'] = $img['modif_date'];
231
            $obs[$idobs]['date_changement'] = $img['modif_date'];
198
 
232
 
199
            $obs[$idobs]['nom_sel'] = $img['nom_sel'];
233
            $obs[$idobs]['nom_sel'] = $imgdata['nom_sel'];
200
            $obs[$idobs]['nom_referentiel'] = $img['nom_referentiel'];
234
            $obs[$idobs]['nom_referentiel'] = $imgdata['nom_referentiel'];
Line 201... Line 235...
201
            $obs[$idobs]['nom_ret'] = $img['nom_ret'];
235
            $obs[$idobs]['nom_ret'] = $imgdata['nom_ret'];
202
            $obs[$idobs]['nn'] = $img['nom_ret_nn'];
236
            $obs[$idobs]['nn'] = $imgdata['nom_ret_nn'];
203
            $obs[$idobs]['nt'] = $img['nt'];
237
            $obs[$idobs]['nt'] = $imgdata['nt'];
Line 204... Line 238...
204
            $obs[$idobs]['famille'] = $img['famille'];
238
            $obs[$idobs]['famille'] = $imgdata['famille'];
205
 
239
 
206
            $obs[$idobs]['zone_geo'] = $img['zone_geo'];
240
            $obs[$idobs]['zone_geo'] = $imgdata['zone_geo'];
207
            $obs[$idobs]['latitude'] = floatval($img['latitude']);
241
            $obs[$idobs]['latitude'] = floatval($imgdata['latitude']);
208
            $obs[$idobs]['longitude'] = floatval($img['longitude']);
242
            $obs[$idobs]['longitude'] = floatval($imgdata['longitude']);
209
            
243
            
210
 
244
 
211
            if (!isset($obs[$idobs]['images'])) {
245
            if (!isset($obs[$idobs]['images'])) {
212
              $obs[$idobs]['images'] = array();
246
              $obs[$idobs]['images'] = array();
213
            }
247
            }
Line 214... Line 248...
214
 
248
 
Line 287... Line 321...
287
	*  @param $chaineMotCleCel la chaine de mots clés du cel
321
	*  @param $chaineMotCleCel la chaine de mots clés du cel
288
	*  @return string la chaine filtrée
322
	*  @return string la chaine filtrée
289
	* */
323
	* */
290
	private function formaterMotsClesCel($chaineMotCleCel) {
324
	private function formaterMotsClesCel($chaineMotCleCel) {
Line 291... Line -...
291
 
-
 
292
 
325
 
Line 293... Line 326...
293
          $mots_cles_cel_affiches = "fleur,fleurs,feuille,feuilles,ecorce,fruit,fruits,port,plantnet,plantscan_new";
326
          $mots_cles_cel_affiches = "fleur,fleurs,feuille,feuilles,ecorce,fruit,fruits,port,plantnet,plantscan_new";
294
 
327
 
295
 
328
 
Line -... Line 329...
-
 
329
          $result = array_intersect(
-
 
330
                                 explode(',', $mots_cles_cel_affiches), // $tabMotsClesAffiches
-
 
331
                                 explode(',', $chaineMotCleCel)); // $tabMotsClesCel
296
          $result = array_intersect(
332
 
-
 
333
          if (count($result) === 0) {
297
                                 explode(',', $mots_cles_cel_affiches), // $tabMotsClesAffiches
334
            return array();
Line 298... Line 335...
298
                                 explode(',', $chaineMotCleCel)); // $tabMotsClesCel
335
          }