Class pour les templates

Contenu du snippet

C'est pour les Template(lol)
Je suis un peu feignant le truc à été fait en une dizaine de minutes...
Bon ben la source n'est pas compliqué c'est un truc tous simple, si ca peut servir...

Source / Exemple :


<?
class template{
var $search  = array();
var $replace = array();
var $file    = "";
var $i       = 0;

function template($name = ""){
if(($this->file=@implode("",@file($name))) || $name == "")return 1;
else return 0;
}

function add($mixed,$el = ""){
if(is_array($mixed)){
$this->file.=implode($el,$mixed);
return 1;
}else if(is_string($mixed) || is_numeric($mixed)){
$this->file.=$mixed;
return 1;
}
return 0;
}

function assign_array($array){
if(is_array($array) && $this->file=="")return 0;
while(list($key,$value)=each($array)){
$this->search[$this->i]='{'.strtoupper($key).'}';
$this->replace[$this->i++]=$value;
return 1;
}//for
}//function

function reset(){
$this->file = "";
$this->search  = array();
$this->replace = array();
$this->i = 0;
}

function show(){
if($this->file=="")return 0;
echo str_replace($this->search,$this->replace,$this->file);//If you use PHP5 change to str_ireplace
}//function

function retour(){
if($this->file=="")return 0;
return str_replace($this->search,$this->replace,$this->file);//If you use PHP5 change to str_ireplace
}//function

}//class

$tmp['test'] ='Magicking';
$temp = new template("test.tpl");
$temp->assign_array($tmp);
$temp->show();
?>

Conclusion :


Dans le template test.tpl :
<html>
<body>
Salut {TEST}<br>
Tu t'appele {TEST}
</body>
</html>

Note:
Il y'a moyen d'assigné pluiseurs tableaux dans le même template
Dans le template les emplacement a remplacé sont toujours en majuscule(sauf si la fonction str_ireplace est utilisé PHP5 only) et est toujours entre crochet({})
Les fonctions retourne 1 quand elle a reussie ou 0 quand elle a echoué
Description des fonctions:
template($name = "")
$name correspond au nom du fichier a utiliser comme template si l'argument est hommis il créera un template vide

add($mixed,$el = "")
$mixed correspond a un tableau a une dimension ou une chaine de caractere
$el correspond au End Line de implode si $mixed est un tableau

assign_array($array)
Assigne un tableau associatif suivant $tablo['nom_valeur']="A remplace" a un template,le tableau peut étre avoir plusieurs élément et plusieurs tableau peuvent étre assigné

reset()
Vide le template mais ne l'efface pas utilisé unset(Object) pour sa

show()
Affiche le template

retour()
Retourne la variable file du template

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.