Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3477 Rev 3478
Line 231... Line 231...
231
	*/
231
	*/
232
	public function consulterClesParLots($ids_elements_lies) {
232
	public function consulterClesParLots($ids_elements_lies) {
233
		$cles_fmt = array();
233
		$cles_fmt = array();
234
		if(!empty($ids_elements_lies)) {
234
		if(!empty($ids_elements_lies)) {
235
			$ids = $this->protegerTableau($ids_elements_lies);
235
			$ids = $this->protegerTableau($ids_elements_lies);
236
			$requete = 'SELECT extended_field_id as cle '.
236
			$requete = "SELECT `field_id`as cle  FROM `extended_field` f join extended_field_occurrence o 
237
				"FROM {$this->table_champs_etendus} ".
-
 
238
				"WHERE {$this->champ_id} IN (".implode(',',$ids).") ".
237
			     on f.`id` =  extended_field_id WHERE `occurrence_id` in  (".implode(',',$ids).") ".
239
				' -- '.__FILE__.':'.__LINE__;
238
				' -- '.__FILE__.':'.__LINE__;
240
			$cles = Cel::db()->requeter($requete);
239
			$cles = Cel::db()->requeter($requete);
241
			$i = 0;
240
			$i = 0;
242
			foreach($cles as &$cle) {
241
			foreach($cles as &$cle) {
243
				$cles_fmt[$cle['cle']] = $i++;
242
				$cles_fmt[$cle['cle']] = $i++;
244
			}
243
			}
245
		}
244
		}
246
		return array_values(array_flip($cles_fmt));
245
		return array_values(array_flip($cles_fmt));
247
	}
246
	}
Line 248... Line -...
248
 
-
 
249
	/**
-
 
250
	 * Renvoie la liste des groupes de champs étendus
-
 
251
	 */
-
 
252
	public function consulterGroupesChampsEtendusPredefinis($groupe = "", $langue = 'fr') {
-
 
253
		$groupes = array();
-
 
254
		$requete =  "SELECT cc.extended_field_id as cle_groupe, cc.label as nom_groupe, ccc.cle as cle_champ, ccc.label as label_champ, ccc.type as type_champ, ccc.valeur as valeur_champ, ccc.invisible, ccc.prive ".
-
 
255
			"FROM `cel_catalogue_champs_etendus` cc ".
-
 
256
			"INNER JOIN cel_catalogue_champs_etendus_liaison cl ON cc.cle = cl.groupe ".
-
 
257
			"INNER JOIN cel_catalogue_champs_etendus ccc ON ccc.cle = cl.champ ".
-
 
258
			"WHERE cc.langue = '".$langue."' ";
-
 
259
		if ($groupe !== "") $requete .= " AND cl.groupe = '".$groupe."'";
-
 
260
		$requete .= ' -- '.__FILE__.':'.__LINE__;
-
 
261
		$groupes_champs = Cel::db()->executerRequete($requete);
-
 
262
 
-
 
263
		$cle_groupe = '';
-
 
Line 264... Line -...
264
		$infos_groupe = null;
-
 
265
 
-
 
266
		foreach ($groupes_champs as $groupe_champ) {
-
 
267
			// les champs sont ordonnés par groupe, ce qui permet de les assembler
-
 
268
			// séquentiellement en créeant un nouveau groupe lorsque la clé
-
 
269
			// de groupe du champ actuel est différénte de la précédente
-
 
270
			if ($cle_groupe != $groupe_champ['cle_groupe']) {
-
 
271
				if($infos_groupe != null) {
-
 
272
					$groupes[] = $infos_groupe;
-
 
273
				}
-
 
274
				$infos_groupe = array();
-
 
275
				$cle_groupe = $groupe_champ['cle_groupe'];
-
 
276
			}
-
 
277
 
-
 
278
			if (empty($infos_groupe)) {
-
 
279
				$infos_groupe = array(
-
 
280
					'cle' => $groupe_champ['cle_groupe'],
-
 
281
					'nom' => $groupe_champ['nom_groupe'],
-
 
282
					'champs' => array()
-
 
283
				);
-
 
284
			}
-
 
285
 
-
 
286
			$infos_groupe['champs'][] = array(
-
 
287
				'cle'	=> $groupe_champ['cle_champ'],
-
 
288
				'label' => $groupe_champ['label_champ'],
-
 
289
				'type' => $groupe_champ['type_champ'],
-
 
290
				'valeur' => $groupe_champ['valeur_champ'],
-
 
291
				'options' => array(
-
 
292
					'invisible' => $groupe_champ['invisible'],
-
 
293
					'prive'	=> $groupe_champ['prive'])
-
 
294
			);
-
 
295
		}
-
 
296
 
-
 
297
		// Ajout du dernier groupe, qui serait ignoré sinon, étant donné que l'ajout
-
 
298
		// au tableau se fait au début de la boucle
-
 
299
		//TODO: voir si on ne peut pas simplifier ça
-
 
300
		if (!empty($infos_groupe)) {
-
 
301
			$groupes[] = $infos_groupe;
-
 
302
		}
-
 
303
 
-
 
304
		return $groupes;
-
 
305
	}
-
 
306
 
-
 
307
	/**
-
 
308
	 * Renvoie le catalogue des champs étendus
-
 
309
	 */
-
 
310
	public function consulterCatalogueChampsEtendusPredefinis($ordonner_par_cle = false, $groupe = "") {
-
 
311
		$requete =  'SELECT cle, label, invisible, prive '.
-
 
312
			'FROM cel_catalogue_champs_etendus AS cc ';
-
 
313
		if ($groupe !== "") $requete .= " WHERE groupe = ".$groupe;
-
 
314
		$requete .= ' -- '.__FILE__.':'.__LINE__;
-
 
315
		$catalogue = Cel::db()->executerRequete($requete);
-
 
316
 
-
 
317
		$infos_champs = array();
-
 
318
		if ($catalogue != false) {
-
 
319
			foreach ($catalogue as $champ) {
-
 
320
				$champ_fmt = array(
-
 
321
					'cle'	=> $champ['cle'],
-
 
322
					'label' => $champ['label'],
-
 
323
					'options' => array(
-
 
324
						'invisible' => $champ['invisible'],
-
 
325
						'prive'	=> $champ['prive'])
-
 
326
				);
-
 
327
				if ($ordonner_par_cle) {
-
 
328
					$infos_champs[$champ_fmt['cle']] = $champ_fmt;
-
 
329
				} else {
-
 
330
					$infos_champs[] = $champ_fmt;
-
 
331
				}
-
 
332
			}
-
 
333
		}
-
 
Line 334... Line 247...
334
		return $infos_champs;
247
 
335
	}
248
 
336
 
249
 
337
	/**
250
	/**