Ik loop tegen een probleempje aan. Ik ben bezig met een CMS en heb een template parser gemaakt. De template parser werkt op deze manier:
TEMPLATE.HTML
<html>
<head>
<title>{CMS:TITLE}</title>
</head>
<body>
<H1>{CMS:TITLE}</H1>
{CMS:CONTENT}
</body>
</head>
De parser loopt er zo doorheen:
<?php
function parse_template($searchkind, $search , $replace)
{
$this->template = eregi_replace ( "{".$searchkind.":".$search."}", $replace, $this->template);
}?>
Oftuwel, in de index roep ik m zo aan:
<?php
parse_template("cms", "content" , $fetch["pagina_inhoud"]);
?>
Werkt helemaal toppie.
Nou heb ik alleen ook module support, dat werkt met includes:
<?php
$values=explode(";",getSetting('installed_modules'));
foreach ($values as $filename) {
$_GET["display"]='frontend';
$this->template=str_replace ( "{MODULE:".strtoupper(basename($filename, ".php"))."}", "<?php include('./modules/".$filename.".php'); ?>", $this->template);
}
?>
Zo loopt hij door de geinstalleerde modules heen, en include de module waar nodig is. (via EVAL worden de includes uitgevoerd).
Nou weet ik dat je met includes een get zo mee kan sturen:
<?php
$_GET["extrawaarde"]="foo";
include("module.php"); //Module.php kan nu de get extrawaarde uitlezen
?>
Alleen, stel nou dat ik in mijn template get waardes mee wil sturen, dus zo ongeveer:
{MODULE:FOTOBOEK|album=2&foto=3}
Hoe kan ik dan 'album=2&foto=3' uitlezen, en deze code uitvoeren voor de include:
<?php
$_GET["album"]=2;
$_GET["foto"]=3;
?>
Hier loop ik vast. Ik verwacht iets met regular expressions, maar ik snap hier zelf bijna niks van. Zou een van jullie me kunnen helpen?
Alvast hartelijk bedankt!
Met vriendelijke groet,
Rob Quist