Bonjour à tous,

Je début dans le xml et les class. Mais si j'ai reussi à faire un truc de bien, ma question va peut etre vous sembler élémentaire.

J'ai trouvé un code qui me permet de faire un site milti langue avec XML.

Ca marche bien, mais je n'arrive pas à formater mon texte avec de sbalise <ul><li></li></ul>, par exemple.

Alors j'ai finallement préféré utiliser une class.

Dans cette class, un fonction charge un fichier XML et j'aimerai l'adapter pour remplace mon fichier fr.xml par fr.php.

Es-ce que je peux mettre un dans une class?

Aussi, pourrize-vous me guider pour adapter cette class?
Je vais vous mettre le code en dessous.

Aussi, dans mes page web, mes texte sont appelé ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$langue->text('msg_contact_title');
La variable àlangue est instentiée avec la class Langue()
et va appelé la fonction text() pour affiché la valeur de msg_contact_title.

Ca serait bien que je puisse continué à utiliser ceci pour que je n'ai pas besoin d'aller dans toutes mes page et modifié ceci. Je pense que c'est possible? non?

Voici ma class:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 
<?php
error_reporting(E_ALL & ~E_NOTICE);
 
class Langues {
	// Langue par le code ISO 639 (défaut : français)
	private $_langue = 'fr';
 
	// Dossier contenant les langues
	private $_dirLangue = '';
 
	// Objet SimpleXML
	private $_simpleXML = null;
 
	/*
	Constructeur

	Récupère la langue via le navigateur, sinon charge celle par défaut ou si une langue est spécifiée, on charge celle ci. Permet aussi de spécifier le dossier où ce trouvent les langues

	@access public
	@param $langue, $dirLangue, $fichier
	@return void
	*/
	public function __construct($dirLangue, $fichier, $langue = false) {
		if(is_dir($dirLangue)) {
    		$this->_dirLangue = $dirLangue;
    	}
    	else {
    		$this->_dirLangue = 'langues';
    	}
 
    	if($langue) {
    		$this->_langue = strtolower($langue);
    	}
    	else {
    		if($lang = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2))) {
#    			$this->_langue = $lang;
				$this->_langue = $_SESSION['language'];
    		}
    		else {
    			$this->_langue = 'fr';
    		}
    	}
 
//------- ICI ON REMPLACERA '.fichier.'.xml PAR '.fichier.'.php POUR VOIR SI LE FICHIER EXISTE------//
 
    	if(file_exists($this->_dirLangue.'/'.$this->_langue.'/'.$fichier.'.xml')) {
    		// Chargement du fichier langue
    		$this->loadXmlFile($fichier);
    	}
    	else {
    		die('Fichier XML ('.$this->_dirLangue.'/'.$this->_langue.'/'.$fichier.'.xml) innexistant ! Merci de vérifier que celui ci existe.');
    	}
	}
 
 	/*
 	Charge le fichier XML
 
 	@access private
 	@param $fichier
 	@return void
 	*/
 
 
//----- ICI ES_CE POSSIBLE D?UTILISER UN INCLUDE()? SI NON COMMENT PUIS CHARGER MES VARIABLE SANS AVOIR BESOIN DE LE DöCLARER AVANT LA METHODE AFIN DE MINIMISER LE CODAGE -------//
 
	private function loadXmlFile($fichier) {
		$this->_simpleXML = simplexml_load_file($this->_dirLangue.'/'.$this->_langue.'/'.$fichier.'.xml');
	}
	/*
	Charge le message à afficher

	@access public
	@param $texte
	@return $texte
	*/
	public function text($texte) {
		$resultat = $this->_simpleXML->xpath($texte);
 
		foreach($resultat as $noeud) {
			return $noeud;
		}
	}
}
?>

Es-ce que dans mon fichier fr.php, es ce que je peux faire ainsi?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
$msg_contact_title ="Contactez-nous";
$msg_contact_text = "<p>Bonjour</p><p>Voci un choix</p><ul><li>1</il><li>2</li><li>3</li></ul>.
<p>Cliquz <a href="#">ici</a></p>
"
$msg_contact_text1 = "Aurevoir";
?>

Pourriez-vous m'aider la dessus?

Milles mercis a tous