Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1678 → Rev 1679

/trunk/jrest/services/CelWidgetExport.php
53,7 → 53,8
'limite' => 'limite',
'format' => 'format',
'colonnes' => 'colonnes',
'transmission' => 'transmission'
'transmission' => 'transmission',
'obsids' => 'obsids',
);
private $limite_decoupage_defaut = 9000;
152,16 → 153,20
}
$chercheur_observations = new RechercheObservation($this->config);
$debut = isset($criteres['debut']) ? $criteres['debut'] : 0;
$limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
$debut = isset($criteres['debut']) ? intval($criteres['debut']) : 0;
$limite = isset($criteres['limite']) ? intval($criteres['limite']) : 0;
$colonnes = isset($criteres['colonnes']) ? $criteres['colonnes'] : 'standard,avance';
 
if($criteres['obsids']) $criteres['sql_brut'] = sprintf('id_observation IN (%s)',
implode(',', $criteres['obsids']));
unset($criteres['limite']);
unset($criteres['debut']);
unset($criteres['format']);
unset($criteres['colonnes']);
$observations = $chercheur_observations->rechercherObservations(null, $criteres, $debut, $limite)->get();
unset($criteres['obsids']);
 
$observations = $chercheur_observations->rechercherObservations(null, $criteres, $debut, $limite, TRUE)->get();
$ids = array();
foreach($observations as &$obs) {
$ids[] = $obs['id_observation'];
200,6 → 205,7
$parametres_traites[$this->parametres_autorises[$cle]] = $valeur;
}
}
$parametres_traites['obsids'] = @self::traiterObsIds($parametres['obsids']);
return $parametres_traites;
}
353,5 → 359,33
$utilisateur['id_utilisateur'] != '' &&
$id_utilisateur == $utilisateur['id_utilisateur'];
}
 
static function traiterObsIds($range_param) {
if (!isset($range_param)) return NULL;
// trim() car: `POST http://url<<<"range=*"`
if (trim($range_param) == '*') return NULL;
return self::rangeToList(trim($range_param));
}
 
/*
* @param $fieldSets: un range, eg: 1-5,8,32,58-101
* @return un tableau triƩ, eg: 1,2,3,4,5,8,32,58,...,101
* http://stackoverflow.com/questions/7698664/converting-a-range-or-partial-array-in-the-form-3-6-or-3-6-12-into-an-arra
*/
static function rangeToList($in = '') {
$inSets = explode(',', trim($in, ','));
$outSets = array();
 
foreach($inSets as $inSet) {
list($start,$end) = explode('-', $inSet . '-' . $inSet);
// ignore les ranges trop importants
if($start > 10000000 || $end > 10000000 || abs($start-$end) > 10000) continue;
$outSets = array_merge($outSets,range($start,$end));
}
$outSets = array_unique($outSets);
$outSets = array_filter($outSets, 'is_numeric');
sort($outSets);
return $outSets;
}
}
?>