Subversion Repositories Applications.annuaire

Rev

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

Rev 164 Rev 294
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 formaulaires 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
		$liste_champs_mappage = array('champ_id' => 'Champ identifiant',
47
		$liste_champs_mappage = array('champ_id' => 'Champ identifiant',
48
		'champ_pass' => 'Champ mot de passe',
48
		'champ_pass' => 'Champ mot de passe',
49
		'champ_nom' => 'Champ nom',  
49
		'champ_nom' => 'Champ nom',  
50
  		'champ_prenom' => 'Champ prénom' , 
50
  		'champ_prenom' => 'Champ prénom' , 
51
  		'champ_mail' => 'Champ mail',  
51
  		'champ_mail' => 'Champ mail',  
52
  		'champ_pays' => 'Champ pays',  
52
  		'champ_pays' => 'Champ pays',  
53
  		'champ_code_postal' => 'Champ code postal', 
53
  		'champ_code_postal' => 'Champ code postal', 
54
  		'champ_adresse' => 'Champ adresse',  
54
  		'champ_adresse' => 'Champ adresse',  
55
  		'champ_adresse_comp' => 'Champ adresse complémentaire',
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
		
57
		
58
		$champs_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
58
		$champs_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
59
		$champs_annuaire = $this->GestionAnnuaireModele->obtenirListeNomsChampsAnnuaireParIdAnnuaire($id_annuaire);
59
		$champs_annuaire = $this->GestionAnnuaireModele->obtenirListeNomsChampsAnnuaireParIdAnnuaire($id_annuaire);
60
				
60
				
61
		$roles_deja_affectes = array_intersect_key($liste_champs_mappage, $champs_mappage[0]);
61
		$roles_deja_affectes = array_intersect_key($liste_champs_mappage, $champs_mappage[0]);
62
		
62
		
63
		//Debug::printr($champs_mappage[0]);
63
		//Debug::printr($champs_mappage[0]);
64
		//Debug::printr($liste_champs_mappage);
64
		//Debug::printr($liste_champs_mappage);
65
			
65
			
66
		$champs_deja_mappe_annuaire = array_intersect_key($champs_mappage[0], $liste_champs_mappage);
66
		$champs_deja_mappe_annuaire = array_intersect_key($champs_mappage[0], $liste_champs_mappage);
67
		
67
		
68
		$champs_deja_mappe_metadonnees = array_intersect_key($champs_mappage[1], $liste_champs_mappage);
68
		$champs_deja_mappe_metadonnees = array_intersect_key($champs_mappage[1], $liste_champs_mappage);
69
	
69
	
70
		// on retire les roles déjà affectés dans la liste des roles
70
		// 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);
71
		$liste_champs_mappage = array_diff_key($liste_champs_mappage, $roles_deja_affectes);
72
		
72
		
73
		// on retire les champs de l'annuaire qui sont déjà mappés
73
		// on retire les champs de l'annuaire qui sont déjà mappés
74
		$champs_annuaire = array_diff($champs_annuaire, $champs_deja_mappe_annuaire);
74
		$champs_annuaire = array_diff($champs_annuaire, $champs_deja_mappe_annuaire);
75
				
75
				
76
		// on retire les champ de metadonnées qui mappent déjà un champ
76
		// 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));
77
		$champs_metadonnees = array_diff_key($champs_metadonnees, array_flip($champs_deja_mappe_metadonnees));
78
		
78
		
79
		$data['champs_mappage'] = $liste_champs_mappage;
79
		$data['champs_mappage'] = $liste_champs_mappage;
80
		$data['champs_metadonnees'] = $champs_metadonnees;
80
		$data['champs_metadonnees'] = $champs_metadonnees;
81
		$data['champs_annuaire'] = $champs_annuaire;
81
		$data['champs_annuaire'] = $champs_annuaire;
82
		
82
		
83
		$data['id_annuaire'] = $id_annuaire;
83
		$data['id_annuaire'] = $id_annuaire;
84
		
84
		
85
		$mappage_ajout = $this->getVue(Config::get('dossier_squelettes_metadonnees').'mappage_ajout',$data);
85
		$mappage_ajout = $this->getVue(Config::get('dossier_squelettes_metadonnees').'mappage_ajout',$data);
86
 
86
 
87
		return $mappage_ajout;
87
		return $mappage_ajout;
88
	}
88
	}
