Subversion Repositories Applications.annuaire

Rev

Rev 294 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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