Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3573 Rev 3575
Line 132... Line 132...
132
	 *
132
	 *
133
	 * @param array $champs_etendus tableau d'objets ChampEtendu
133
	 * @param array $champs_etendus tableau d'objets ChampEtendu
134
	 * @return bool true si l'ajout a eu lieu
134
	 * @return bool true si l'ajout a eu lieu
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) {
140
		
142
	        
141
		if ($champs_etendus_id !== null) {
-
 
142
			$lignes = array();
143
	        $lignes = array();
143
    		foreach ($champs_etendus as $champ_etendu) {
144
	        foreach ($champs_etendus as $champ_etendu) {
144
    		    $champ_id = $label_champs_etendus->consulter($champ_etendu->cle);
145
	            if (isset($champs_etendus_id[$champ_etendu->cle])) {
145
    		    if ($champ_id != false) {
-
 
146
        			$id = Cel::db()->proteger($champ_etendu->id);
146
	                $id = Cel::db()->proteger($champ_etendu->id);
147
        			$cle = Cel::db()->proteger($champ_id[0]['id']);
147
	                $cle = Cel::db()->proteger($champs_etendus_id[$champ_etendu->cle]['id']);
148
        			$valeur = Cel::db()->proteger($champ_etendu->valeur);
148
	                $valeur = Cel::db()->proteger($champ_etendu->valeur);
149
        
149
	                
150
        			$lignes[] = "($id, $cle, $valeur)";
150
	                $lignes[] = "($id, $cle, $valeur)";
151
    		    }
151
	            }
152
    		}
152
	        }
153
    
153
	        
154
    		// 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
155
    		// où l'on change de sgbd
155
	        // où l'on change de sgbd
156
    		if ($lignes != array()) {
-
 
157
        		$ajout = Cel::db()->executer(sprintf(
156
	        $ajout = Cel::db()->executer(sprintf(
158
        			"INSERT INTO %s (%s, extended_field_id, value) VALUES %s ON DUPLICATE KEY UPDATE value = VALUES(valeur) -- %s:%d",
157
	            "INSERT INTO %s (%s, extended_field_id, value) VALUES %s ON DUPLICATE KEY UPDATE value = VALUES(valeur) -- %s:%d",
159
        			$this->table_obs_etendus,
158
	            $this->table_obs_etendus,
160
        			$this->champ_id,
159
	            $this->champ_id,
161
        			implode(',', $lignes),
160
	            implode(',', $lignes),
162
        			__FILE__, __LINE__));
161
	            __FILE__, __LINE__));
163
    		}
162
	    }
164
		}
-
 
165
		return ($ajout !== false);
163
	    return ($ajout !== false);
166
	}
164
	}
Line 167... Line 165...
167
 
165
 
168
	/**
166
	/**
169
	 * Modifie un champ étendu associé à l'élément passé en paramètre
167
	 * Modifie un champ étendu associé à l'élément passé en paramètre