Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2402 → Rev 2403

/trunk/jrest/lib/GestionChampsEtendus.php
245,7 → 245,7
*/
public function consulterGroupesChampsEtendusPredefinis() {
$groupes = array();
$requete = "SELECT cc.cle as cle_groupe, cc.label as nom_groupe, ccc.cle as cle_champ, ccc.label as label_champ, ccc.invisible ".
$requete = "SELECT cc.cle as cle_groupe, cc.label as nom_groupe, ccc.cle as cle_champ, ccc.label as label_champ, ccc.invisible, ccc.prive ".
"FROM `cel_catalogue_champs_etendus` cc ".
"INNER JOIN cel_catalogue_champs_etendus_liaison cl ON cc.cle = cl.groupe ".
"INNER JOIN cel_catalogue_champs_etendus ccc ON ccc.cle = cl.champ";
278,7 → 278,9
$infos_groupe['champs'][] = array(
'cle' => $groupe_champ['cle_champ'],
'label' => $groupe_champ['label_champ'],
'options' => array('invisible' => $groupe_champ['invisible'])
'options' => array('invisible' => $groupe_champ['invisible'],
'prive' => $groupe_champ['prive']
)
);
}
296,7 → 298,7
* Renvoie le catalogue des champs étendus
*/
public function consulterCatalogueChampsEtendusPredefinis($ordonner_par_cle = false) {
$requete = "SELECT cle, label, invisible ".
$requete = "SELECT cle, label, invisible, prive ".
"FROM cel_catalogue_champs_etendus cc ";
$catalogue = Cel::db()->executerRequete($requete);
306,7 → 308,9
$champ_fmt = array(
'cle' => $champ['cle'],
'label' => $champ['label'],
'options' => array('invisible' => $champ['invisible'])
'options' => array('invisible' => $champ['invisible'],
'prive' => $champ['prive']
)
);
if($ordonner_par_cle) {
$infos_champs[$champ_fmt['cle']] = $champ_fmt;
326,6 → 330,8
* @return string la clé correspondante
*/
public function transformerLabelEnCle($label) {
//TODO: cette fonction est elle encore pertinente
// maintenant que la notion de label est supprimée ?
$cle = strtolower(trim($label));
 
// Suppression des mots inutiles
/trunk/jrest/lib/FormateurGroupeColonne.php
742,10 → 742,32
// Quand les données sont prêtes, on les fusionne
$ligne = array_merge($ligne, $donneesBF);
}
 
static function champsEtendus_preload($cel, $obsids) {
$gestion_champs_etendus = new GestionChampsEtendus($cel->config, 'obs');
$gestion_champs_etendus = new GestionChampsEtendus($cel->config, 'obs');
$colonnes_champs_supp_par_obs = $gestion_champs_etendus->consulterClesParLots($obsids);
// Supprime les champs étendus considérés comme privés dans le cas de l'export public en chargeant
// le catalogue et en excluant ceux qui sont explicitement privés
if(!$cel->export_prive) {
$indices_a_supprimer = array();
$catalogue_champs_etendus = $gestion_champs_etendus->consulterCatalogueChampsEtendusPredefinis();
foreach($catalogue_champs_etendus as $champ_catalogue) {
if($champ_catalogue['options']['prive'] == 1) {
// supprime les ":" suivis de nombres dans le cas de champs étendus multiples
// (ils sont de la forme maCleDeChamp:1, maCleDeChamp:2 etc...)
$entrees = preg_grep("/:\d+$/", $colonnes_champs_supp_par_obs);
$indices_a_supprimer = array_merge($indices_a_supprimer, array_keys($entrees));
}
}
// les champs étendus sont renvoyés dans l'export suivant les colonnes présentes dans ce tableau
// les éliminer de la liste des colonnes suffit à les faire ignorer par l'export
foreach($indices_a_supprimer as $indice_supp) {
unset($colonnes_champs_supp_par_obs[$indice_supp]);
}
}
// 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),