Line 423... |
Line 423... |
423 |
}
|
423 |
}
|
424 |
$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
|
424 |
$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
|
425 |
$champs_etendus = $gestion_champs_etendus->consulterParLots($ids_observations);
|
425 |
$champs_etendus = $gestion_champs_etendus->consulterParLots($ids_observations);
|
426 |
if(!empty($champs_etendus)) {
|
426 |
if(!empty($champs_etendus)) {
|
427 |
$this->catalogue_cles_labels_champs_etendus = $gestion_champs_etendus->consulterCatalogueChampsEtendusPredefinis(true);
|
427 |
$this->catalogue_cles_labels_champs_etendus = $gestion_champs_etendus->consulterCatalogueChampsEtendusPredefinis(true);
|
- |
|
428 |
// afin de simplifier les erreurs de majuscules et minuscules
|
- |
|
429 |
$this->catalogue_cles_labels_champs_etendus = array_change_key_case($this->catalogue_cles_labels_champs_etendus);
|
428 |
}
|
430 |
}
|
429 |
$this->auteurs = $this->creerAuteurs($identifiants);
|
431 |
$this->auteurs = $this->creerAuteurs($identifiants);
|
430 |
foreach ($elements as $element) {
|
432 |
foreach ($elements as $element) {
|
431 |
$element['obs_etendue'] = isset($champs_etendus[$element['id_observation']]) ? $champs_etendus[$element['id_observation']] : array();
|
433 |
$element['obs_etendue'] = isset($champs_etendus[$element['id_observation']]) ? $champs_etendus[$element['id_observation']] : array();
|
432 |
$donnees['items'][] = $this->construireDonneesCommunesAuxItems($element);
|
434 |
$donnees['items'][] = $this->construireDonneesCommunesAuxItems($element);
|
Line 543... |
Line 545... |
543 |
}
|
545 |
}
|
Line 544... |
Line 546... |
544 |
|
546 |
|
545 |
private function creerDescriptionChampsEtendus($obs, $item) {
|
547 |
private function creerDescriptionChampsEtendus($obs, $item) {
|
546 |
$champs_etendus = '';
|
548 |
$champs_etendus = '';
|
- |
|
549 |
foreach($obs['obs_etendue'] as $cle => &$champ) {
|
547 |
foreach($obs['obs_etendue'] as $cle => &$champ) {
|
550 |
if($this->doitAfficherChampEtendu($champ->cle, $this->catalogue_cles_labels_champs_etendus)) {
|
548 |
if(isset($this->catalogue_cles_labels_champs_etendus[$champ->cle])) {
|
551 |
if(isset($this->catalogue_cles_labels_champs_etendus[$champ->cle])) {
|
549 |
$label = $this->catalogue_cles_labels_champs_etendus[$champ->cle]['label'];
|
552 |
$label = $this->catalogue_cles_labels_champs_etendus[$champ->cle]['label'];
|
550 |
} else {
|
553 |
} else {
|
551 |
$label = preg_replace("/(?<=\\w)(?=[A-Z])/"," $1", $champ->cle);
|
554 |
$label = preg_replace("/(?<=\\w)(?=[A-Z])/"," $1", $champ->cle);
|
552 |
$label = trim($label);
|
555 |
$label = trim($label);
|
- |
|
556 |
$label = $label;
|
- |
|
557 |
}
|
553 |
$label = $label;
|
558 |
$champs_etendus .= '<li>'.$this->nePasInterpreterXml($label.' : '.$champ->valeur).' </li>';
|
554 |
}
|
- |
|
555 |
$champs_etendus .= '<li>'.$this->nePasInterpreterXml($label.' : '.$champ->valeur).' </li>';
|
559 |
}
|
Line 556... |
Line 560... |
556 |
}
|
560 |
}
|
557 |
|
561 |
|
558 |
if($champs_etendus != '') {
|
562 |
if($champs_etendus != '') {
|
- |
|
563 |
$champs_etendus = '<li> Champs supplémentaires : <ul>'.$champs_etendus.'</ul></li>';
|
559 |
$champs_etendus = '<li> Champs supplémentaires : <ul>'.$champs_etendus.'</ul></li>';
|
564 |
}
|
560 |
}
|
565 |
|
- |
|
566 |
return $champs_etendus;
|
- |
|
567 |
}
|
- |
|
568 |
|
- |
|
569 |
private function doitAfficherChampEtendu($cle, $catalogue) {
|
- |
|
570 |
// Suppression des nombres à la fin de la chaines dans le cas des clés
|
- |
|
571 |
// "multiples" et mise en minuscule
|
- |
|
572 |
$cle_simplifiee = preg_replace("/\d+$/","",$cle);
|
- |
|
573 |
$cle_simplifiee = strtolower(rtrim($cle_simplifiee, ":"));
|
- |
|
574 |
|
- |
|
575 |
// Un champ est affichable s'il n'est pas au catalogue ou bien
|
- |
|
576 |
// s'il n'est pas marqué privé dans celui-ci
|
- |
|
577 |
$affichable = !isset($catalogue[$cle_simplifiee]) ||
|
- |
|
578 |
$catalogue[$cle_simplifiee]['options']['prive'] != 1;
|
- |
|
579 |
|
Line 561... |
Line 580... |
561 |
return $champs_etendus;
|
580 |
return $affichable;
|
562 |
}
|
581 |
}
|
563 |
|
582 |
|
564 |
private function creerCategorie($element) {
|
583 |
private function creerCategorie($element) {
|