Subversion Repositories Applications.annuaire

Rev

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

Rev 571 Rev 580
Line 524... Line 524...
524
		$contenu = str_replace('<?=', '<?php echo ',  $contenu);
524
		$contenu = str_replace('<?=', '<?php echo ',  $contenu);
525
		// Ajout systématique d'un point virgule avant la fermeture php
525
		// Ajout systématique d'un point virgule avant la fermeture php
526
		$contenu = preg_replace("/;*\s*\?>/", "; ?>", $contenu);
526
		$contenu = preg_replace("/;*\s*\?>/", "; ?>", $contenu);
527
		return $contenu;
527
		return $contenu;
528
	}
528
	}
-
 
529
 
-
 
530
	/**
-
 
531
	 * Crée un nom Wiki (de la forme "JeanTalus") à partir des données de l'utilisateur;
-
 
532
	 * gère l'utilisation du pseudo mais pas la collision de noms Wiki @TODO s'en occuper
-
 
533
	 * 
-
 
534
	 * @param array $infos des infos de profil utilisateur - on admet qu'elles contiennent "intitule"
-
 
535
	 * @return string un nom wiki correspondant à l' "intitulé" de l'utilisateur (prénom-nom ou pseudo)
-
 
536
	 * 		ou la valeur par défaut de $defaut si celui-ci est fourni et si le nom Wiki n'a pu être construit
-
 
537
	 */
-
 
538
	public function formaterNomWiki($intitule, $defaut="ProblemeNomWiki") {
-
 
539
		$nw = $this->convertirEnCamelCase($intitule);
-
 
540
		// on sait jamais
-
 
541
		if ($nw == "") {
-
 
542
			$nw = $defaut;
-
 
543
		}
-
 
544
 
-
 
545
		return $nw;
-
 
546
	}
-
 
547
	
-
 
548
	protected function convertirEnCamelCase($str) {
-
 
549
		// Suppression des accents
-
 
550
		$str = $this->supprimerAccents($str);
-
 
551
		// Suppression des caractères non alphanumériques
-
 
552
		$str = preg_replace('/[^\da-z]/i', '', ucwords(strtolower($str)));
-
 
553
		return $str;
-
 
554
	}
-
 
555
 
-
 
556
	protected function supprimerAccents($str, $charset='utf-8') {
-
 
557
		$str = htmlentities($str, ENT_NOQUOTES, $charset);
-
 
558
 
-
 
559
		$str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
-
 
560
		$str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. '&oelig;'
-
 
561
		$str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères
-
 
562
 
-
 
563
		return $str;
-
 
564
	}
529
}
565
}
530
?>
566
?>
531
567