Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2190 Rev 2250
Line 106... Line 106...
106
		unset($criteres['debut']);
106
		unset($criteres['debut']);
107
		unset($criteres['format']);
107
		unset($criteres['format']);
108
		unset($criteres['colonnes']);
108
		unset($criteres['colonnes']);
Line 109... Line 109...
109
		
109
		
110
		$nb_observations = $chercheur_observations->compterObservations(null, $criteres);
110
		$nb_observations = $chercheur_observations->compterObservations(null, $criteres);
Line 111... Line 111...
111
		$limite_decoupage = $this->calculerNbLignesMaxParFichier();
111
		$limite_decoupage = $this->calculerNbLignesMaxParFichier(explode(',', $colonnes));
112
		
112
		
Line 113... Line 113...
113
		$url_telechargements = array();
113
		$url_telechargements = array();
Line 126... Line 126...
126
		} while($nb_observations > 0);
126
		} while($nb_observations > 0);
Line 127... Line 127...
127
		
127
		
128
		$this->envoyerJson($url_telechargements);
128
		$this->envoyerJson($url_telechargements);
Line 129... Line 129...
129
	}
129
	}
130
	
130
	
-
 
131
	private function calculerNbLignesMaxParFichier($colonnes) {
-
 
132
		$limite = $this->limite_decoupage_defaut;		
-
 
133
		// TODO: gérer une réduction du nombre de ligne max différement suivant chaque colonne
-
 
134
		// demandée, car elles n'impactent pas toutes le temps de d'export de la même manière. 
131
	private function calculerNbLignesMaxParFichier() {
135
		$facteur_reduction = count($colonnes) <= 2 ? 1 :  pow(0.85, count($colonnes) - 2);
132
		$limite = $this->limite_decoupage_defaut;
136
		
133
		switch($this->format) {
137
		switch($this->format) {
134
			case 'csv':
138
			case 'csv':
135
				$limite = 20000;
139
				$limite = 20000;
Line 139... Line 143...
139
				break;
143
				break;
140
			case 'pdf':
144
			case 'pdf':
141
				$limite = 300;
145
				$limite = 300;
142
				break;
146
				break;
143
		}
147
		}
-
 
148
 
144
		return $limite;
149
		return $limite * $facteur_reduction;
145
	}
150
	}
Line 146... Line 151...
146
	
151
	
147
	private function getExport() {
152
	private function getExport() {
148
		$criteres = $this->traiterParametresAutorises($_GET);
153
		$criteres = $this->traiterParametresAutorises($_GET);