Bonjour, j'ai écris un petit code permettant de gérer des templates en php4 avec des objets. Les templates sont correctement placés mais je rencontre des soucis pour intégrer des variables à l'intérieur de ces templates. J'ai testé deux méthodes:
-la première:
Code class_tpl.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 class template { var $name; var $folder; var $tpl; function template ($folder) { $this->name = ''; $this->folder = $folder."/tpl/"; $this->tpl = ''; } function get ($tplname) { if (!empty ($tplname)) $this->name = $tplname.'.tpl'; $this->tpl = $this->folder.$this->name; if (file_exists ($this->tpl)) { $temp = fopen ($this->tpl, "r"); $this->tpl = fread ($temp, filesize ($this->tpl)); print $this->tpl; } else echo 'le template '.$this->tpl.' n\' existe pas!'; } };
Code index.php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 include 'include/config.php'; $pagetitle = 'index'; $tpl->get ('header');
Code header.tpl : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3<head> <title><?php echo $pagetitle ?></title> </head>
Ce qui donne pour résultat dans le titre de la page web: "<?php echo $pagetitle ?>"
-deuxième méthode: fonction include à la place de fopen:
Code class_tpl.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 class template { var $name; var $folder; var $tpl; function template ($folder) { $this->name = ''; $this->folder = $folder."/tpl/"; $this->tpl = ''; } function get ($tplname) { if (!empty ($tplname)) $this->name = $tplname.'.tpl'; $this->tpl = $this->folder.$this->name; if (file_exists ($this->tpl)) { include $this->tpl; } else echo 'le template '.$this->tpl.' n\' existe pas!'; } };
Ce qui donne pour résultat dans le titre de la page web: "notice: undefined variable..."
Auriez vous une idée?
Partager