Par: Crocxx | Categorie: Classes - PHP5
Ce code est un classe de template qui permet de géré un système de gestion de thème en PHP5.
<?php
/**
* Gestion des erreurs avec les exceptions
*/
class Erreur extends Exception {
public function __construct($Msg) {
parent :: __construct($Msg);
}
public function RetourneErreur() {
$msg = '<div><strong>' . $this->getMessage() . '</strong>';
$msg .= ' Ligne : ' . $this->getLine() . '</div>';
return $msg;
}
}
class Theme
{
private $Theme = '';
private $Blocs = array();
private $ContenuBlocs = array();
private $ContenuBlocsCacher = array();
private $variables = array();
/**
* Constructeur de la classe
*
* $fichier = Ficher du thème
*/
public
function __construct($fichier)
{
if(file_exists($fichier)) $this->Theme=file_get_contents($fichier);
else throw new Erreur ('Theme introuvable!!!');
}
public
function Valeur($variable)
{
return $this->variables[$variable];
}
/**
* Remplace une variable
*
* $variable = Nom de la variable
* $valeur = Valeur de remplacement la variable
*/
public
function RemplaceVar($variable,$valeur)
{
$this->Theme=str_replace('{'.$variable.'}',$valeur,$this->Theme);
$this->variables[$variable] = $valeur;
}
/**
* Remplace plusieurs variables
*
* $TableVars = Tableau de variable et valeurs
*/
public
function RemplaceVars($TableVars)
{
foreach($TableVars as $variable => $valeur)
{
$this->Theme=str_replace('{'.$variable.'}',$valeur,$this->Theme);
$this->variables[$variable] = $valeur;
}
}
public
function MasqueBloc($NomBloc)
{
$this->Theme = preg_replace("#(<!--$NomBloc-->)(.*)(<!--/$NomBloc-->)#ms",'',$this->Theme);
}
public
function MasqueBlocs($TableNomBloc)
{
foreach($TableNomBloc as $NomBloc)
{
$this->Theme = preg_replace("#(<!--$NomBloc-->)(.*)(<!--/$NomBloc-->)#ms",'',$this->Theme);
}
}
public
function RemplaceBloc($NomBloc,$tableau)
{
$TableauRecherche = array('<!--'.$NomBloc.'-->','<!--/'.$NomBloc.'-->');
$TableauRemplace = array('','');
if(!isset($this->Blocs[$NomBloc]))
{
$TableauEreg = array();
ereg('<!--'.$NomBloc.'-->(.*)<!--/'.$NomBloc.'-->',$this->Theme,$TableauEreg);
$this->Blocs[$NomBloc] = $TableauEreg[0];
}
while(list($cle,$valeur)=each($tableau))
{
$TableauRecherche[] = '{'.$cle.'}';
$TableauRemplace[] = $valeur;
}
if(!isset($this->ContenuBlocs[$NomBloc]))
{
$this->ContenuBlocs[$NomBloc]=str_replace($TableauRecherche,$TableauRemplace,$this->Blocs[$NomBloc]);
}
else
{
$this->ContenuBlocs[$NomBloc].=str_replace($TableauRecherche,$TableauRemplace,$this->Blocs[$NomBloc]);
}
}
private
function EffaceCommentaires()
{
$this->Theme = preg_replace('`<!--(.+?)-->|<!--/(.+?)-->`','',$this->Theme);
}
public
function AfficheBlocs()
{
while(list($cle,$valeur)=each($this->ContenuBlocs))
{
$this->Theme = str_replace($this->Blocs[$cle],$valeur,$this->Theme);
}
}
public
function __toString()
{
$this->AfficheBlocs();
$this->EffaceCommentaires();
return($this->Theme);
}
}
?>
Faire un lien | Partenaires ©2005-2008 Rudy Onfroy Tous droits réservés Contact | RSS | Plan | Haut