Line 75... |
Line 75... |
75 |
// del/services/0.1/images?navigation.depart=0&navigation.limite=12&tri=votes&ordre=desc
|
75 |
// del/services/0.1/images?navigation.depart=0&navigation.limite=12&tri=votes&ordre=desc
|
76 |
// del/services/0.1/images?navigation.depart=0&navigation.limite=12&tri=votes&ordre=desc&masque=plop
|
76 |
// del/services/0.1/images?navigation.depart=0&navigation.limite=12&tri=votes&ordre=desc&masque=plop
|
77 |
// del/services/0.1/images?navigation.depart=0&navigation.limite=12&tri=votes&ordre=desc&protocole=3
|
77 |
// del/services/0.1/images?navigation.depart=0&navigation.limite=12&tri=votes&ordre=desc&protocole=3
|
78 |
// del/services/0.1/images?navigation.depart=0&navigation.limite=12&tri=votes&ordre=desc&protocole=3&masque=plop
|
78 |
// del/services/0.1/images?navigation.depart=0&navigation.limite=12&tri=votes&ordre=desc&protocole=3&masque=plop
|
Line 79... |
Line 79... |
79 |
|
79 |
|
Line 80... |
Line 80... |
80 |
class ListeImages2 {
|
80 |
class ListeImages {
|
81 |
|
81 |
|
Line 82... |
Line 82... |
82 |
// TODO: PHP-x.y, ces variables devrait être des "const"
|
82 |
// TODO: PHP-x.y, ces variables devrait être des "const"
|
Line 164... |
Line 164... |
164 |
|
164 |
|
165 |
/* filtrage des tags + sémantique des valeurs multiples:
|
165 |
/* filtrage des tags + sémantique des valeurs multiples:
|
166 |
Lorsqu'on utilise masque.tag* pour chercher des tags, ils sont
|
166 |
Lorsqu'on utilise masque.tag* pour chercher des tags, ils sont
|
167 |
postulés comme séparés par des virgule, et l'un au moins des tags doit matcher. */
|
167 |
postulés comme séparés par des virgule, et l'un au moins des tags doit matcher. */
|
- |
|
168 |
$params_pf['masque.tag_cel'] = DelTk::buildTagsAST(@$parametres['masque.tag_cel'], 'OR', ',');
|
- |
|
169 |
|
- |
|
170 |
|
- |
|
171 |
if(!isset($parametres['masque.tag_pictoflora']) && isset($parametres['masque.tag'])) {
|
- |
|
172 |
$parametres['masque.tag_pictoflora'] = $parametres['masque.tag'];
|
168 |
$params_pf['masque.tag_cel'] = DelTk::buildTagsAST(@$parametres['masque.tag_cel'], 'OR', ',');
|
173 |
}
|
Line 169... |
Line 174... |
169 |
$params_pf['masque.tag_pictoflora'] = DelTk::buildTagsAST(@$parametres['masque.tag_pictoflora'], 'OR', ',');
|
174 |
$params_pf['masque.tag_pictoflora'] = DelTk::buildTagsAST(@$parametres['masque.tag_pictoflora'], 'OR', ',');
|
170 |
|
175 |
|
171 |
$params = array_merge(
|
176 |
$params = array_merge(
|
172 |
DelTk::$default_params, // paramètre par défaut Identiplante
|
177 |
DelTk::$default_params, // paramètre par défaut Identiplante
|
173 |
self::$default_params, // paramètres par défaut PictoFlora
|
178 |
self::$default_params, // paramètres par défaut PictoFlora
|
Line 174... |
Line 179... |
174 |
$params_ip, // les paramètres passés, traités par Identiplante
|
179 |
$params_ip, // les paramètres passés, traités par Identiplante
|
175 |
$params_pf); // les paramètres passés, traités par PictoFlora
|
- |
|
176 |
|
180 |
$params_pf); // les paramètres passés, traités par PictoFlora
|
- |
|
181 |
|
Line 177... |
Line 182... |
177 |
// XXX: temp tweak
|
182 |
if(isset($parametres['format'])) {
|
178 |
/* $this->conteneur->setParametre('url_images', sprintf($this->conteneur->getParametre('images.url_images'),
|
183 |
$params['format'] = $parametres['format'];
|
179 |
"%09d", $params['format']));*/
|
184 |
}
|
180 |
|
185 |
|
Line 207... |
Line 212... |
207 |
// idobs est une liste (toujours ordonnée) des id d'observations recherchées
|
212 |
// idobs est une liste (toujours ordonnée) des id d'observations recherchées
|
208 |
$idobs = array_values(array_map(create_function('$a', 'return $a["id_image"];'), $idobs_tab));
|
213 |
$idobs = array_values(array_map(create_function('$a', 'return $a["id_image"];'), $idobs_tab));
|
209 |
$total = $db->recuperer('SELECT FOUND_ROWS() AS c'); $total = intval($total['c']);
|
214 |
$total = $db->recuperer('SELECT FOUND_ROWS() AS c'); $total = intval($total['c']);
|
Line 210... |
Line 215... |
210 |
|
215 |
|
211 |
$liaisons = self::chargerImages($db, $idobs);
|
- |
|
212 |
|
216 |
$liaisons = self::chargerImages($db, $idobs);
|
213 |
/*
|
217 |
/*
|
214 |
// Q&D
|
218 |
// Q&D
|
215 |
$images = array();
|
219 |
$images = array();
|
216 |
$o = new Observation($this->conteneur);
|
220 |
$o = new Observation($this->conteneur);
|
Line 221... |
Line 225... |
221 |
list($images, $images_keyed_by_id_image) = self::reformateImagesDoubleIndex(
|
225 |
list($images, $images_keyed_by_id_image) = self::reformateImagesDoubleIndex(
|
222 |
$liaisons,
|
226 |
$liaisons,
|
223 |
$this->conteneur->getParametre('images.url_images'),
|
227 |
$this->conteneur->getParametre('images.url_images'),
|
224 |
$params['format']);
|
228 |
$params['format']);
|
Line 225... |
Line -... |
225 |
|
- |
|
226 |
|
229 |
|
227 |
// on charge les votes pour ces images et pour *tous* les protocoles
|
230 |
// on charge les votes pour ces images et pour *tous* les protocoles
|
Line 228... |
Line 231... |
228 |
$votes = Observation::chargerVotesImage($db, $liaisons, NULL);
|
231 |
$votes = Observation::chargerVotesImage($db, $liaisons, NULL);
|
229 |
|
232 |
|
Line 433... |
Line 436... |
433 |
" HAVING GROUP_CONCAT(tag_normalise ORDER BY tag_normalise) REGEXP %s",
|
436 |
" HAVING GROUP_CONCAT(tag_normalise ORDER BY tag_normalise) REGEXP %s",
|
434 |
$db->proteger(implode('.*', $p['masque.tag_pictoflora']['AND']))));
|
437 |
$db->proteger(implode('.*', $p['masque.tag_pictoflora']['AND']))));
|
Line 435... |
Line 438... |
435 |
|
438 |
|
436 |
// puis:
|
439 |
// puis:
|
- |
|
440 |
$ids = @array_map(create_function('$e', 'return $e["ce_image"];'), $ids);
|
437 |
$ids = @array_map(create_function('$e', 'return $e["ce_image"];'), $ids);
|
441 |
$ids = !empty($ids) ? implode(',', $ids) : 'SELECT ce_image FROM del_image_tag WHERE false';
|
Line 438... |
Line 442... |
438 |
if($ids) $req['where'][] = sprintf("vdi.id_image IN (%s)", implode(',', $ids));
|
442 |
$req['where'][] = sprintf("vdi.id_image IN (%s)", $ids);
|
439 |
|
443 |
|
440 |
}
|
444 |
}
|
441 |
else {
|
445 |
else {
|
442 |
$ids = @$db->recupererTous(sprintf(
|
446 |
$ids = @$db->recupererTous(sprintf(
|
443 |
"SELECT ce_image FROM del_image_tag WHERE actif = 1".
|
447 |
"SELECT ce_image FROM del_image_tag WHERE actif = 1".
|
444 |
" GROUP BY ce_image".
|
448 |
" GROUP BY ce_image".
|
Line 445... |
Line 449... |
445 |
" HAVING GROUP_CONCAT(tag_normalise) REGEXP %s",
|
449 |
" HAVING GROUP_CONCAT(tag_normalise) REGEXP %s",
|
- |
|
450 |
$db->proteger(implode('|', $p['masque.tag_pictoflora']['OR']))));
|
446 |
$db->proteger(implode('|', $p['masque.tag_pictoflora']['OR']))));
|
451 |
|
447 |
|
452 |
$ids = @array_map(create_function('$e', 'return $e["ce_image"];'), $ids);
|
448 |
$ids = @array_map(create_function('$e', 'return $e["ce_image"];'), $ids);
|
453 |
$ids = !empty($ids) ? implode(',', $ids) : 'SELECT ce_image FROM del_image_tag WHERE false';
|
Line 449... |
Line 454... |
449 |
if($ids) $req['where'][] = sprintf("vdi.id_image IN (%s)", implode(',', $ids));
|
454 |
$req['where'][] = sprintf("vdi.id_image IN (%s)", $ids);
|
450 |
}
|
455 |
}
|
Line 466... |
Line 471... |
466 |
$req['groupby'] ? ('GROUP BY ' . implode(', ', array_unique($req['groupby']))) : '',
|
471 |
$req['groupby'] ? ('GROUP BY ' . implode(', ', array_unique($req['groupby']))) : '',
|
Line 467... |
Line 472... |
467 |
|
472 |
|
Line 468... |
Line 473... |
468 |
$req['orderby'],
|
473 |
$req['orderby'],
|
469 |
|
- |
|
470 |
$p['navigation.depart'], $p['navigation.limite'], __FILE__ . ':' . __LINE__));
|
474 |
|
Line 471... |
Line 475... |
471 |
|
475 |
$p['navigation.depart'], $p['navigation.limite'], __FILE__ . ':' . __LINE__));
|
472 |
}
|
476 |
}
|
473 |
|
477 |
|