Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3468 → Rev 3469

/trunk/jrest/bibliotheque/GestionChampsEtendus2.php
67,8 → 67,44
$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 ChampEtendu();
$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