le voila. je vous invite à m'aider à l'améliorer.
Si, par exemple, vous trouvez une variable superflues, ou que vous trouvez que l'intégration d'une fonction serait utile, n'hésitez pas
Cette classe prend en entrée un fichier template avec des balises comme {header}, {content}, etc...
le nom vient de PHTP et TPL (template) => PHTPL
Code
<?php
/*
PHTPL 1.0
---------
Templating class, programmed by Antoine d'Otreppe -- Antoine_935
For further informations, please visit http://www.phtp.be
---
Classe de gestion de template par Antoine d'Otreppe -- Antoine_935
Pour plus d'infos, visitez http://www.phtp.be
*/
class phtpl {
var $container = FALSE;
var $rendered = FALSE;
var $template = FALSE;
function render() {
$file = fopen($this->template, 'r');
$this->rendered = fread($file, filesize($this->template));
fclose($file);
foreach($this->container as $key=>$value) {
$this->rendered = str_replace($key, $value, $this->rendered);
}
return $this->rendered;
}
function setkey($key, $value) {
$this->container['{'.$key.'}'] = $value;
}
function unsetkey($key) {
unset($this->container['{'.$key.'}']);
}
function getkeys() {
$keys = $this->noextrem(array_keys($this->container));
return $keys;
}
function gatvalues() {
$values = array_values($this->container);
return $values;
}
function noextrem($array) {
while(list($key, $item) = each($array)) {
$array[$key] = substr($item, 1, strlen($item)-2);
}
return $array;
}
function saveinto($path) {
if(!$this->rendered) return FALSE;
if($file = @fopen($path, 'w')) {
if(@fwrite($file, $this->rendered)) {
fclose($file);
return TRUE;
}
}
return FALSE;
}
function parse_db($ressource, $html, $reverse = FALSE) {
$return = "";
//while($item = pg_fetch_array($ressource)) {
while($item = mysql_fetch_array($ressource)) {
$newhtml = $html;
foreach($item as $key=>$value) {
$newhtml = str_replace('{'.$key.'}', $value, $newhtml);
}
if(!$reverse) $return .= $newhtml;
else $return = $newhtml . $return;
}
return $return;
}
}
?>
/*
PHTPL 1.0
---------
Templating class, programmed by Antoine d'Otreppe -- Antoine_935
For further informations, please visit http://www.phtp.be
---
Classe de gestion de template par Antoine d'Otreppe -- Antoine_935
Pour plus d'infos, visitez http://www.phtp.be
*/
class phtpl {
var $container = FALSE;
var $rendered = FALSE;
var $template = FALSE;
function render() {
$file = fopen($this->template, 'r');
$this->rendered = fread($file, filesize($this->template));
fclose($file);
foreach($this->container as $key=>$value) {
$this->rendered = str_replace($key, $value, $this->rendered);
}
return $this->rendered;
}
function setkey($key, $value) {
$this->container['{'.$key.'}'] = $value;
}
function unsetkey($key) {
unset($this->container['{'.$key.'}']);
}
function getkeys() {
$keys = $this->noextrem(array_keys($this->container));
return $keys;
}
function gatvalues() {
$values = array_values($this->container);
return $values;
}
function noextrem($array) {
while(list($key, $item) = each($array)) {
$array[$key] = substr($item, 1, strlen($item)-2);
}
return $array;
}
function saveinto($path) {
if(!$this->rendered) return FALSE;
if($file = @fopen($path, 'w')) {
if(@fwrite($file, $this->rendered)) {
fclose($file);
return TRUE;
}
}
return FALSE;
}
function parse_db($ressource, $html, $reverse = FALSE) {
$return = "";
//while($item = pg_fetch_array($ressource)) {
while($item = mysql_fetch_array($ressource)) {
$newhtml = $html;
foreach($item as $key=>$value) {
$newhtml = str_replace('{'.$key.'}', $value, $newhtml);
}
if(!$reverse) $return .= $newhtml;
else $return = $newhtml . $return;
}
return $return;
}
}
?>
