333,14 → 333,14 |
// le cast en string des nombres permet d'unifier le parsing du retour |
// car il n'est destiné qu'à être affiché |
$retour = array( |
'import_obs_ajoutees' => (string)$obs_ajouts, |
'import_images_ajoutees' => (string)$nb_images_ajoutees, |
'import_mots_cles_ajoutes' => (string)$nb_mots_cle_ajoutes, |
'import_obs_ajoutees' => (string)$obs_ajouts, |
'import_images_ajoutees' => (string)$nb_images_ajoutees, |
'import_mots_cles_ajoutes' => (string)$nb_mots_cle_ajoutes, |
'import_colonnes_non_traitees' => implode(', ', $filtre->exclues) |
); |
// Ajout d'éventuelles erreurs |
if ($this->bilan) { |
$retour += array('import_erreurs' => implode("\n", $this->bilan) . "\n"); |
if ($this->bilan) { |
$retour += array('import_erreurs' => implode("\n", $this->bilan) . "\n"); |
} |
// Dans le cas où le client ne sait pas lire le retour d'upload |
// on stocke les stats en session pour les appeler plus tard |
352,20 → 352,20 |
die(); |
} |
|
public function getElement($uid) { |
public function getElement($uid) { |
if($uid[0] == "template") { |
|
$tpl_dir = dirname(__FILE__).DIRECTORY_SEPARATOR.'squelettes'.DIRECTORY_SEPARATOR; |
$tpl = $tpl_dir.'modele_import.xls'; |
|
$lecteur = PHPExcel_IOFactory::createReaderForFile($tpl); |
$classeur_tpl = $lecteur->load($tpl); |
$lecteur = PHPExcel_IOFactory::createReaderForFile($tpl); |
$classeur_tpl = $lecteur->load($tpl); |
$feuille_tpl = $classeur_tpl->getActiveSheet(); |
|
// Détection de la dernière colonne pour connaitre la position d'ajout des champs étendus |
// Si un groupe est demandé |
$lettre_colonne_max = $feuille_tpl->getHighestColumn(); |
$nb_colonne_max = PHPExcel_Cell::columnIndexFromString($lettre_colonne_max); |
$nb_colonne_max = PHPExcel_Cell::columnIndexFromString($lettre_colonne_max); |
$ligne = 1; |
$nb_colonne_en_cours = $nb_colonne_max; |
|
381,7 → 381,7 |
$champ_obl = $feuille_tpl->getCell($lettre_colonne.$ligne)->getValue(); |
|
if(!empty($descriptions[$champ_obl])) { |
$feuille_tpl->getComment($lettre_colonne.$ligne)->getText()->createTextRun($descriptions[$champ_obl]); |
$feuille_tpl->getComment($lettre_colonne.$ligne)->getText()->createTextRun($descriptions[$champ_obl]); |
$feuille_tpl->getComment($lettre_colonne.$ligne)->setWidth(400); |
} |
} |
395,11 → 395,11 |
foreach($champs as $champ) { |
$lettre_colonne = PHPExcel_Cell::stringFromColumnIndex($nb_colonne_en_cours); |
// Les champs étendus sont préfixés par "ext:" pour ne pas être ignoré lors d'un import |
// l'import ignore les noms de colonnes qu'il ne connait pas |
// l'import ignore les noms de colonnes qu'il ne connait pas |
$feuille_tpl->setCellValue($lettre_colonne.$ligne, 'ext:'.$champ['champ']); |
// Ajout de la description dans le commentaire si elle est présente |
if(!empty($descriptions[$champ['champ']])) { |
$feuille_tpl->getComment($lettre_colonne.$ligne)->getText()->createTextRun($descriptions[$champ['champ']]); |
$feuille_tpl->getComment($lettre_colonne.$ligne)->getText()->createTextRun($descriptions[$champ['champ']]); |
$feuille_tpl->getComment($lettre_colonne.$ligne)->setWidth(400); |
} |
|
409,10 → 409,10 |
} |
|
// Seul le format xlsx permet l'association de commentaires de colonnes dans PHPExcel |
// C'est triste mais bon mais c'est trop pratique pour qu'on s'en passe |
header('Content-type: application/vnd.ms-excel'); |
header('Content-Disposition: attachment; filename="'.$nom_fichier.'.xlsx"'); |
$generateur = PHPExcel_IOFactory::createWriter($classeur_tpl, 'Excel2007'); |
// C'est triste mais bon mais c'est trop pratique pour qu'on s'en passe |
header('Content-type: application/vnd.ms-excel'); |
header('Content-Disposition: attachment; filename="'.$nom_fichier.'.xlsx"'); |
$generateur = PHPExcel_IOFactory::createWriter($classeur_tpl, 'Excel2007'); |
$generateur->save('php://output'); |
|
exit; |
437,16 → 437,16 |
return $descriptions; |
} |
|
public function getRessource() { |
return self::getStatsDernierUpload(); |
public function getRessource() { |
return self::getStatsDernierUpload(); |
} |
|
|
static function getStatsDernierUpload() { |
// renvoi des statistiques du dernier envoi de fichier |
// renvoi des statistiques du dernier envoi de fichier |
$stats = !empty($_SESSION['upload_stats']) ? $_SESSION['upload_stats'] : null; |
header("Content-Type: application/json; charset=utf-8"); |
echo json_encode($stats); |
die(); |
echo json_encode($stats); |
die(); |
} |
|
/* detectionEntete() sert deux rôles: |
1131,7 → 1131,7 |
$cle = $label; |
|
if (!empty($cle) && !empty($valeur)) { |
$champ_etendu_a_inserer = new ChampEtendu(); |
$champ_etendu_a_inserer = new ObsEtendue(); |
$champ_etendu_a_inserer->id = $id_obs; |
$champ_etendu_a_inserer->cle = $cle; |
$champ_etendu_a_inserer->valeur = $valeur; |