Subversion Repositories Applications.annuaire

Rev

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

Rev 294 Rev 360
1
<?php
1
<?php
2
/**
2
/**
3
* PHP Version 5
3
* PHP Version 5
4
*
4
*
5
* @category  PHP
5
* @category  PHP
6
* @package   annuaire
6
* @package   annuaire
7
* @author    aurelien <aurelien@tela-botanica.org>
7
* @author    aurelien <aurelien@tela-botanica.org>
8
* @copyright 2010 Tela-Botanica
8
* @copyright 2010 Tela-Botanica
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
9
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @version   SVN: <svn_id>
10
* @version   SVN: <svn_id>
11
* @link      /doc/annuaire/
11
* @link      /doc/annuaire/
12
*/
12
*/
13
 
13
 
14
class MappageControleur extends AppControleur {
14
class MappageControleur extends AppControleur {
15
 
15
 
16
	private $id_liste_champs = 30768;
16
	private $id_liste_champs = 30768;
17
	
17
	
18
	/**
18
	/**
19
	 * Charge la vue contenant les informations d'un annuaire géré par l'application
19
	 * Charge la vue contenant les informations d'un annuaire géré par l'application
20
	 * @param int $id l'annuaire dont on veut consulter les informations
20
	 * @param int $id l'annuaire dont on veut consulter les informations
21
	 * @return string la vue contenant les informations
21
	 * @return string la vue contenant les informations
22
	 */
22
	 */
23
	public function chargerAnnuaire($id) {
23
	public function chargerAnnuaire($id) {
24
		$this->chargerModele('AnnuaireModele');
24
		$this->chargerModele('AnnuaireModele');
25
		$this->chargerModele('MetadonneeModele');
25
		$this->chargerModele('MetadonneeModele');
26
		$data['erreurs'] = array();
26
		$data['erreurs'] = array();
27
		$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id,true);
27
		$data['annuaire'] = $this->AnnuaireModele->chargerAnnuaire($id,true);
28
		$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id);
28
		$data['metadonnees'] = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id);
29
		$annuaire = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'annuaire', $data);
29
		$annuaire = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'annuaire', $data);
30
 
30
 
31
		return $annuaire;
31
		return $annuaire;
32
	}
32
	}
33
	
33
	
34
/**--------Fonctions de gestion des champs de mappage associées à un annuaire et des formaulaires associés --------*/
34
/**--------Fonctions de gestion des champs de mappage associées à un annuaire et des formulaires associés --------*/
35
	/**
35
	/**
36
	 * Affiche le formulaire d'ajout d'une metadonnee
36
	 * Affiche le formulaire d'ajout d'une metadonnee
37
	 * @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur)
37
	 * @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur)
38
	 * @return string la vue contenant le formulaire
38
	 * @return string la vue contenant le formulaire
39
	 */
39
	 */
