/branches/v2.23-rouleau/jrest/bibliotheque/GestionMotsClesChemin.php |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/jrest/bibliotheque/GestionMotsClesChemin.php:r2758,2760-2766 |
/branches/v2.23-rouleau/jrest/bibliotheque/Bdd.php |
---|
Property changes: |
Modified: svn:mergeinfo |
Merged /trunk/jrest/bibliotheque/Bdd.php:r2758,2760-2766 |
/branches/v2.23-rouleau/jrest/services/squelettes/modele_import_description_florileges.txt |
---|
New file |
0,0 → 1,23 |
Milieu = Milieux dans lesquels l'espèce est présente sur le site, séparés par des virgules <br />("chemin", "fissures", "haie", "mur", "pelouse", "pied d'arbre", "plate bande") |
adresse = Adresse du site étudié |
dateArretTraitementPhyto = Date d'arrêt des traitements (au format jj/mm/aaaa) |
dateDerniereIntervention = Dernière intervention ("inconnue", "plus de 3 ans", "entre 1 et 3 ans", "moins d'1 an", "au cours du dernier semestre",<br /> "au cours du dernier trimestre", "au cours des 30 derniers jours", "au cours des 7 derniers jours") |
hauteurBatimentAvoisinant = Hauteur des bâtiments avoisinants en mètres ("0", "1", "2", "3", "4", "5 et +") |
hauteurPlante = Hauteur max. (en cm) de la plante |
intensiteGestion = Intensité de gestion ("extensive", "intermédiaire", "intensive") |
itineraireGestion = Description de l'itinéraire de gestion |
latitudeDebutRue = Latitude de début de parcours |
latitudeFinRue = Longitude de début de parcours |
longitudeDebutRue = Latitude de fin de parcours |
longitudeFinRue = Latitude de fin de parcours |
perceptionRiverainMauvaise = Mauvaise perception par les riverains ? ("oui", "non", "inconnue") |
perceptionTechnicien = Perception globale de l'espèce par l'équipe technique ("inconnue", "discrète", "esthétique", "gênante", "envahissante") |
periodiciteTraitementPhyto = Utilisation de produits phytosanitaires ("régulière", "occasionnelle", "rare", "jamais") |
personneFonction = Fonction de l'observateur |
personneService = Service de l'observateur |
personneStructure = Structure de l'observateur |
presenceZoneVegetalise = Présence de zones végétalisés ("nulle", "faible", "moyenne", "importante") |
resistanceTraitementPhyto = Résistance/résilience de l'espèce face aux traitements utilisés sur ce site <br /> ("faible", "intermédiaire", "forte", "très forte", "pas de traitement") |
revetementSol = Revêtement au sol ("asphalte et enrobés", "pavés", "stabilisés, aires sablées", "graviers", "terre") |
typoUrbaine = Typologie Urbaine ("centre ville", "faubourg", "quartier résidentiel", "zone commerciale", "zone d'activités") |
vitesseCroissance = Vitesse de croissance de l'espèce sur ce site ("nulle", "lente", "moyenne", "rapide", "trop rapide") |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/branches/v2.23-rouleau/jrest/services/squelettes/modele_import_description_sauvages.txt |
---|
New file |
0,0 → 1,7 |
Station = Nom de la rue étudiée |
coteRue = le (ou les) côté(s) de la rue étudiée ("pair", "impair", "2cotes") |
adresse = Nom de la rue étudiée |
latitudeDebutRue = Latitude de début de rue |
latitudeFinRue = Longitude de début de rue |
longitudeDebutRue = Latitude de fin de rue |
longitudeFinRue = Latitude de fin de rue |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/branches/v2.23-rouleau/jrest/services/squelettes/modele_import_description.txt |
---|
New file |
0,0 → 1,18 |
Espèce = Nom scientifique de l'espèce <br />ou bien chaine au format referentiel:nn:num_tax <br />ou referentiel:nt:num_nom <br />(Ex.: "bdtfx:nn:182") |
Referentiel taxonomique = Code du référentiel taxonomique (bdtfx, isfan, apd, etc...) |
Commune = Nom de la commune |
Identifiant Commune = Code INSEE de la commune (uniquement pour les communes françaises) |
Date = date de l'observation au format jj/mm/aaaa |
Lieu-dit = Toponyme plus précis que la commune, utilisé localement et se trouvant souvent sur les cartes au 1/25 000 |
Station = Station associée à l'observation |
Milieu = Milieu de l'observation (Ex. : "pelouse", "prairie humide") |
Notes = Texte libre |
Latitude = En décimal système WGS84, exemple : 45.666 |
Longitude = En décimal système WGS84, exemple : 3.55 |
Altitude = Altitude en mètres |
Mots Clés = Mots clés à associer à l'observation, séparés par des virgules |
Transmis = 0 ou 1 pour indiquer si l'observation est publique ou privée |
Abondance = Abondance de l'espèce observée (selon l'échelle d'abondance-dominance BRAUN-BLANQUET et al. ou bien texte libre) |
Certitude = Certitude de la détermination ("certain", "douteux", "aDeterminer" ou bien texte libre) |
Phénologie = Stade phénologique de l'espèce observée (code BBCH ou bien texte libre) |
Image(s) = Noms des images préalablement chargées dans le CEL à associer à l'observation, séparés par des virgules |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/branches/v2.23-rouleau/jrest/services/squelettes/modele_import_description_arbres-tetards.txt |
---|
New file |
0,0 → 1,12 |
milieu = Situations correspondants au site, séparées par des virgules <br /> ("séparation de parcelle", "proximité de bâtiment", "plein champ", "jardin de particulier", "bord de cours d'eau",<br /> "bord de chemin", "intégré à une haie", "en forêt", "en zone humide") |
arbreTetardAligneNbre = Nombre d'arbres têtards alignés |
arbreTetardClasseCirconferenceA1m = Classe de circonférence à 1 m du sol (en m) ("0-0,5", "0,5-2", "2-3", "+3") |
arbreTetardEntretientCoupe = Type d’entretien de l'arbre, en précisant la périodicité des coupes ("récente", "ancienne", "non entretenu") |
arbreTetardEtatSanitaire = État sanitaire de l'arbre têtard ("mort", "dépérissant", "bon") |
arbreTetardFormation = Type de formation de l'arbre ou des arbres têtards ("alignement", "isolé") |
arbreTetardHauteurTete = Hauteur de la tête (en m) ("0-1,5", "1,5-3", "+3") |
arbreTetardPresenceCavite = Présence ou non de cavités sur l'arbre ("aucune", "petite", "grande") |
arbreTetardPresenceSp = Présence d'espèces sur l'arbre<br />Vous pouvez éventuellement indiquer des informations du type : Champignons ; Lierre ; Mousses ; Lichens ; Autre plante...<br /> Larve d'insecte saproxylique ; Galerie dans le bois ; Pelote de réjection ; Nid ; Crotte ; Trou |
arbreTetardTailleType = Type de taille ("trogne", "tête de chat", "émonde" ou bien texte libre) |
coordonneelambert93x = Coordonnée x de l'espèce observée au format lambert 93 |
coordonneelambert93y = Coordonnée y de l'espèce observée au format lambert 93 |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |
/branches/v2.23-rouleau/jrest/services/squelettes/modele_import.xls |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/branches/v2.23-rouleau/jrest/services/ImportXLS.php |
---|
349,34 → 349,65 |
public function getElement($uid) { |
if($uid[0] == "template") { |
//$tpl = '/home/aurelien/web/cel_GWT2/jrest/modele_import.xls'; |
$tpl = dirname(__FILE__).DIRECTORY_SEPARATOR.'squelettes'.DIRECTORY_SEPARATOR.'modele_import.xls'; |
//echo $tpl;exit; |
$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); |
$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); |
$ligne = 1; |
$nb_colonne_en_cours = $nb_colonne_max; |
$nb_colonne_en_cours = $nb_colonne_max; |
// Obtention des descriptions de champs communs et spécifiques |
$descriptions = $this->obtenirDescriptions($tpl_dir.'modele_import_description.txt'); |
if(!empty($_GET['groupe'])) { |
$descriptions = $this->obtenirDescriptions($tpl_dir.'modele_import_description_'.$_GET['groupe'].'.txt', $descriptions); |
} |
// Association de la description des champs commun |
for($i = 0; $i < $nb_colonne_max; $i++) { |
$lettre_colonne = PHPExcel_Cell::stringFromColumnIndex($i); |
$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)->setWidth(400); |
} |
} |
$nom_fichier = 'import'; |
// Ajout des colonnes spécifiques si un groupe de champ est demandé |
if(!empty($_GET['groupe'])) { |
$requete = "SELECT * FROM cel_catalogue_champs_etendus_liaison WHERE GROUPE = ".Cel::db()->proteger($_GET['groupe']); |
$requete = "SELECT * FROM cel_catalogue_champs_etendus_liaison WHERE groupe = ".Cel::db()->proteger($_GET['groupe']); |
$champs = Cel::db()->requeter($requete); |
foreach($champs as $champ) { |
$lettre_colonne = PHPExcel_Cell::stringFromColumnIndex($nb_colonne_en_cours); |
$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 |
$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)->setWidth(400); |
} |
$nb_colonne_en_cours++; |
} |
$nom_fichier .= '_'.$_GET['groupe']; |
} |
// 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.'.xls"'); |
$generateur = PHPExcel_IOFactory::createWriter($classeur_tpl, 'Excel5'); |
header('Content-Disposition: attachment; filename="'.$nom_fichier.'.xlsx"'); |
$generateur = PHPExcel_IOFactory::createWriter($classeur_tpl, 'Excel2007'); |
$generateur->save('php://output'); |
exit; |
383,6 → 414,24 |
} |
} |
private function obtenirDescriptions($fichier_description, $descriptions = array()) { |
if(file_exists($fichier_description)) { |
$descs_str = file_get_contents($fichier_description); |
$desc_items = explode("\n", $descs_str); |
foreach($desc_items as $item) { |
$cle_valeur = explode("=", $item); |
$valeur_desc = trim($cle_valeur[1]); |
// Les clés des fichiers sont écrasées dans l'ordre de lecture ce qui permet |
// d'avoir par exemple une description différente pour le champ station suivant le projet |
// les "<br />" sont remplacés par des sauts de lignes |
$descriptions[trim($cle_valeur[0])] = str_replace('<br />', "\n", $valeur_desc); |
} |
} |
return $descriptions; |
} |
public function getRessource() { |
return self::getStatsDernierUpload(); |
} |