Subversion Repositories Applications.annuaire

Rev

Rev 164 | Rev 360 | 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
 
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
		$champs_deja_mappe_annuaire = array_intersect_key($champs_mappage[0], $liste_champs_mappage);
144 aurelien 67
 
161 aurelien 68
		$champs_deja_mappe_metadonnees = array_intersect_key($champs_mappage[1], $liste_champs_mappage);
144 aurelien 69
 
161 aurelien 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);
144 aurelien 72
 
161 aurelien 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);
75
 
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));
144 aurelien 78
 
161 aurelien 79
		$data['champs_mappage'] = $liste_champs_mappage;
80
		$data['champs_metadonnees'] = $champs_metadonnees;
81
		$data['champs_annuaire'] = $champs_annuaire;
144 aurelien 82
 
161 aurelien 83
		$data['id_annuaire'] = $id_annuaire;
144 aurelien 84
 
161 aurelien 85
		$mappage_ajout = $this->getVue(Config::get('dossier_squelettes_metadonnees').'mappage_ajout',$data);
144 aurelien 86
 
161 aurelien 87
		return $mappage_ajout;
144 aurelien 88
	}
89
 
90
	/**
91
	 * Affiche le formulaire de modification d'une metadonnee
92
	 * @param Array $valeurs les valeurs à inclure dans le formulaire
93
	 * @return string la vue contenant le formulaire
94
	 */
95
	public function afficherFormulaireModificationMappage($id_mappage) {
96
 
97
		if(!isset($valeurs['amc_nom'])) {
98
			$valeurs['amc_nom'] = '';
99
		}
100
 
101
		if(!isset($valeurs['amc_abreviation'])) {
102
				$valeurs['amc_abreviation'] = '';
103
		}
104
 
105
		if(!isset($valeurs['amc_description'])) {
106
				$valeurs['amc_description'] = '';
107
		}
108
		$data['valeur'] = $valeurs;
109
 
110
		$this->chargerModele('MetadonneeModele');
111
		$data['valeur'] = $this->MetadonneeModele->chargerInformationsMetadonnee($valeurs['amc_id_champ']);
112
		$data['types'] = $this->MetadonneeModele->chargerListeDesTypesDeChamps();
113
		$data['listes'] = $this->MetadonneeModele->chargerListeDesListes();
114
		$metadonnee_modification = $this->getVue(Config::get('dossier_squelettes_metadonnees').'metadonnee_modification',$data);
115
 
116
		return $metadonnee_modification;
117
	}
118
 
119
	/**
161 aurelien 120
	 * Ajoute un nouveau champ de mappage à un annuaire
144 aurelien 121
	 * @param Array $valeurs les valeurs à ajouter
122
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
123
	 */
124
	public function ajouterNouveauMappage($valeurs) {
125
 
161 aurelien 126
		$this->ChargerModele('MappageModele');
127
 
144 aurelien 128
		if(isset($valeurs['id_annuaire'])
161 aurelien 129
			&& isset($valeurs['at_valeur'])
130
			&& isset($valeurs['at_ressource'])
131
			&& isset($valeurs['at_action'])) {
132
 
133
			$id_annuaire = $valeurs['id_annuaire'];
134
			$id_champ_metadonnee = $valeurs['at_valeur'];
135
			$nom_champ_annuaire = $valeurs['at_ressource'];
136
			$role = $valeurs['at_action'];
137
 
138
			$this->MappageModele->ajouterNouveauMappage($id_annuaire, $nom_champ_annuaire, $role, $id_champ_metadonnee);
144 aurelien 139
		} else  {
140
			return $this->afficherFormulaireAjoutMappage($valeurs);
141
		}
161 aurelien 142
		return $this->chargerAnnuaire($valeurs['id_annuaire']);
144 aurelien 143
	}
144
 
145
	/**
146
	 * Modifie un champ de mapagge associé à un annuaire
147
	 * @param Array $valeurs les valeurs à modifier
148
	 * @return string la vue contenant l'annuaire associé, ou le formulaire en cas d'échec
149
	 */
150
	public function modifierMappage($valeurs) {
151
 
152
		if(isset($valeurs['amc_id_champ'])
153
			&& isset($valeurs['amc_nom'])
154
			&& isset($valeurs['amc_abreviation'])
155
			&& isset($valeurs['amc_description'])
156
			&& isset($valeurs['amc_ce_annuaire'])
157
			&& isset($valeurs['amc_ce_type_affichage'])) {
158
			$this->chargerModele('MetadonneeModele');
159
			$this->MetadonneeModele->modifierMetadonnee($valeurs);
160
		} else  {
161
			return $this->afficherFormulaireModificationMetadonnee($valeurs);
162
		}
163
		return $this->chargerAnnuaire($valeurs['amc_ce_annuaire']);
164
	}
165
 
166
	/**
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
169
	 */
170
	public function supprimerMappage($id_annuaire, $id_mappage) {
171
 
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);
179
	}
180
 
181
}
294 aurelien 182
?>