40
	public function afficherFormulaireAjoutMappage($id_annuaire, $donnees = array()) {
40
	public function afficherFormulaireAjoutMappage($id_annuaire, $donnees = array()) {
41
 
41
 
42
		$this->chargerModele('MetadonneeModele');
42
		$this->chargerModele('MetadonneeModele');
43
		$this->chargerModele('GestionAnnuaireModele');
43
		$this->chargerModele('GestionAnnuaireModele');
44
		
44
		
45
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
45
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
46
		
46
		
47
		// TODO: déplacer ceci dans la base de données
47
		$liste_champs_mappage = array('champ_id' => 'Champ identifiant',
48
		$liste_champs_mappage = array('champ_id' => 'Champ identifiant',
48
		'champ_pass' => 'Champ mot de passe',
49
		'champ_pass' => 'Champ mot de passe',
49
		'champ_nom' => 'Champ nom',  
50
		'champ_nom' => 'Champ nom',  
50
  		'champ_prenom' => 'Champ prénom' , 
51
  		'champ_prenom' => 'Champ prénom' , 
51
  		'champ_mail' => 'Champ mail',  
52
  		'champ_mail' => 'Champ mail',  
52
  		'champ_pays' => 'Champ pays',  
53
  		'champ_pays' => 'Champ pays',  
53
  		'champ_code_postal' => 'Champ code postal', 
54
  		'champ_code_postal' => 'Champ code postal', 
54
  		'champ_adresse' => 'Champ adresse',  
55
  		'champ_adresse' => 'Champ adresse',  
55
  		'champ_adresse_comp' => 'Champ adresse complémentaire',
56
  		'champ_adresse_comp' => 'Champ adresse complémentaire',
56
		'champ_adresse_comp' => 'Champ adresse complémentaire'); 
57
		'champ_adresse_comp' => 'Champ adresse complémentaire'); 
57
		
58
		
58
		$champs_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
59
		$champs_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
59
		$champs_annuaire = $this->GestionAnnuaireModele->obtenirListeNomsChampsAnnuaireParIdAnnuaire($id_annuaire);
60
		$champs_annuaire = $this->GestionAnnuaireModele->obtenirListeNomsChampsAnnuaireParIdAnnuaire($id_annuaire);
60
				
61
				
61
		$roles_deja_affectes = array_intersect_key($liste_champs_mappage, $champs_mappage[0]);
62
		$roles_deja_affectes = array_intersect_key($liste_champs_mappage, $champs_mappage[0]);
62
		
-
 
63
		//Debug::printr($champs_mappage[0]);
-
 
64
		//Debug::printr($liste_champs_mappage);
-
 
65
			
63
			
66
		$champs_deja_mappe_annuaire = array_intersect_key($champs_mappage[0], $liste_champs_mappage);
64
		$champs_deja_mappe_annuaire = array_intersect_key($champs_mappage[0], $liste_champs_mappage);
67
		
65
		
68
		$champs_deja_mappe_metadonnees = array_intersect_key($champs_mappage[1], $liste_champs_mappage);
66
		$champs_deja_mappe_metadonnees = array_intersect_key($champs_mappage[1], $liste_champs_mappage);
69
	
67
	
70
		// on retire les roles déjà affectés dans la liste des roles
68
		// on retire les roles déjà affectés dans la liste des roles
71
		$liste_champs_mappage = array_diff_key($liste_champs_mappage, $roles_deja_affectes);
69
		$liste_champs_mappage = array_diff_key($liste_champs_mappage, $roles_deja_affectes);
72
		
70
		
73
		// on retire les champs de l'annuaire qui sont déjà mappés
71
		// on retire les champs de l'annuaire qui sont déjà mappés
74
		$champs_annuaire = array_diff($champs_annuaire, $champs_deja_mappe_annuaire);
72
		$champs_annuaire = array_diff($champs_annuaire, $champs_deja_mappe_annuaire);
75
				
73
				
76
		// on retire les champ de metadonnées qui mappent déjà un champ
74
		// on retire les champ de metadonnées qui mappent déjà un champ
77
		$champs_metadonnees = array_diff_key($champs_metadonnees, array_flip($champs_deja_mappe_metadonnees));
75
		$champs_metadonnees = array_diff_key($champs_metadonnees, array_flip($champs_deja_mappe_metadonnees));
78
		
76
		
79
		$data['champs_mappage'] = $liste_champs_mappage;
77
		$data['champs_mappage'] = $liste_champs_mappage;
80
		$data['champs_metadonnees'] = $champs_metadonnees;
78
		$data['champs_metadonnees'] = $champs_metadonnees;
81
		$data['champs_annuaire'] = $champs_annuaire;
79
		$data['champs_annuaire'] = $champs_annuaire;
82
		
80
		
83
		$data['id_annuaire'] = $id_annuaire;
81
		$data['id_annuaire'] = $id_annuaire;
84
		
82
		
85
		$mappage_ajout = $this->getVue(Config::get('dossier_squelettes_metadonnees').'mappage_ajout',$data);
83
		$mappage_ajout = $this->getVue(Config::get('dossier_squelettes_metadonnees').'mappage_ajout',$data);
86
 
84
 
87
		return $mappage_ajout;
85
		return $mappage_ajout;
88
	}
86
	}