89
 
89
 
90
	/**
90
	/**
91
	 * Affiche le formulaire de modification d'une metadonnee
91
	 * Affiche le formulaire de modification d'une metadonnee
92
	 * @param Array $valeurs les valeurs à inclure dans le formulaire
92
	 * @param Array $valeurs les valeurs à inclure dans le formulaire
93
	 * @return string la vue contenant le formulaire
93
	 * @return string la vue contenant le formulaire
94
	 */
94
	 */
95
	public function afficherFormulaireModificationMappage($id_mappage) {
95
	public function afficherFormulaireModificationMappage($id_mappage) {
96
 
96
 
97
		if(!isset($valeurs['amc_nom'])) {
97
		if(!isset($valeurs['amc_nom'])) {
98
			$valeurs['amc_nom'] = '';
98
			$valeurs['amc_nom'] = '';
99
		}
99
		}
100
 
100
 
101
		if(!isset($valeurs['amc_abreviation'])) {
101
		if(!isset($valeurs['amc_abreviation'])) {
102
				$valeurs['amc_abreviation'] = '';
102
				$valeurs['amc_abreviation'] = '';
103
		}
103
		}
104
 
104
 
105
		if(!isset($valeurs['amc_description'])) {
105
		if(!isset($valeurs['amc_description'])) {
106
				$valeurs['amc_description'] = '';
106
				$valeurs['amc_description'] = '';
107
		}
107
		}
108
		$data['valeur'] = $valeurs;
108
		$data['valeur'] = $valeurs;
109
 
109
 
110
		$this->chargerModele('MetadonneeModele');
110
		$this->chargerModele('MetadonneeModele');
111
		$data['valeur'] = $this->MetadonneeModele->chargerInformationsMetadonnee($valeurs['amc_id_champ']);
111
		$data['valeur'] = $this->MetadonneeModele->chargerInformationsMetadonnee($valeurs['amc_id_champ']);
112
		$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps();
112
		$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps();
113
		$data['listes'] = $this->MetadonneeModele->chargerListeDesListes();
113
		$data['listes'] = $this->MetadonneeModele->chargerListeDesListes();
114
		$metadonnee_modification = $this->getVue(Config::get('dossier_squelettes_metadonnees').'metadonnee_modification',$data);
114
		$metadonnee_modification = $this->getVue(Config::get('dossier_squelettes_metadonnees').'metadonnee_modification',$data);
115
 
115
 
116
		return $metadonnee_modification;
116
		return $metadonnee_modification;
117
	}
117
	}
118
 
118
 
119
	/**
119
	/**
120
	 * Ajoute un nouveau champ de mappage à un annuaire
120
	 * Ajoute un nouveau champ de mappage à un annuaire
121
	 * @param Array $valeurs les valeurs à ajouter
121
	 * @param Array $valeurs les valeurs à ajouter
122
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
122
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
123
	 */
123
	 */
