1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| <?php
/* Les fonctions d'IceCMS, le moteur du CMS */
function index() {
/* Page, id? */
if(isset($_GET['type']))
{
$type = $_GET['type'];
if(isset($_GET['id']))
{
$id = $_GET['id'];
}
}
else
{
$type = 'accueil';
}
/* On peut commencer! */
$oIceTemplate = new IceTemplate('tpl.ice');
$oIceTemplate->setData('meta','title','<title>Accueil</title>');
echo $oIceTemplate->generate();
}
/* Fonction permettant de parreser une templates <ice:*:*> */
class IceTemplate
{
private $sTemplate;
private $aDatas;
//$sTemplate est ici la chaine contenant ton template
public function getTagIce()
{
return preg_replace_callback('`<ice:(\w+):(\w+) */?>`i',array($this,'getTagIceCallback'),$this->sTemplate);
}
public function getTagIceCallback($matches)
{
$data_type = $matches[1];
$data = $matches[2];
//Suite de ton code de traitement
//en retournant la valeur par laquelle tu veux remplacer ta balise
if(isset($this->aDatas[$data_type]) && isset($this->aDatas[$data_type][$data]))
return $this->aDatas[$data_type][$data];
else
return ''; //là en gros ça efface ta balise..
}
public function setData($type,$name,$value)
{
if(!isset($this->aDatas[$type]))
$this->aDatas[$type] = array();
$this->aDatas[$type][$name] = $value;
}
public function generate()
{
return $this->getTagIce();
}
public function __construct($url)
{
$this->sTemplate = file_get_contents($url);
$this->aDatas = array();
}
}
index();
?> |