89
 
87
 
90
	/**
88
	/**
91
	 * Affiche le formulaire de modification d'une metadonnee
89
	 * Affiche le formulaire de modification d'une metadonnee
92
	 * @param Array $valeurs les valeurs à inclure dans le formulaire
90
	 * @param Array $valeurs les valeurs à inclure dans le formulaire
93
	 * @return string la vue contenant le formulaire
91
	 * @return string la vue contenant le formulaire
94
	 */
92
	 */
95
	public function afficherFormulaireModificationMappage($id_mappage) {
93
	public function afficherFormulaireModificationMappage($id_mappage) {
96
 
94
 
97
		if(!isset($valeurs['amc_nom'])) {
95
		if(!isset($valeurs['amc_nom'])) {
98
			$valeurs['amc_nom'] = '';
96
			$valeurs['amc_nom'] = '';
99
		}
97
		}
100
 
98
 
101
		if(!isset($valeurs['amc_abreviation'])) {
99
		if(!isset($valeurs['amc_abreviation'])) {
102
				$valeurs['amc_abreviation'] = '';
100
				$valeurs['amc_abreviation'] = '';
103
		}
101
		}
104
 
102
 
105
		if(!isset($valeurs['amc_description'])) {
103
		if(!isset($valeurs['amc_description'])) {
106
				$valeurs['amc_description'] = '';
104
				$valeurs['amc_description'] = '';
107
		}
105
		}
108
		$data['valeur'] = $valeurs;
106
		$data['valeur'] = $valeurs;
109
 
107
 
110
		$this->chargerModele('MetadonneeModele');
108
		$this->chargerModele('MetadonneeModele');
111
		$data['valeur'] = $this->MetadonneeModele->chargerInformationsMetadonnee($valeurs['amc_id_champ']);
109
		$data['valeur'] = $this->MetadonneeModele->chargerInformationsMetadonnee($valeurs['amc_id_champ']);
112
		$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps();
110
		$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps();
113
		$data['listes'] = $this->MetadonneeModele->chargerListeDesListes();
111
		$data['listes'] = $this->MetadonneeModele->chargerListeDesListes();
114
		$metadonnee_modification = $this->getVue(Config::get('dossier_squelettes_metadonnees').'metadonnee_modification',$data);
112
		$metadonnee_modification = $this->getVue(Config::get('dossier_squelettes_metadonnees').'metadonnee_modification',$data);
115
 
113
 
116
		return $metadonnee_modification;
114
		return $metadonnee_modification;
117
	}
115
	}
118
 
116
 
119
	/**
117
	/**
120
	 * Ajoute un nouveau champ de mappage à un annuaire
118
	 * Ajoute un nouveau champ de mappage à un annuaire
121
	 * @param Array $valeurs les valeurs à ajouter
119
	 * @param Array $valeurs les valeurs à ajouter
122
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
120
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
123
	 */
121
	 */
124
	public function ajouterNouveauMappage($valeurs) {
122
	public function ajouterNouveauMappage($valeurs) {
125
 
123
 
126
		$this->ChargerModele('MappageModele');
124
		$this->ChargerModele('MappageModele');
127
		
125
		
128
		if(isset($valeurs['id_annuaire'])
126
		if(isset($valeurs['id_annuaire'])
129
			&& isset($valeurs['at_valeur'])
127
			&& isset($valeurs['at_valeur'])
130
			&& isset($valeurs['at_ressource'])
128
			&& isset($valeurs['at_ressource'])
131
			&& isset($valeurs['at_action'])) {
129
			&& isset($valeurs['at_action'])) {
132
	
130
	
133
			$id_annuaire = $valeurs['id_annuaire'];
131
			$id_annuaire = $valeurs['id_annuaire'];
134
			$id_champ_metadonnee = $valeurs['at_valeur'];
132
			$id_champ_metadonnee = $valeurs['at_valeur'];
135
			$nom_champ_annuaire = $valeurs['at_ressource'];
133
			$nom_champ_annuaire = $valeurs['at_ressource'];
136
			$role = $valeurs['at_action'];	
134
			$role = $valeurs['at_action'];	
137
				
135
				
138
			$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom_champ_annuaire, $role, $id_champ_metadonnee);
136
			$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom_champ_annuaire, $role, $id_champ_metadonnee);
139
		} else  {
137
		} else  {
140
			return $this->afficherFormulaireAjoutMappage($valeurs);
138
			return $this->afficherFormulaireAjoutMappage($valeurs);
141
		}
139
		}
