Subversion Repositories Applications.annuaire

Rev

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

Rev 542 Rev 557
Line 80... Line 80...
80
		} else {
80
		} else {
81
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
81
			$info = 'Un problème est survenu : '.print_r($this->messages, true);
82
			$this->envoyerTxt($info);
82
			$this->envoyerTxt($info);
83
		}
83
		}
84
	}
84
	}
85
	
85
 
-
 
86
	/**
-
 
87
	 * Méthode temporaire pour SmartForm
-
 
88
	 * @TODO virer cette méthode dès qu'on l'aura remplacée par le SSO
-
 
89
	 */
86
	public function getIdentiteConnectee() {
90
	public function getIdentiteConnectee() {
87
		if (isset($_COOKIE[$this->config['database_ident']['nom_cookie_persistant']])) {
91
		if (isset($_COOKIE[$this->config['database_ident']['nom_cookie_persistant']])) {
Line 88... Line 92...
88
		
92
		
89
			$cookie = $_COOKIE[$this->config['database_ident']['nom_cookie_persistant']];
93
			$cookie = $_COOKIE[$this->config['database_ident']['nom_cookie_persistant']];
Line 107... Line 111...
107
			echo json_encode(array());
111
			echo json_encode(array());
108
		}
112
		}
Line 109... Line 113...
109
		
113
		
110
		exit;
114
		exit;
111
	}
115
	}
-
 
116
 
-
 
117
	/**
112
	
118
	 * Crée un nom Wiki (de la forme "JeanTalus") à partir des données de l'utilisateur;
113
	private function formaterNomWiki($infos) {
119
	 * gère l'utilisation du pseudo mais pas la collision de noms Wiki @TODO s'en occuper
-
 
120
	 * 
-
 
121
	 * @param array $infos des infos de profil utilisateur - on admet qu'elles contiennent "intitule"
-
 
122
	 * @return string un nom wiki correspondant à l' "intitulé" de l'utilisateur (prénom-nom ou pseudo)
-
 
123
	 * 		ou la valeur par défaut de $defaut si celui-ci est fourni et si le nom Wiki n'a pu être construit
-
 
124
	 */
-
 
125
	public function formaterNomWiki($infos, $defaut="ProblemeNomWiki") {
-
 
126
		$nw = $defaut;
114
		
127
		// calcul du nom d'après l'intitulé, qui gère déjà le pseudo
-
 
128
		$intitule = $this->supprimerAccents($infos['intitule']);
-
 
129
		$nwParts = explode(" ", $intitule);
115
		$prenom = ucfirst(strtolower($this->supprimerAccents($infos['prenom'])));
130
		foreach ($nwParts as &$part) {
-
 
131
			$part = ucfirst(strtolower($part));
-
 
132
		}
-
 
133
		$nw = implode("", $nwParts);
-
 
134
		// on sait jamais
-
 
135
		if ($nw == "") {
-
 
136
			$nw = $defaut;
-
 
137
		}
116
		$nom = ucfirst(strtolower($this->supprimerAccents($infos['nom'])));
138
 
117
		return $prenom.$nom;
139
		return $nw;
118
	}
140
	}
119
	
141
 
120
	function supprimerAccents($str, $charset='utf-8') {
142
	protected function supprimerAccents($str, $charset='utf-8') {
121
		$str = htmlentities($str, ENT_NOQUOTES, $charset);
143
		$str = htmlentities($str, ENT_NOQUOTES, $charset);
122
	
144
 
123
		$str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
145
		$str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
124
		$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
146
		$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ'
125
		$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères
147
		$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères
126
	
148
 
127
		return $str;
149
		return $str;
Line 128... Line 150...
128
	}
150
	}
129
 
151