Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1740 → Rev 1741

/trunk/jrest/lib/FormateurGroupeColonne.php
43,6 → 43,32
"syntaxon" => "Syntaxon",
);
 
// TODO: dirty, ordre des champs étendus... souhaité pour florilèges:
static $ordre_champ_etendus_Florileges = array(
"personneStructure",
"personneService",
"personneFonction",
"adresse",
"latitudeDebutRue",
"longitudeDebutRue",
"latitudeFinRue",
"longitudeFinRue",
"typoUrbaine",
"revetementSol",
"presenceZoneVegetalise",
"hauteurBatimentAvoisinant",
"intensiteGestion",
"periodiciteTraitementPhyto",
"dateArretTraitementPhyto",
"itineraireGestion",
"dateDerniereIntervention",
"hauteurPlante",
"resistanceTraitementPhyto",
"vitesseCroissance",
"perceptionTechnicien",
"perceptionRiverainMauvaise",
);
 
static function colGroupsValidation($groupe_de_champs = 'standard,avance') {
if(! $groupe_de_champs) return FALSE;
if(is_string($groupe_de_champs)) {
577,11 → 603,18
static function champsEtendus_preload($cel, $obsids) {
$gestion_champs_etendus = new GestionChampsEtendus($cel->config, 'obs');
$colonnes_champs_supp_par_obs = $gestion_champs_etendus->consulterClesParLots($obsids);
// ces deux lignes réordonnent l'ordre des colonnes des champs étendus en fonction de l'ordre (très spécifique)
// de self::$ordre_champ_etendus_Florileges, les champs non-mentionnés sont ajoutés à la fin.
$colonnes_champs_supp_par_obs = self::sortArrayByArray(array_flip($colonnes_champs_supp_par_obs),
self::$ordre_champ_etendus_Florileges);
$colonnes_champs_supp_par_obs = array_keys($colonnes_champs_supp_par_obs);
 
// si le SELECT des clefs ne retourne rien, une autre requêtes est inutile
// TODO: optimize, 1 seule requête
if(!$colonnes_champs_supp_par_obs) return Array('header' => array(), 'data' => array());
 
$champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($obsids);
 
self::$cache['champsEtendus']['header'] = $colonnes_champs_supp_par_obs;
foreach($champs_supp_par_obs as &$v) {
$v = self::champsEtendus_aplatir($v);
632,4 → 665,20
// XXX/ array_merge() ?
$ligne += $ligne_etendue_fmt;
}
 
/* HELPERS */
 
// http://stackoverflow.com/questions/348410/sort-an-array-based-on-another-array
// XXX; redéfinition, utilisé aussi par ExportXLS
static function sortArrayByArray($array, $orderArray) {
$ordered = array();
foreach($orderArray as $key) {
if(array_key_exists($key, $array)) {
$ordered[$key] = $array[$key];
unset($array[$key]);
}
}
return $ordered + $array;
}
 
}