Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3133 → Rev 3134

/trunk/jrest/services/CelWidgetExport.php
65,6 → 65,7
'colonnes' => 'colonnes',
'transmission' => 'transmission',
'obsids' => 'obsids',
'standard' => 'standard',
);
private $limite_decoupage_defaut = 9000;
102,8 → 103,11
private function getCalcul() {
$criteres = $this->traiterParametresAutorises($_GET);
$criteres['transmission'] = 1;
if (!isset($criteres['standard'])) {
$criteres['transmission'] = 1;
} else {
unset($criteres['transmission']);
}
// Définit si l'on exporte les obs privées ainsi que les champs étendus privés
$this->export_prive = $this->doitEtPeutExporterObsPrivees($criteres);
if($this->export_prive) {
110,10 → 114,14
unset($criteres['transmission']);
$this->id_utilisateur = $criteres['id_utilisateur'];
}
$chercheur_observations = new RechercheObservationExport($this->config);
if (isset($criteres['standard']) && $criteres['standard'] == 1) {
$chercheur_observations = new RechercheObservationExport($this->config);
} else {
$chercheur_observations = new RechercheObservation($this->config);
}
$numero_page = isset($criteres['debut']) ? $criteres['debut'] : 0;
$limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
$colonnes = @FormateurGroupeColonne::colGroupsValidation($criteres['colonnes']);
$colonnes = @FormateurGroupeColonne::colGroupsValidation($criteres['colonnes'], $criteres['programme']);
unset($criteres['limite']);
unset($criteres['debut']);
166,7 → 174,11
if(!$criteres) die('erreur: pas de paramètre reçu');
if(!in_array($this->format, array('pdf','csv','xls'))) die('erreur: format invalide');
//$criteres['transmission'] = 1;
if (!isset($criteres['standard'])) {
$criteres['transmission'] = 1;
} else {
unset($criteres['transmission']);
}
// Définit si l'on exporte les obs privées ainsi que les champs étendus privés
$this->export_prive = $this->doitEtPeutExporterObsPrivees($criteres);
if($this->export_prive) {
173,8 → 185,11
//unset($criteres['transmission']);
$this->id_utilisateur = $criteres['ce_utilisateur'];
}
$chercheur_observations = new RechercheObservationExport($this->config);
if (isset($criteres['standard']) && $criteres['standard'] == 1) {
$chercheur_observations = new RechercheObservationExport($this->config);
} else {
$chercheur_observations = new RechercheObservation($this->config);
}
$debut = isset($criteres['debut']) ? intval($criteres['debut']) : 0;
$limite = isset($criteres['limite']) ? intval($criteres['limite']) : 0;
$groupes = @FormateurGroupeColonne::colGroupsValidation($criteres['colonnes']);
243,7 → 258,6
$parametres_traites[$this->parametres_autorises[$cle]] = $valeur;
}
}
$parametres_traites['obsids'] = @self::traiterObsIds($parametres['obsids']);
return $parametres_traites;
}
357,32 → 371,6
return ! empty($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;
}
 
}
?>