142
		return $this->chargerAnnuaire($valeurs['id_annuaire']);
140
		return $this->chargerAnnuaire($valeurs['id_annuaire']);
143
	}
141
	}
144
 
142
 
145
	/**
143
	/**
146
	 * Modifie un champ de mapagge associé à un annuaire
144
	 * Modifie un champ de mapagge associé à un annuaire
147
	 * @param Array $valeurs les valeurs à modifier
145
	 * @param Array $valeurs les valeurs à modifier
148
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
146
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
149
	 */
147
	 */
150
	public function modifierMappage($valeurs) {
148
	public function modifierMappage($valeurs) {
-
 
149
 
-
 
150
		$this->ChargerModele('MappageModele');
151
 
151
		
152
		if(isset($valeurs['amc_id_champ'])
152
		if(isset($valeurs['id_annuaire'])
153
			&& isset($valeurs['amc_nom'])
153
			&& isset($valeurs['at_valeur'])
154
			&& isset($valeurs['amc_abreviation'])
154
			&& isset($valeurs['at_ressource'])
155
			&& isset($valeurs['amc_description'])
155
			&& isset($valeurs['at_action'])
-
 
156
			&& isset($valeurs['at_id'])) {
156
			&& isset($valeurs['amc_ce_annuaire'])
157
	
157
			&& isset($valeurs['amc_ce_type_affichage'])) {
158
			$id_annuaire = $valeurs['id_annuaire'];
158
			$this->chargerModele('MetadonneeModele');
159
			$id_champ_metadonnee = $valeurs['at_valeur'];
-
 
160
			$nom_champ_annuaire = $valeurs['at_ressource'];
-
 
161
			$role = $valeurs['at_action'];	
-
 
162
			$id_mappage = $valeurs['at_id'];	
-
 
163
				
159
			$this->MetadonneeModele->modifierMetadonnee($valeurs);
164
			$this->MappageModele->modifierMappage($id_annuaire, $nom_champ_annuaire, $role, $id_champ_metadonnee,$id_mappage);
160
		} else  {
165
		} else  {
161
			return $this->afficherFormulaireModificationMetadonnee($valeurs);
166
			return $this->afficherFormulaireModificationMappage($valeurs);
162
		}
167
		}
163
		return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']);
168
		return $this->chargerAnnuaire($valeurs['id_annuaire']);
164
	}
169
	}
165
 
170
 
166
	/**
171
	/**
167
	 * Supprime un champ de métadonnée associé à un annuaire
172
	 * Supprime un champ de métadonnée associé à un annuaire
168
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
173
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
169
	 */
174
	 */
170
	public function supprimerMappage($id_annuaire, $id_mappage) {
175
	public function supprimerMappage($id_annuaire, $id_mappage) {
171
 
176
 
172
		if($id_metadonnee != '') {
-
 
173
			$this->chargerModele('MetadonneeModele');
-
 
174
			$this->MetadonneeModele->supprimerMetadonneeParId($id_metadonnee);
-
 
175
		} else  {
-
 
176
			return false;
-
 
177
		}
-
 
178
		return $this->chargerAnnuaire($id_annuaire);
177
		// TODO ajouter méthode 
179
	}
178
	}
180
 
179
 
181
}
180
}
182
?>
181
?>