Problème classe
le 02/03/2005 à 09:03
eljam
le 02/03/2005 à 09:33
Rex
Je ne comprend pas bien ton problème !
Tiens, j'vous crée un système de template en live (pas testé donc) :
<?php
<?php
class Template {
var $vars = array();
var $replace = array();
var $fileName = null;
function Template($fileName) {
if (! file_exists($fileName)) die('Template inexistant');
$this->fileName = $fileName;
}
function set($varName, $value) {
$this->vars[] = '{' . $varName . '}';
$this->replace[] = $value;
}
function parse() {
return str_replace($this->vars, $this->replace, file_get_contents($this->fileName));
}
function display() {
echo $this->parse();
}
}
?>
?>
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
le 02/03/2005 à 09:53
Rex
Enfin, personnellement je ne vois pas l'intérêt de ce genre de système. Pourquoi ne pas mettre des "<?php echo ?>" à la place de "{variable}" ??
Tiens, voici un code que j'utilise :
<?php
require 'Laurence.class.php';
$page = new Laurence('test.html');
$page->titre = 'Le titre';
$page->table = array(7,5,1,19,17,2,8);
$page->display();
?>
Et voici le contenu de "test.html" :
<html>
<head>
<title><?php echo $this->dataSource['titre']; ?></title>
</head>
<body>
<h1><?php echo $this->dataSource['titre']; ?></h1>
<table>
<tbody>
<?php $list_classe = array('paire'=>'impaire', 'impaire'=>'paire'); $this->dataSource['classe'] = 'impaire'; foreach( $this->dataSource['table'] as $this->dataSource['valeur']) { $this->dataSource['classe'] = $list_classe[$this->dataSource['classe']]; ?>
<tr class="<?php echo $this->dataSource['classe']; ?>"><td><?php echo $this->dataSource['valeur']; ?></td></tr>
<?php } ?>
</tbody>
</table>
</body>
</html>
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
le 02/03/2005 à 16:44
eljam
En fait l'intérêt premier c de séparé le code du template. Ce que je pensais faire c'était avoir des variables entre {} et ensuite de faire correspondre tout le code d'une page à une variable pour gérer l'affichage de menu ou de block. Mais en fait j'ai trouvé une autre solution avec la classe qe j'ai.
Merci pour l'exemple.
le 02/03/2005 à 19:31
Rex
En fait l'intérêt premier c de séparé le code du template.
Je n'ai jamais pu comprendre pourquoi les gens faisaient ça. A part ralentir les pages, ça n'apporte rien ...
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
le 02/03/2005 à 19:33
Rex
HAAaaa ... siii ... je sais pourquoi !
En fait, les gens ont besoin de barrière sinon, ils font de la merde.
En gros, ils ont peur de mélanger le traitement de l'affichage, alors ils s'imposent une telle bêtise pour éviter les débordements !
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
rex est en forme en ce moment
>> http://projectopensource.free.fr/index.php?m=2&m2=5&s=8 <<
le 03/03/2005 à 09:18
Rex
Ui !
Non aux BBCodes et non aux templates idiots.
Vive l'autogénération !!!
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
Non aux BBCodes
La je te suis pas bien...
c 'est incroyable ce que je peux écrire comme conneries
le 04/03/2005 à 10:54
Rex
C'est parce que tu n'as pas suivi certaines conversations (voir par exemple le sujet sur les expressions régulières).
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines