Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3475 → Rev 3476

/trunk/jrest/bibliotheque/RechercheObservationExport.php
91,42 → 91,12
return $nb_obs;
}
public function formaterPourEnvoiCel(&$tableau_observations) {
$ids = array();
foreach ($tableau_observations as &$observation) {
$observation['ce_zone_geo'] = $this->convertirCodeZoneGeoVersCodeInsee($observation['ce_zone_geo']);
$ids_mots_cles = $this->getIdsMotsClesObservation($observation['id_observation']);
$ids[] = $observation['id_observation'];
$mots_cles_chaine = '';
foreach ($ids_mots_cles as $id_mot_cle) {
$mots_cles_chaine .= $id_mot_cle['id_mot_cle'].';';
}
$mots_cles_chaine = rtrim($mots_cles_chaine,';');
$observation['mots_cles'] = $mots_cles_chaine;
foreach ($observation as $champ => $valeur) {
if ($valeur == 'NULL') {
$observation[$champ] = '';
}
}
}
$gestion_champs_etendus = new GestionChampsEtendus2($this->config);
$champs_supp = $gestion_champs_etendus->consulterParLots($ids);
foreach ($tableau_observations as &$obs) {
if (isset($champs_supp[$obs['id_observation']])) {
$obs['obs_etendue'] = $champs_supp[$obs['id_observation']];
}
}
return $tableau_observations;
}
 
public function obtenirIdUtilisateurPourIdObs($id_obs) {
$idObsP = Cel::db()->proteger($id_obs);
$requete = 'SELECT ce_utilisateur '.
'FROM cel_obs '.
$requete = 'SELECT user_id as ce_utilisateur '.
'FROM occurrence '.
"WHERE id_observation = $idObsP ".
' -- '.__FILE__.':'.__LINE__;
$utilisateur_id = Cel::db()->requeter($requete);
140,7 → 110,7
public function obtenirCourrielUtilisateurPourIdObs($id_obs) {
$id_obs = Cel::db()->proteger($id_obs);
$requete = "SELECT courriel_utilisateur FROM cel_obs WHERE id_observation = $id_obs";
$requete = "SELECT user_email as courriel_utilisateur FROM occurrence WHERE id = $id_obs";
$utilisateur_courriel = Cel::db()->requeter($requete . ' -- ' . __FILE__ . ':' . __LINE__);
151,12 → 121,7
return $retour;
}
private function getIdsMotsClesObservation($id_observation) {
$requete_selection_mots_cles = 'SELECT DISTINCT id_mot_cle '.
'FROM cel_mots_cles_obs_liaison '.
"WHERE id_element_lie = $id_observation ";
return Cel::db()->requeter($requete_selection_mots_cles);
}
 
// TODO: fonction temporaire
public function parserRequeteCriteres($chaine_criteres) {
/trunk/jrest/bibliotheque/GestionChampsEtendus2.php
67,45 → 67,8
$resultat = Cel::db()->requeter($requete);
return $resultat;
}
/**
* Renvoie tous les champs étendus associés aux éléments passés en paramètre.
* Retour sous forme de tableau associatif de tableau d'objets ChampEtendu.
* Les objets ChampEtendu sont regroupés par id d'élement.
*
* @param array $ids_element_lies tableau d'id des éléments liés (obs ou image).
* @return array tableau associatif de tableau d'objets ChampEtendu.
*/
public function consulterParLots(Array $ids_element_lies) {
$champs_etendus_par_element = array();
if (!empty($ids_element_lies)) {
$ids_element_lies = array_map(array(Cel::db(), 'proteger'),$ids_element_lies);
$ids = implode(',', $ids_element_lies);
$requete = 'SELECT {$this->liste_champs} '.
"FROM {$this->table_champs_etendus} ce ".
"INNER JOIN {$this->table_champs_etendus_trad} cet ON ce.field_id = cet.extended_field_id ".
"WHERE cet.language_iso_code = '".$langue."' AND ";
($id_element_lies != "") ? $requete .= " {$this->champ_id} in ($ids) " : "";
$requete .= ' -- '.__FILE__.':'.__LINE__;
$resultats = Cel::db()->requeter($requete);
foreach ($resultats as &$ligne) {
$id_element = $ligne[$this->champ_id];
if (!isset($champs_etendus_par_element[$id_element])) {
$champs_etendus_par_element[$id_element] = array();
}
$champ_etendu = new ObsEtendue();
$champ_etendu->id = $id_element;
$champ_etendu->cle = $ligne['cle'];
$champ_etendu->valeur = $ligne['valeur'];
$champs_etendus_par_element[$id_element][] = $champ_etendu;
}
}
return $champs_etendus_par_element;
}
 
/**
* Ajoute un champ étendu.
* Si la clé existe déjà, seule valeur du champ est mise à jour
*