Subversion Repositories eFlore/Applications.cel

Rev

Rev 3575 | Rev 3580 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3575 Rev 3576
Line 135... Line 135...
135
	 */
135
	 */
136
	public function ajouterParLots(Array $champs_etendus, $projet = null) {
136
	public function ajouterParLots(Array $champs_etendus, $projet = null) {
137
	    if (! $champs_etendus) return TRUE; // le tableau ... vide à été inséré
137
	    if (! $champs_etendus) return TRUE; // le tableau ... vide à été inséré
138
	    $ajout = false;
138
	    $ajout = false;
139
	    $label_champs_etendus = new GestionChampsEtendus2($this->config);
139
	    $label_champs_etendus = new GestionChampsEtendus2($this->config);
140
	    $champs_etendus_id = $label_champs_etendus->consulterGroupesChampsEtendusPredefinis($projet);
-
 
141
	    if ($champs_etendus_id !== null) {
-
 
142
	        
-
 
143
	        $lignes = array();
140
	    $lignes = array();
144
	        foreach ($champs_etendus as $champ_etendu) {
141
	    foreach ($champs_etendus as $champ_etendu) {
145
	            if (isset($champs_etendus_id[$champ_etendu->cle])) {
142
	        $champ_id = $label_champs_etendus->consulter($champ_etendu->cle);
-
 
143
	        if ($champ_id != false) {
146
	                $id = Cel::db()->proteger($champ_etendu->id);
144
	            $id = Cel::db()->proteger($champ_etendu->id);
147
	                $cle = Cel::db()->proteger($champs_etendus_id[$champ_etendu->cle]['id']);
145
	            $cle = Cel::db()->proteger($champ_id[0]['id']);
148
	                $valeur = Cel::db()->proteger($champ_etendu->valeur);
146
	            $valeur = Cel::db()->proteger($champ_etendu->valeur);
Line 149... Line 147...
149
	                
147
	                
150
	                $lignes[] = "($id, $cle, $valeur)";
-
 
151
	            }
148
	            $lignes[] = "($id, $cle, $valeur)";
-
 
149
	        }
Line 152... Line 150...
152
	        }
150
	     }
153
	        
151
	        
-
 
152
	     // la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
154
	        // la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour
153
	     // où l'on change de sgbd
155
	        // où l'on change de sgbd
154
	     if ($lignes != array()) {
156
	        $ajout = Cel::db()->executer(sprintf(
155
	         $ajout = Cel::db()->executer(sprintf(
157
	            "INSERT INTO %s (%s, extended_field_id, value) VALUES %s ON DUPLICATE KEY UPDATE value = VALUES(valeur) -- %s:%d",
156
	           "INSERT INTO %s (%s, extended_field_id, value) VALUES %s ON DUPLICATE KEY UPDATE value = VALUES(valeur) -- %s:%d",
158
	            $this->table_obs_etendus,
157
	            $this->table_obs_etendus,
159
	            $this->champ_id,
158
	           $this->champ_id,
160
	            implode(',', $lignes),
159
	            implode(',', $lignes),
161
	            __FILE__, __LINE__));
160
	            __FILE__, __LINE__));
162
	    }
161
	    }