Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1715 → Rev 1716

/trunk/jrest/lib/FormateurGroupeColonne.php
155,7 → 155,7
if(isset($groupe_de_champs['etendu'])) {
$colonnes += array(
// champ dynamique
'etendu' => self::GenColInfo('etendu', '', 1, NULL, NULL, FALSE, array(__CLASS__, 'champsEtendus_preload'), NULL),
'etendu' => self::GenColInfo('etendu', '', 1, NULL, NULL, FALSE, array(__CLASS__, 'champsEtendus_preload'), array(__CLASS__, 'champsEtendus_ligne')),
);
}
 
536,7 → 536,6
 
static function baseflor_ligne($cel, $obs, &$ligne) {
 
if(! $obs['nom_ret_nn']) {
$ligne = array_merge($ligne, array_fill(0, count(self::$baseflor_col), NULL));
return;
586,6 → 585,7
self::$cache['champsEtendus']['data'] = $champs_supp_par_obs;
// ce return est temporaire,
// le temps que toutes les fonctions bougent ici et utilise plutôt le cache statique
// encore utilisé pour les entêtes (self::$cache['champsEtendus']['header'])
return self::$cache['champsEtendus'];
}
 
598,4 → 598,35
}
return $champs_etendus_fmt;
}
 
static function champsEtendus_ligne($cel, $obs, &$ligne) {
// si header n'est pas défini, aucune observation ne possède de champ étendu
// et nous n'ajoutons ni colonnes, ni valeurs.
if(! isset(self::$cache['champsEtendus']['header'])) return;
 
$ligne_etendue_aplatie = @self::$cache['champsEtendus']['data'][$ligne['id_observation']];
 
$ligne_supp = array_fill(0, count(self::$cache['champsEtendus']['header']), '');
$ligne_etendue_fmt = array();
 
// si, cependant cette seule observation n'a pas de champs étendus,
// nous devons rajouter des blancs (notamment dans le cas ou d'autres
// champs viennent à être ajoutés en aval à l'avenir
// cf: $fonction_dynamique dans FormateurGroupeColonne::GenColInfo()
if(! $ligne_etendue_aplatie) {
$ligne = array_merge($ligne, $ligne_supp);
return;
}
 
foreach(self::$cache['champsEtendus']['header'] as $colonne) {
if(!isset($ligne_etendue_aplatie[$colonne])) {
$ligne_etendue_fmt[$colonne] = '';
} else {
$ligne_etendue_fmt[$colonne] = $ligne_etendue_aplatie[$colonne];
}
}
 
// XXX/ array_merge() ?
$ligne += $ligne_etendue_fmt;
}
}