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; |
} |
|
} |
?> |