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 |