Line 197... |
Line 197... |
197 |
* Si un des paramètres est absent, il prendre la valeur *
|
197 |
* Si un des paramètres est absent, il prendre la valeur *
|
198 |
*/
|
198 |
*/
|
199 |
public function getElementExport($param) {
|
199 |
public function getElementExport($param) {
|
200 |
// Initialisation des variables
|
200 |
// Initialisation des variables
|
201 |
$info = array();
|
201 |
$info = array();
|
202 |
$p = $this->traiterParametresUrl(array("ref","version","champs","filtre"), $param, false);
|
202 |
$p = $this->traiterParametresUrl(array("ref","version","champs","filtre", "encodage"), $param, false);
|
203 |
$ref = $p['ref'].'_v'.$p['version'];
|
203 |
$ref = $p['ref'].'_v'.$p['version'];
|
204 |
$racine_tmp = $this->config['chemins']['chemin_tmp'];
|
204 |
$racine_tmp = $this->config['chemins']['chemin_tmp'];
|
205 |
$dossier = $racine_tmp.date('Y_m_d').'/';
|
205 |
$dossier = $racine_tmp.date('Y_m_d').'/';
|
206 |
if(!is_dir($dossier)){
|
206 |
if(!is_dir($dossier)){
|
207 |
mkdir($dossier);
|
207 |
mkdir($dossier);
|
Line 212... |
Line 212... |
212 |
$champs = $this->formaterColonnes($p['champs'], $ref);
|
212 |
$champs = $this->formaterColonnes($p['champs'], $ref);
|
213 |
$requete = 'SELECT "'.implode('","', $champs['titre']).'" UNION (SELECT '.implode(', ',$champs['select']).
|
213 |
$requete = 'SELECT "'.implode('","', $champs['titre']).'" UNION (SELECT '.implode(', ',$champs['select']).
|
214 |
" INTO OUTFILE '".$fichier."' CHARACTER SET utf8 FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n' ".
|
214 |
" INTO OUTFILE '".$fichier."' CHARACTER SET utf8 FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\n' ".
|
215 |
" FROM $ref a left join $ref b on b.num_nom=a.num_nom_retenu";
|
215 |
" FROM $ref a left join $ref b on b.num_nom=a.num_nom_retenu";
|
Line -... |
Line 216... |
- |
|
216 |
|
216 |
|
217 |
|
217 |
if (isset($p['filtre']) && $p['filtre'] != "*") {
|
218 |
if (isset($p['filtre']) && $p['filtre'] != "*") {
|
218 |
$param_filtres = explode(",",$p["filtre"]);
|
219 |
$param_filtres = explode(",",$p["filtre"]);
|
219 |
$dernier_filtre = array_pop($param_filtres);
|
220 |
$dernier_filtre = array_pop($param_filtres);
|
- |
|
221 |
$filtres = array("nnr"=>"a.num_nom = a.num_nom_retenu", "pre" => "a.presence = 'P'");
|
220 |
$filtres = array("nnr"=>"a.num_nom = a.num_nom_retenu", "pre" => "a.presence = 'P'");
|
222 |
if ($dernier_filtre != '' && $dernier_filtre != '*') {
|
221 |
if (!isset($filtres[$dernier_filtre])) { // si il s'agit du filtre famille
|
223 |
if (!isset($filtres[$dernier_filtre])) {// si il s'agit du filtre famille
|
222 |
$filtres["fam"] = "a.famille = '".$dernier_filtre."'";
|
224 |
$filtres["fam"] = "a.famille = '".$dernier_filtre."'";
|
- |
|
225 |
$dernier_filtre = "fam";
|
- |
|
226 |
}
|
223 |
$dernier_filtre = "fam";
|
227 |
array_push($param_filtres, $dernier_filtre);
|
224 |
}
|
- |
|
- |
|
228 |
}
|
225 |
array_push($param_filtres, $dernier_filtre);
|
229 |
|
226 |
$requete .= " WHERE ".implode(" AND ",array_intersect_key($filtres, array_flip($param_filtres)));
|
230 |
$requete .= " WHERE ".implode(" AND ",array_intersect_key($filtres, array_flip($param_filtres)));
|
227 |
}
|
231 |
}
|
228 |
$requete .= ")";
|
232 |
$requete .= ")";
|
229 |
// Récupération des résultats
|
233 |
// Récupération des résultats
|
Line 236... |
Line 240... |
236 |
}
|
240 |
}
|
237 |
} catch (PDOException $e) {
|
241 |
} catch (PDOException $e) {
|
238 |
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage()).$requete;
|
242 |
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage()).$requete;
|
239 |
}
|
243 |
}
|
240 |
}
|
244 |
}
|
- |
|
245 |
|
Line 241... |
Line 246... |
241 |
|
246 |
|
242 |
return $fichier;
|
247 |
return $fichier;
|
Line -... |
Line 248... |
- |
|
248 |
}
|
243 |
}
|
249 |
|
244 |
|
250 |
|
245 |
private function formaterColonnes($colonnes, $ref) {
|
251 |
private function formaterColonnes($colonnes, $ref) {
|
246 |
$colonnesOrdonnees = array("nn" => array("a.num_nom", "num_nom", "Numéro nomenclatural"),
|
252 |
$colonnesOrdonnees = array("nn" => array("a.num_nom", "num_nom", "Numéro nomenclatural"),
|
247 |
"nr" => array("a.num_nom_retenu", "num_nom_retenu", "Numéro nomenclatural du nom retenu"),
|
253 |
"nr" => array("a.num_nom_retenu", "num_nom_retenu", "Numéro nomenclatural du nom retenu"),
|
Line 276... |
Line 282... |
276 |
"stcult" => array("a.statut_culture", "statut_culture", "Statut de culture"),
|
282 |
"stcult" => array("a.statut_culture", "statut_culture", "Statut de culture"),
|
277 |
"notes" => array("a.notes", "notes", "Remarques"),
|
283 |
"notes" => array("a.notes", "notes", "Remarques"),
|
278 |
"nomadd" => array("a.nom_addendum", "nom_addendum", "Commentaires nomenclaturaux"),
|
284 |
"nomadd" => array("a.nom_addendum", "nom_addendum", "Commentaires nomenclaturaux"),
|
279 |
"nsr" => array("b.nom_sci as nom_sci_retenu", "nom_sci", "Nom retenu sans auteur"),
|
285 |
"nsr" => array("b.nom_sci as nom_sci_retenu", "nom_sci", "Nom retenu sans auteur"),
|
280 |
"hom" => array("a.homonyme", "homonyme", "Homonymie"),
|
286 |
"hom" => array("a.homonyme", "homonyme", "Homonymie"),
|
- |
|
287 |
"syn" => array("CASE a.num_nom_retenu WHEN a.num_nom THEN 'retenu'
|
- |
|
288 |
WHEN '' THEN 'ambigu'
|
- |
|
289 |
ELSE 'synonyme' END AS synonymie", "num_nom_retenu", "Statut du nom" ),
|
281 |
"synprop" => array("a.synonyme_proparte", "synonyme_proparte", "Synonyme proprate"),
|
290 |
"synprop" => array("a.synonyme_proparte", "synonyme_proparte", "Synonyme proprate"),
|
282 |
"syndout" => array("a.synonyme_douteux", "synonyme_douteux", "Synonyme douteux"),
|
291 |
"syndout" => array("a.synonyme_douteux", "synonyme_douteux", "Synonyme douteux"),
|
283 |
"synmapp" => array("a.synonyme_mal_applique", "synonyme_mal_applique", "Synonyme mal appliqué"),
|
292 |
"synmapp" => array("a.synonyme_mal_applique", "synonyme_mal_applique", "Synonyme mal appliqué"),
|
284 |
"synorth" => array("a.synonyme_orthographique", "synonyme_orthographique", "Synonyme orthographique"),
|
293 |
"synorth" => array("a.synonyme_orthographique", "synonyme_orthographique", "Synonyme orthographique"),
|
285 |
"orthori" => array("a.orthographe_originelle", "orthographe_originelle", "Orthographe originelle"),
|
294 |
"orthori" => array("a.orthographe_originelle", "orthographe_originelle", "Orthographe originelle"),
|