124
	public function ajouterNouveauMappage($valeurs) {
124
	public function ajouterNouveauMappage($valeurs) {
125
 
125
 
126
		$this->ChargerModele('MappageModele');
126
		$this->ChargerModele('MappageModele');
127
		
127
		
128
		if(isset($valeurs['id_annuaire'])
128
		if(isset($valeurs['id_annuaire'])
129
			&& isset($valeurs['at_valeur'])
129
			&& isset($valeurs['at_valeur'])
130
			&& isset($valeurs['at_ressource'])
130
			&& isset($valeurs['at_ressource'])
131
			&& isset($valeurs['at_action'])) {
131
			&& isset($valeurs['at_action'])) {
132
	
132
	
133
			$id_annuaire = $valeurs['id_annuaire'];
133
			$id_annuaire = $valeurs['id_annuaire'];
134
			$id_champ_metadonnee = $valeurs['at_valeur'];
134
			$id_champ_metadonnee = $valeurs['at_valeur'];
135
			$nom_champ_annuaire = $valeurs['at_ressource'];
135
			$nom_champ_annuaire = $valeurs['at_ressource'];
136
			$role = $valeurs['at_action'];	
136
			$role = $valeurs['at_action'];	
137
				
137
				
138
			$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom_champ_annuaire, $role, $id_champ_metadonnee);
138
			$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom_champ_annuaire, $role, $id_champ_metadonnee);
139
		} else  {
139
		} else  {
140
			return $this->afficherFormulaireAjoutMappage($valeurs);
140
			return $this->afficherFormulaireAjoutMappage($valeurs);
141
		}
141
		}
142
		return $this->chargerAnnuaire($valeurs['id_annuaire']);
142
		return $this->chargerAnnuaire($valeurs['id_annuaire']);
143
	}
143
	}
144
 
144
 
145
	/**
145
	/**
146
	 * Modifie un champ de mapagge associé à un annuaire
146
	 * Modifie un champ de mapagge associé à un annuaire
147
	 * @param Array $valeurs les valeurs à modifier
147
	 * @param Array $valeurs les valeurs à modifier
148
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
148
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
149
	 */
149
	 */
150
	public function modifierMappage($valeurs) {
150
	public function modifierMappage($valeurs) {
151
 
151
 
152
		if(isset($valeurs['amc_id_champ'])
152
		if(isset($valeurs['amc_id_champ'])
153
			&& isset($valeurs['amc_nom'])
153
			&& isset($valeurs['amc_nom'])
154
			&& isset($valeurs['amc_abreviation'])
154
			&& isset($valeurs['amc_abreviation'])
155
			&& isset($valeurs['amc_description'])
155
			&& isset($valeurs['amc_description'])
156
			&& isset($valeurs['amc_ce_annuaire'])
156
			&& isset($valeurs['amc_ce_annuaire'])
157
			&& isset($valeurs['amc_ce_type_affichage'])) {
157
			&& isset($valeurs['amc_ce_type_affichage'])) {
158
			$this->chargerModele('MetadonneeModele');
158
			$this->chargerModele('MetadonneeModele');
159
			$this->MetadonneeModele->modifierMetadonnee($valeurs);
159
			$this->MetadonneeModele->modifierMetadonnee($valeurs);
160
		} else  {
160
		} else  {
161
			return $this->afficherFormulaireModificationMetadonnee($valeurs);
161
			return $this->afficherFormulaireModificationMetadonnee($valeurs);
162
		}
162
		}
163
		return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']);
163
		return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']);
164
	}
164
	}
165
 
165
 
166
	/**
166
	/**
167
	 * Supprime un champ de métadonnée associé à un annuaire
167
	 * 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
168
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
169
	 */
169
	 */
170
	public function supprimerMappage($id_annuaire, $id_mappage) {
170
	public function supprimerMappage($id_annuaire, $id_mappage) {
171
 
171
 
172
		if($id_metadonnee != '') {
172
		if($id_metadonnee != '') {
173
			$this->chargerModele('MetadonneeModele');
173
			$this->chargerModele('MetadonneeModele');
174
			$this->MetadonneeModele->supprimerMetadonneeParId($id_metadonnee);
174
			$this->MetadonneeModele->supprimerMetadonneeParId($id_metadonnee);
175
		} else  {
175
		} else  {
176
			return false;
176
			return false;
177
		}
177
		}
178
		return $this->chargerAnnuaire($id_annuaire);
178
		return $this->chargerAnnuaire($id_annuaire);
179
	}
179
	}
180
 
180
 
181
}
181
}
-
 
182
?>
182
183