Subversion Repositories Applications.annuaire

Rev

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

Rev 144 Rev 161
Line 29... Line 29...
29
		$annuaire = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'annuaire', $data);
29
		$annuaire = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'annuaire', $data);
Line 30... Line 30...
30
 
30
 
31
		return $annuaire;
31
		return $annuaire;
Line 32... Line 32...
32
	}
32
	}
33
	
-
 
34
/**--------Fonctions d'ajout et de modification des annuaires --------*/	
-
 
35
	
-
 
36
	public function ajouterAnnuaire($valeurs) {
-
 
37
		
-
 
38
		$champs = array(
-
 
39
			"aa_nom" => '',
-
 
40
			"aa_description" => '',
-
 
41
			"aa_bdd" => '',
-
 
42
			"aa_table" => '',
-
 
43
			"aa_code" => '',
-
 
44
			"aa_champ_id" => '',
-
 
45
			"aa_champ_nom" => '',
-
 
46
			"aa_champ_mail" => '',
33
	
47
			"aa_champ_pass" => ''
-
 
48
		);
34
/**--------Fonctions de gestion des champs de mappage associées à un annuaire et des formaulaires associés --------*/
49
		
-
 
50
		$donnees = array('erreurs_champs' => array());
35
	/**
51
		
36
	 * Affiche le formulaire d'ajout d'une metadonnee
52
		// vérification de la présence de tous les champs
-
 
53
		foreach($champs as $nom_champ => $valeur) {
-
 
54
			if(!isset($valeurs[$nom_champ]) || $valeurs[$nom_champ] == '') {
37
	 * @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur)
55
				$donnees['erreurs_champs'][$nom_champ] = 'Ce champ est obligatoire';
-
 
56
			}
-
 
57
		}
-
 
58
		
-
 
59
		// si il y a une erreur on réaffiche le formulaire
38
	 * @return string la vue contenant le formulaire
60
		if(!empty($donnees['erreurs_champs'])) {
-
 
61
			return $this->afficherFormulaireAjoutAnnuaire($donnees);
-
 
62
		}
-
 
63
		
39
	 */
64
		$champs_a_verifier = array($valeurs[aa_champ_id],$valeurs[aa_champ_nom],$valeurs[aa_champ_mail],$valeurs[aa_champ_pass]);
-
 
65
		
-
 
66
		$informations_annuaire = array(
-
 
67
			"aa_nom" => $valeurs['aa_nom'],
-
 
68
			"aa_description" => $valeurs['aa_description'],
-
 
69
			"aa_bdd" => $valeurs['aa_bdd'],
40
	public function afficherFormulaireAjoutMappage($id_annuaire, $donnees = array()) {
70
			"aa_table" => $valeurs['aa_table'],
-
 
71
			"aa_code" => $valeurs['aa_code'],
-
 
72
		);
-
 
73
		
-
 
74
		$informations_champs = array(
-
 
75
			"aa_champ_id" => $valeurs['aa_champ_id'],
-
 
76
			"aa_champ_nom" => $valeurs['aa_champ_nom'],
-
 
77
			"aa_champ_mail" => $valeurs['aa_champ_mail'],
-
 
78
			"aa_champ_pass" => $valeurs['aa_champ_pass']
-
 
79
		);
41
 
80
		
-
 
81
		$this->chargerModele('GestionAnnuaireModele');
-
 
82
		$annuaire_existe = $this->GestionAnnuaireModele->verifierPresenceTable($valeurs['aa_bdd'], $valeurs['aa_table']);
-
 
83
		
-
 
84
		// si l'annuaire existe déjà
-
 
85
		if($annuaire_existe) {
-
 
86
			$champs_existent = $this->GestionAnnuaireModele->verifierPresenceChamps($valeurs['aa_bdd'], $valeurs['aa_table'], $champs_a_verifier);
-
 
87
			// si l'annuaire existe déjà
-
 
88
			if($champs_existent) {
-
 
89
				// on insere un nouvel enregistrement dans la table des annuaire
-
 
90
				$id_annuaire = $this->GestionAnnuaireModele->AjouterAnnuaire($informations_annuaire);
-
 
91
				
-
 
92
				if(!$id_annuaire) {
-
 
93
					$donnees['erreurs_champs'][$nom_champ] = 'Impossible d\'ajouter les infos de la table '.$valeurs['aa_table'].' dans la base de données '.$valeurs['aa_bdd'] ;
-
 
94
				}
-
 
95
				
-
 
96
				// on cree un set de métadonnées minimal
-
 
97
				$this->creerEtMapperChampsMetadonneeMinimaux($id_annuaire, $informations_champs);
-
 
Line 98... Line 42...
98
			}
42
		$this->chargerModele('MetadonneeModele');
Line -... Line 43...
-
 
43
		$this->chargerModele('GestionAnnuaireModele');
-
 
44
		
-
 
45
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
-
 
46
		
-
 
47
		$liste_champs_mappage = array('champ_id' => 'Champ identifiant',
-
 
48
		'champ_pass' => 'Champ mot de passe',
-
 
49
		'champ_nom' => 'Champ nom',  
-
 
50
  		'champ_prenom' => 'Champ prénom' , 
-
 
51
  		'champ_mail' => 'Champ mail',  
-
 
52
  		'champ_pays' => 'Champ pays',  
99
		}
53
  		'champ_code_postal' => 'Champ code postal', 
-
 
54
  		'champ_adresse' => 'Champ adresse',  
-
 
55
  		'champ_adresse_comp' => 'Champ adresse complémentaire',
100
		
56
		'champ_adresse_comp' => 'Champ adresse complémentaire'); 
101
		return $this->chargerAnnuaire($id_annuaire);
57
		
Line 102... Line -...
102
		
-
 
103
	}
58
		$champs_metadonnees = $this->MetadonneeModele->chargerListeMetadonneeAnnuaire($id_annuaire);
104
	
59
		$champs_annuaire = $this->GestionAnnuaireModele->obtenirListeNomsChampsAnnuaireParIdAnnuaire($id_annuaire);
Line 105... Line -...
105
	private function creerEtMapperChampsMetadonneeMinimaux($id_annuaire, $informations_champs) {
-
 
106
		
-
 
107
		$metadonnee_controleur = new MetadonneeControleur();
60
				
Line 108... Line -...
108
		$this->chargerModele('MappageModele');
-
 
109
		$this->chargerModele('MetadonneeModele');
-
 
110
		
-
 
111
		foreach($informations_champs as $type_champ => $nom) {
-
 
112
			
-
 
113
			$role = str_replace('aa_','',$type_champ);
-
 
114
			
-
 
115
			if($role == 'champ_id') {
-
 
116
				$valeurs_mappage = array(
-
 
117
					'id_annuaire' => $id_annuaire,
-
 
118
					'id_champ_annuaire' => $nom,
-
 
119
					'role' => 'champ_id',
-
 
120
					'id_champ_metadonnee' => ''
-
 
121
				);
-
 
122
				$creation = $this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom, 'champ_id', '0');
-
 
123
 
-
 
124
			} else {
-
 
125
				
-
 
126
				$valeurs_insertion = $this->renvoyerInformationChampPourType($id_annuaire, $role, $nom);
-
 
127
				
-
 
128
				$metadonnee_controleur->ajouterNouvelleMetadonnee($valeurs_insertion);
61
		$roles_deja_affectes = array_intersect_key($liste_champs_mappage, $champs_mappage[0]);
129
				
-
 
130
				$id_champ_metadonnee = $this->MetadonneeModele->renvoyerIdChampMetadonneeParAbreviation($id_annuaire, $valeurs_insertion['amc_abreviation']);
-
 
131
				
-
 
Line 132... Line 62...
132
				// on affecte à chaque champ son role
62
		
133
				$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom, $role, $id_champ_metadonnee);
-
 
Line 134... Line 63...
134
				// et on le rend obligatoire
63
		//Debug::printr($champs_mappage[0]);
-
 
64
		//Debug::printr($liste_champs_mappage);
Line -... Line 65...
-
 
65
		
135
				$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom, 'champ_obligatoire', $id_champ_metadonnee);
66
		//Debug::printr($roles_deja_affectes);
-
 
67
			
136
 
68
		$champs_deja_mappe_annuaire = array_intersect_key($champs_mappage[0], $liste_champs_mappage);
-
 
69
		
Line 137... Line 70...
137
			}
