Bonjour, (c'est encore moi)



Je suis actuellement arrivé au chapitre concernant les layout mais malheureusement, je ne comprends pas le passage suivant :
Vous pouvez maintenant afficher votre vue à l'intérieur du layout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?php
 
public function accueil()
{
    $this->load->library('layout');
 
    $this->layout->views('premiere_vue')
             ->views('deuxieme_vue')
             ->view('derniere_vue');
}
Cela permet d'éviter la redondance du code. Sauf… qu'il subsiste un problème. Maintenant, vous n'avez plus accès à tout ce qui se passe dans votre balise <head>. Vous ne pourrez donc plus donner de titre à votre page, ni inclure de fichier CSS, etc. Nous allons remédier à cela tout de suite.

Donc maintenant j'explique mon problème :



J'ai utilisé en suivant le tutoriel sur le site le layout.php qu'on met dans le dossier libraries



Code : 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
<?php	if (!defined('BASEPATH')) exit('No direct script access allowed');
 
class Layout
	{
		private	$CI;
		private	$var	=	array();
 
		/*
		|====================================================
		| Constructeur
		|====================================================
		*/
 
		public function __construct()
			{
				$this->CI =& get_instance();
 
				$this->var['output'] = '';
 
				//  Le titre est composé du nom de la méthode et du nom du contrôleur
				//  La fonction ucfirst permet d'ajouter une majuscule
				$this->var['titre'] = ucfirst($this->CI->router->fetch_method()) . ' - ' . ucfirst($this->CI->router->fetch_class());
 
				//  Nous initialisons la variable $charset avec la même valeur que
				//  la clé de configuration initialisée dans le fichier config.php
				$this->var['charset'] = $this->CI->config->item('charset');
}
 
		/*
		|====================================================
		| Methodes pour charger les vues
		|	. view
		|	. views
		|====================================================
		*/
 
		public	function	view($name, $data = array())
			{
				$this->$var['output']	.=	$this->CI->load->view($name, $data, true);
 
				$this->CI->load->view('../themes/default', array('output' => $this->var));
			}
 
		public	function	views($name, $data = array())
			{
				$this->var['output']	.=	$this->CI->load->view($name, $data, true);
				return	$this;
			}
		/*
		|===============================================================================
		| Méthodes pour modifier les variables envoyées au layout
		|   . set_titre
		|   . set_charset
		|===============================================================================
		*/
		public function set_titre($titre)
			{
				if(is_string($titre) AND !empty($titre))
					{
						$this->var['titre'] = $titre;
						return true;
						return false;
					}
			}
		public function set_charset($charset)
			{
				if(is_string($charset) AND !empty($charset))
					{
						$this->var['charset'] = $charset;
						return true;
					}
				return false;
			}
	}
 
/* End of file layout.php */
/* Location: ./application/libraries/layout.php */

Et n'ayant pas tout a fait compris, j'ai tenté d'inclure ma vue dans ce layout :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
	public function index()
		{
			$this->load->library('layout');
			$this->layout->views('welcome_message');
		}


Quand je vais sur la page pour voir le résultat, j'ai simplement une page blanche et quand j’accède au code source de la page avec Firefox, c'est vide même pas une trace de HTML.

D'avance, merci de votre aide.