Subversion Repositories Applications.annuaire

Rev

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