133,17 → 133,23 |
* @param array $champs_etendus tableau d'objets ChampEtendu |
* @return bool true si l'ajout a eu lieu |
*/ |
public function ajouterParLots(Array $champs_etendus) { |
public function ajouterParLots(Array $champs_etendus, $projet = null) { |
if (! $champs_etendus) return TRUE; // le tableau ... vide à été inséré |
$ajout = false; |
$label_champs_etendus = new GestionChampsEtendus2(); |
$champs_etendus_id = $label_champs_etendus->consulterGroupesChampsEtendusPredefinis($projet); |
if ($champs_etendus_id !== null) { |
|
$lignes = array(); |
foreach ($champs_etendus as $champ_etendu) { |
if (isset($champs_etendus_id[$champ_etendu->cle])) { |
$id = Cel::db()->proteger($champ_etendu->id); |
$cle = Cel::db()->proteger($champ_etendu->cle); |
$cle = Cel::db()->proteger($champs_etendus_id[$champ_etendu->cle]['id']); |
$valeur = Cel::db()->proteger($champ_etendu->valeur); |
|
$lignes[] = "($id, $cle, $valeur)"; |
} |
} |
|
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour |
// où l'on change de sgbd |
153,6 → 159,7 |
$this->champ_id, |
implode(',', $lignes), |
__FILE__, __LINE__)); |
} |
return ($ajout !== false); |
} |
|