PHP interesse |
|
Ik ben bezig met een template-script, maar stuit daarbij op een probleem.
Hij controleert dus elke regel van m'n template op de code om blokken in te voegen. Dit gebeurt zoals in TemplatePower met commentaren. Alles gaat goed, behalve bij het stukje om headers en footers in te voeren (een soort block die je slechts 1x nodig hebt dus).
Als daar een block instaat, wordt deze niet meegenomen. De reden hiervoor heb ik al gevonden, want wat ingevoegd wordt, wordt gewoon niet gecontroleerd (zie code).
Het zou kunnen werken door het bestand tussen de reeds bestaande array te voegen, maar ik weet niet goed hoe ik dat moet doen. Ik vond op php.net niet meteen een functie die dit kon. Heeft iemand daar weet van?
mss dat wat code duidelijker is:
<?php
function _preparefile($file, $blockname)
{
$tempfile = file($file); // Sla de inhoud van het bestand op in $tempfile
$this->blox[$blockname] = Array();
$i = 0;
while($tempfile[$i]) // controleer elke regel
{
if(preg_match('/<!--[ ]?(START|END|INCLUDE) (BLOCK|FILE): (.+)-->/', $tempfile[$i], $regs))
{
$regs[3] = trim($regs[3]);
if($regs[1] == 'INCLUDE' && $regs[2] == 'FILE') // include bestand eenmalig
{
$this->blox[$blockname] = array_merge($this->blox[$blockname], file($regs[3])); // Dit moet worden vervangen door een code die file($regs[3]) tussen $tempfile duwt.
}
?>
<?php function _preparefile($file, $blockname) { $tempfile = file($file); // Sla de inhoud van het bestand op in $tempfile $this->blox[$blockname] = Array(); $i = 0; while($tempfile[$i]) // controleer elke regel { if(preg_match('/<!--[ ]?(START|END|INCLUDE) (BLOCK|FILE): (.+)-->/', $tempfile[$i], $regs)) { $regs[3] = trim($regs[3]); if($regs[1] == 'INCLUDE' && $regs[2] == 'FILE') // include bestand eenmalig { $this->blox[$blockname] = array_merge($this->blox[$blockname], file($regs[3])); // Dit moet worden vervangen door een code die file($regs[3]) tussen $tempfile duwt. } ?>
Citaat: Opmerking door Haytjes
Waarom sluit je niet alle accolades?
|