<?php
class template{
private $file;
public $tpl;
public $vars;
public $queries;
public function __construct($file){
$this->file = $file;
}
public function put($var_name,$var_value){
if(!$var_name) exit("W przekazywanej wartości nie została podana nazwa"); $this->vars[$var_name] = $var_value;
}
public function getVar($var_name){
return $this->vars[$var_name];
}
public function parse(){
preg_match_all('/<template.*>[w|W]*</template>/U',$this->tpl,$this->queries); echo preg_replace('/<template.*>(w+)</template>/U',$this->vars["$1"],$this->tpl); }
}
?>
mam taką klasę (jak powyżej)- w sumie to jest dopiero początek klasy. Problem tkwi w tym, ęe preg_replace nie podminenia mi zmiennych z obiektu utworzonego z tej klasy na tekst znajdujący się pomiędzy znacznikami template w tym oto templaku:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<template action="loop">nazwa</template>
<template action="show">nazwa2</template>
Kod który tworzy obiekt i dodaje zmienne:
<?php
require_once("template.class.php");
$tpl = new template("tpls/file.tpl");
$tpl->put("nazwa","moja nazwa");
$tpl->put("nazwa2","moja nazwa2");
$tpl->parse();
?>
Jakieś idee?
P.S. nie patrzcie na te błędne slashe forum je samo dodało
Ktokolwiek może pomóc?
Ten post edytował deirathe 28.06.2007, 14:22:07