Just nu ser det ut såhär:
Code: Select all
<?php
class SimpleTemplateSystem {
// Sökvägen till mappen där template filerna ligger
public $mTemplateDir = "templates";
// Template filens öppnings märken motsvarande PHPs
private $mpOpeningTags = array("{", "}");
// Template filens kommenatar tecken motsvarande PHPs /* och */
private $mpCommentTags = array("*", "*");
// Array som lagrar alla template variablar
public $mpVars = array();
// Metod som sätter template variabel
public function SetVar($name, $value) {
$this->mpVars[$name] = $value;
}
// Metod som parsar och visar en template fil
public function Display($templateFile) {
ob_start();
extract($this->mpVars);
include("{$this->mTemplateDir}/$templateFile");
$template_file = ob_get_contents();
// Ersätt template filens öppnings tecken med PHP öpppnings tecken
$template_file = preg_replace("/{$this->mpOpeningTags[0]}/", "<?php ", $template_file);
$template_file = preg_replace("/{$this->mpOpeningTags[1]}/", " ?>", $template_file);
// Ersätt template filens kommentars tecken (*) med PHP kommentar tecken /* */
$template_file = preg_replace("/{$this->mpCommentTags[0]}/", "/*", $template_file);
$template_file = preg_replace("/{$this->mpCommentTags[1]}/", "*/", $template_file);
ob_end_clean();
return $template_file;
}
}
?>
Om jag sedan testar klassen med följande:
Code: Select all
<?php
require_once "simple_template_system.php";
$page = new SimpleTemplateSystem();
$page->SetVar("blha", "Hej!");
echo $page->Display("blha.tpl");
?>
Och template filen blha.tpl:
Då är det tänkt att "{" ska ersättas med "<?php " och "}" med " ?>.
Men sedan när jag går til sidan så skrivs inte variabeln $blha ut.
Ganska svårt att felsöka också...
Hopaas det var tillräckligt med info för att ni ska kunna hjälpa mig