70
		$champs_deja_mappe_metadonnees = array_intersect_key($champs_mappage[1], $liste_champs_mappage);
-
 
71
	
-
 
72
		// on retire les roles déjà affectés dans la liste des roles
Line 138... Line -...
138
		}
-
 
139
		
-
 
140
		return true;
-
 
141
	}
-
 
142
	
-
 
143
	private function renvoyerInformationChampPourType($id_annuaire, $type, $nom) {
-
 
144
		
-
 
145
		$valeurs = array();
-
 
146
		$this->chargerModele('MetadonneeModele');
73
		$liste_champs_mappage = array_diff_key($liste_champs_mappage, $roles_deja_affectes);
147
		
-
 
148
		$id_liste_champs = $this->id_liste_champs;
-
 
149
		
-
 
150
		switch($type) {
-
 
151
			case 'champ_nom':
-
 
152
				
-
 
153
				$affichage = $this->MetadonneeModele->renvoyerCorrespondanceIdParAbreviation('text',$id_liste_champs);
-
 
154
				
-
 
155
				$valeurs = array('amc_nom' => $nom,
-
 
156
				'amc_abreviation' => 'nom' ,
-
 
157
				'amc_description' => 'Nom',
-
 
158
				'amc_ce_annuaire' => $id_annuaire,
-
 
159
				'amc_ce_type_affichage' => $affichage,
-
 
160
				'amc_ce_ontologie' => '0'
-
 
161
				);
-
 
162
			break;
-
 
163
			
-
 
164
			case 'champ_mail':
-
 
165
				
-
 
166
				$affichage = $this->MetadonneeModele->renvoyerCorrespondanceIdParAbreviation('mail',$id_liste_champs);
-
 
167
				$valeurs = array('amc_nom' => $nom,
-
 
168
				'amc_abreviation' => 'mail',
-
 
169
				'amc_description' => 'Adresse electronique',
-
 
170
				'amc_ce_annuaire' => $id_annuaire,
-
 
171
				'amc_ce_type_affichage' => $affichage,
-
 
172
				'amc_ce_ontologie' => '0'
-
 
173
				);
-
 
174
			break;
-
 
175
			
-
 
Line 176... Line -...
176
			case 'champ_pass':
-
 
177
				
-
 
178
				$affichage = $this->MetadonneeModele->renvoyerCorrespondanceIdParAbreviation('password',$id_liste_champs);
-
 
179
				$valeurs = array('amc_nom' => $nom,
-
 
180
				'amc_abreviation' => 'pass',
-
 
181
				'amc_description' => 'Mot de passe',
-
 
182
				'amc_ce_annuaire' => $id_annuaire,
-
 
183
				'amc_ce_type_affichage' => $affichage,
-
 
184
				'amc_ce_ontologie' => '0'
-
 
185
				);
-
 
186
			break;
-
 
187
		}
-
 
188
		
-
 
189
		return $valeurs;
-
 
190
	}
