Subversion Repositories eFlore/Applications.cel

Rev

Rev 3124 | Rev 3484 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3124 Rev 3193
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe métier de gestion de l'ajout, modification et suppression des images.
4
 * Classe métier de gestion de l'ajout, modification et suppression des images.
5
 *
5
 *
6
 * @internal   Mininum PHP version : 5.2
6
 * @internal   Mininum PHP version : 5.2
7
 * @category   CEL
7
 * @category   CEL
8
 * @package    Services
8
 * @package    Services
9
 * @subpackage Bibliothèques
9
 * @subpackage Bibliothèques
10
 * @version    0.1
10
 * @version    0.1
11
 * @author     Delphine CAUQUIL <delphine@tela-botanica.org>
11
 * @author     Delphine CAUQUIL <delphine@tela-botanica.org>
12
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
12
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
13
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
13
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
14
 * @copyright  1999-2017 Tela Botanica <accueil@tela-botanica.org>
14
 * @copyright  1999-2017 Tela Botanica <accueil@tela-botanica.org>
15
 */
15
 */
16
class GestionWidget extends Cel {
16
class GestionWidget extends Cel {
17
	
17
	
18
	/**
18
	/**
19
	 * Ajoute un paramètrage de widget de saisie
19
	 * Ajoute un paramètrage de widget de saisie
20
	 *
20
	 *
21
	 * @param int $utilisateur id utilisateur du proprietaire de l'observation
21
	 * @param int $utilisateur id utilisateur du proprietaire de l'observation
22
	 * @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
22
	 * @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
23
	 *
23
	 *
24
	 * @return true ou false suivant le succès de l'opération
24
	 * @return true ou false suivant le succès de l'opération
25
	 */
25
	 */
26
	public function obtenirWidget($parametres = array()) { 
26
	public function obtenirWidget($parametres = array()) { 
27
		$requete_liste = "SELECT * FROM `cel_widgets_config` ";
27
		$requete_liste = "SELECT * FROM `project_settings` ";
28
		$order = (isset($parametres['ordre'])) ? $parametres['ordre'] : 'projet';
28
		$order = (isset($parametres['ordre'])) ? $parametres['ordre'] : 'project';
29
		if ($parametres != array()) {
29
		if ($parametres != array()) {
30
			$requete_liste .= " WHERE ";
30
			$requete_liste .= " WHERE ";
31
			foreach ($parametres as $champ => $valeur) {
31
			foreach ($parametres as $champ => $valeur) {
32
				$requete_liste .= $champ." = '".$valeur."' AND ";
32
				$requete_liste .= $champ." = '".$valeur."' AND ";
33
			}
33
			}
34
			$requete_liste = rtrim($requete_liste, " AND ");
34
			$requete_liste = rtrim($requete_liste, " AND ");
35
		}
35
		}
36
		$requete_liste .= " ORDER BY ".$order;
36
		$requete_liste .= " ORDER BY ".$order;
37
		$liste = Cel::db()->requeter($requete_liste);
37
		$liste = Cel::db()->requeter($requete_liste);
38
		return $liste;
38
		return $liste;
39
		
39
		
40
	}
40
	}
41
 
41
 
42
	/**
42
	/**
43
	 * Ajoute un paramètrage de widget de saisie
43
	 * Ajoute un paramètrage de widget de saisie
44
	 *
44
	 *
45
	 * @param int $utilisateur id utilisateur du proprietaire de l'observation
45
	 * @param int $utilisateur id utilisateur du proprietaire de l'observation
46
	 * @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
46
	 * @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
47
	 *
47
	 *
48
	 * @return true ou false suivant le succès de l'opération
48
	 * @return true ou false suivant le succès de l'opération
49
	 */
49
	 */
50
	public function ajouterWidget($parametres) {
50
	public function ajouterWidget($parametres) {
51
		$requete_insertion = 'INSERT INTO cel_widgets_config '.
51
		$requete_insertion = 'INSERT INTO project_settings '.
52
				'('.implode(array_keys($parametres), ', ').') VALUES ("'.implode($parametres, '", "').'")';
52
				'('.implode(array_keys($parametres), ', ').') VALUES ("'.implode($parametres, '", "').'")';
53
		$resultat_ajout = Cel::db()->executer($requete_insertion);
53
		$resultat_ajout = Cel::db()->executer($requete_insertion);
54
		$retour = true;
54
		$retour = true;
55
		if ($resultat_ajout === false) {
55
		if ($resultat_ajout === false) {
56
			$retour = false;
56
			$retour = false;
57
			$msg = "Erreur de creation d'un widget : $resultat_ajout";
57
			$msg = "Erreur de creation d'un widget : $resultat_ajout";
58
			$this->logger('CEL_bugs', $msg);
58
			$this->logger('CEL_bugs', $msg);
59
		}
59
		}
60
		return $retour;
60
		return $retour;
61
	}
61
	}
62
	
62
	
63
	/**
63
	/**
64
	 * Modifie une ou plusieurs observations grâce aux paramètres fournis
64
	 * Modifie une ou plusieurs observations grâce aux paramètres fournis
65
	 *
65
	 *
66
	 * @param int $utilisateur id utilisateur du proprietaire de l'observation
66
	 * @param int $utilisateur id utilisateur du proprietaire de l'observation
67
	 * @param mixed $ordre ordre(s) observation(s) relatif(s) à l'utilisateur: un seul ordre ou bien "ordre1,ordre2,ordre3" etc...
67
	 * @param mixed $ordre ordre(s) observation(s) relatif(s) à l'utilisateur: un seul ordre ou bien "ordre1,ordre2,ordre3" etc...
68
	 * @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
68
	 * @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
69
	 *
69
	 *
70
	 * @return true ou false suivant le succès de l'opération
70
	 * @return true ou false suivant le succès de l'opération
71
	 */
71
	 */
72
	public function modifierWidget($projet, $langue, $parametres) {
72
	public function modifierWidget($projet, $langue, $parametres) {
73
		$requete_insertion = 'UPDATE cel_widgets_config SET ';
73
		$requete_insertion = 'UPDATE project_settings SET ';
74
		$modifs = array_map(function($value, $key) {
74
		$modifs = array_map(function($value, $key) {
75
			return $key.'="'.$value.'"';
75
			return $key.'="'.$value.'"';
76
		}, array_values($parametres), array_keys($parametres));
76
		}, array_values($parametres), array_keys($parametres));
77
		
77
		
78
		$requete_insertion .= implode(', ', $modifs).' WHERE projet = "'.$projet.'" AND langue = "'.$langue.'";' ;
-
 
-
 
78
		$requete_insertion .= implode(', ', $modifs).' WHERE project = "'.$projet.'" AND language = "'.$langue.'";' ;
79
		
79
		//print_r($requete_insertion);
80
		$resultat_ajout = Cel::db()->executer($requete_insertion);
80
		$resultat_ajout = Cel::db()->executer($requete_insertion);
81
		$retour = true;
81
		$retour = true;
82
		if ($resultat_ajout === false) {
82
		if ($resultat_ajout === false) {
83
			$retour = false;
83
			$retour = false;
84
			$msg = "Erreur de creation d'un widget : $resultat_ajout";
84
			$msg = "Erreur de creation d'un widget : $resultat_ajout";
85
			$this->logger('CEL_bugs', $msg);
85
			$this->logger('CEL_bugs', $msg);
86
		} else {
86
		} else {
87
			if (isset($parametres['est_type']) && $parametres['est_type']) $this->modifierTypeWidget($projet, $parametres);
87
			if (isset($parametres['est_type']) && $parametres['est_type']) $this->modifierTypeWidget($projet, $parametres);
88
		}
88
		}
89
		return $retour;
89
		return $retour;
90
	}
90
	}
91
	
91
	
92
	private function modifierTypeWidget($projet, $parametres) {
92
	private function modifierTypeWidget($projet, $parametres) {
93
		$params_type = array('type_localisation', 'type_espece', 'milieux','champs_supp');
93
		$params_type = array('type_localisation', 'type_espece', 'milieux','champs_supp');
94
		print_r(array_intersect_keys($parametres, $params_type));exit;
94
		//print_r(array_intersect_keys($parametres, $params_type));exit;
95
	}
95
	}
96
	
96
	
97
}
97
}