je suis en train de modifier le systeme de template employé sur mon site pour le rendre plus flexible. Apres une petite recherche, j'ai décidé de préférer un systeme basé sur simplexml plutot que d'utiliser des transformation xsl que je juge trop gourmande en ressource sans systeme de cache ou qu'un systeme de template plus classique type smarty, pas assez flexible pour ce que je veux faire.
La méthode commence donc par parser un fichier xml pour le convertir en object simplexml. Ensuite un série de modification sont opérées à l'objet ainsi créer (création, modification ou suppréssions de noeux...). puis le rendu est obtenu via la méthode asXML() de simplexml.
Je trouve le résultat plutot probant mais je rencontre néanmois un probleme pour remplir le dernier point du cahier des charges : L'objectif est d'appliquer une méthode à tous les derniers elements de l'object simplexml. Je pense qu'un exemple sera plus clair :
Code : Tout sélectionner
[b]Le fichier parsé : [/b]
<html>
<head>
<title>about:blank</title>
</head>
<body>
<div id="tete">
<form id="recherche" name="recherche" action="." method="post">
<input type="text" name="q"/>
<input type="submit"/>
</form>
</div>
<div id="contenu">
<h1>about:blank</h1>
</div>
[b]La méthode : [/b]
<?php
function __construct() {
$this->xml = $this->format(simplexml_load_file($this->tpldir.$this->tpl.$this->tplext));
$this->xml->head->title .= ' | Le syndrome de la page blanche';
array_walk_recursive($this->xml,array($this,'format'));
$this->xml = $this->xml->asXML();
}
function format($t,$v) {$this->xml->$t = htmlentities($v);}
?>
Si vous avez des idées pour résoudre ce probleme...
Merci ^^