-
 
191
	
-
 
192
	/**
-
 
193
	 * Affiche le formulaire d'ajout d'une metadonnee
-
 
194
	 * @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur)
-
 
195
	 * @return string la vue contenant le formulaire
-
 
196
	 */
-
 
197
	public function afficherFormulaireAjoutAnnuaire($donnees) {
-
 
198
 
-
 
199
		$champs = array(
74
		
200
			"aa_nom" => '',
-
 
201
			"aa_description" => '',
-
 
202
			"aa_bdd" => '',
-
 
203
			"aa_table" => '',
-
 
204
			"aa_code" => '',
-
 
205
			"aa_champ_id" => '',
-
 
206
			"aa_champ_nom" => '',
-
 
207
			"aa_champ_mail" => '',
-
 
208
			"aa_champ_pass" => ''
-
 
209
		);
-
 
210
		$donnees = $donnees;
-
 
211
 
-
 
212
		$formulaire_ajout_annuaire = $this->getVue(Config::get('dossier_squelettes_gestion_annuaires').'annuaire_ajout',$donnees);
-
 
213
 
-
 
214
		return $formulaire_ajout_annuaire;
-
 
215
	}
-
 
216
 
-
 
217
	
-
 
218
	
-
 
219
/**--------Fonctions de gestion des champs de mappage associées à un annuaire et des formaulaires associés --------*/
-
 
220
	/**
-
 
Line 221... Line -...
221
	 * Affiche le formulaire d'ajout d'une metadonnee
-
 
222
	 * @param Array $valeurs les valeurs à inclure dans le formulaire (dans le cas du retour erreur)
-
 
223
	 * @return string la vue contenant le formulaire
-
 
224
	 */
-
 
225
	public function afficherFormulaireAjoutMappage($id_annuaire) {
-
 
226
 
-
 
227
		if(!isset($valeurs['amc_nom'])) {
-
 
228
			$valeurs['amc_nom'] = '';
-
 
229
		}
-
 
230
 
-
 
231
		if(!isset($valeurs['amc_abreviation'])) {
75
		// on retire les champs de l'annuaire qui sont déjà mappés
232
				$valeurs['amc_abreviation'] = '';
76
		$champs_annuaire = array_diff($champs_annuaire, $champs_deja_mappe_annuaire);
Line 233... Line 77...
233
		}
77
				
234
 
78
		// on retire les champ de metadonnées qui mappent déjà un champ
235
		if(!isset($valeurs['amc_description'])) {
79
		$champs_metadonnees = array_diff_key($champs_metadonnees, array_flip($champs_deja_mappe_metadonnees));
Line 273... Line 117...
273
 
117
 
274
		return $metadonnee_modification;
118
		return $metadonnee_modification;
Line 275... Line 119...
275
	}
119
	}
276
 
120
 
277
	/**
121
	/**
278
	 * Ajoute un nouveau champ de métadonnée à un annuaire
122
	 * Ajoute un nouveau champ de mappage à un annuaire
279
	 * @param Array $valeurs les valeurs à ajouter
123
	 * @param Array $valeurs les valeurs à ajouter
280
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
124
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
Line -... Line 125...
-
 
125
	 */
-
 
126
	public function ajouterNouveauMappage($valeurs) {
281
	 */
127
 
282
	public function ajouterNouveauMappage($valeurs) {
128
		$this->ChargerModele('MappageModele');
283
 
129
		
284
		if(isset($valeurs['id_annuaire'])
130
		if(isset($valeurs['id_annuaire'])
-
 
131
			&& isset($valeurs['at_valeur'])
285
			&& isset($valeurs['id_champ_annuaire'])
132
			&& isset($valeurs['at_ressource'])
286
			&& isset($valeurs['role'])
133
			&& isset($valeurs['at_action'])) {
-
 
134
	
-
 
135
			$id_annuaire = $valeurs['id_annuaire'];
-
 
136
			$id_champ_metadonnee = $valeurs['at_valeur'];
-
 
137
			$nom_champ_annuaire = $valeurs['at_ressource'];
287
			&& isset($valeurs['id_champ_metadonnee'])) {
138
			$role = $valeurs['at_action'];	
288
			$this->chargerModele('MappageModele');
139
				
289
			$this->MetadonneeModele->ajouterNouveauMappage($valeurs);
140
			$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom_champ_annuaire, $role, $id_champ_metadonnee);
290
		} else  {
141
		} else  {
291
			return $this->afficherFormulaireAjoutMappage($valeurs);
142
			return $this->afficherFormulaireAjoutMappage($valeurs);
Line 292... Line 143...
292
		}
143
		}
293
		return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']);
144
		return $this->chargerAnnuaire($valeurs['id_annuaire']);
294
	}
145
	}