Kopiuj
<?php
class Template
{
var $text;
var $stale;
var $warunki;
var $iloscwaronkow=0;
var $textpetli;
var $petla;
var $rekord;
var $stalepetli;
var $warunkipetli;
var $iloscwaronkowpetli=0;
var $nazwapola;
var $typpola;
var $wartoscpola;
var $dane;
function Template($plik)
{
$fd = fopen($plik, "r");
$this ->text = fread($fd, filesize($plik));
$this ->text =str_replace("\n","",$this ->text);
}
function Dodajstala($stala,$wartosc)
{
$this ->stale = array_merge($this->stale, $stala);
$this ->stale[$stala]= $wartosc;
}
function Dodajpole($nazwa,$typ,$wartosc,$dane)
{
$this ->nazwapola[count($this ->nazwapola)] = $nazwa;
$this ->typpola[count($this ->typpola)] = $typ;
$this ->wartoscpola[count($this ->wartoscpola)] = $wartosc;
$this ->dane[count($this ->dane)] = $dane;
}
function sprawdzformularz()
{
$blad=0;
$y=count($this ->nazwapola);
for($x=0;$x<=$y;$x++)
{
$this ->dodajstala("wartosc_".$this ->nazwapola[$x],$this ->dane[$x]);
if (($this ->wartoscpola[$x]==1)&&(($_POST[$this ->nazwapola[$x]]=="")&&($_GET[wyslano]=="1")))
{
$this ->dodajwarunek("nieistnieje_".$this ->nazwapola[$x]);
$blad=1;
}
}
if ($_GET[wyslano]!="1")
{
$blad=1;
}
return $blad;
}
function Dodajwarunek($warunek)
{
$this ->warunki[$this ->iloscwaronkow] = $warunek;
$this ->iloscwaronkow++;
}
function Stworzpetle($petla)
{
preg_match('/{petla:'.$petla.'}(.+){petla:'.$petla.'}/Ue',$this ->text, $odnalezione);
$this -> textpetli = $odnalezione[0];
$this -> rekord = $odnalezione[1];
}
function Dodajstalapetli($stala,$wartosc)
{
$this ->stalepetli = array_merge($this->stalepetli, $stala);
$this ->stalepetli[$stala]= $wartosc;
}
function Dodajwarunekpetli($warunek)
{
$this ->warunkipetli = array_merge($this->warunkipetli, $this ->iloscwaronkowpetli);
$this ->warunkipetli[$this ->iloscwaronkowpetli] = $warunek;
$this ->iloscwaronkowpetli++;
}
function Parsujwierszpetli()
{
$y = $this ->iloscwaronkowpetli;
$rekord = $this ->rekord;
for ($x=0;$x<$y;$x++)
{
$warunek=$this ->warunkipetli[$x];
preg_match_all('/{warunek:'.$warunek.'}(.+){warunek:'.$warunek.'}/Ue', $rekord, $warunki);
for ($i=0; $i< count($warunki[0]); $i++)
{
$rekord = str_replace($warunki[0][$i],$warunki[1][$i],$rekord);
}
}
preg_match_all('/{warunek:([^%]+)}(.+){warunek:([^%]+)}/Ue', $rekord, $warunki);
for ($i=0; $i< count($warunki[0]); $i++)
{
$rekord = str_replace($warunki[0][$i],'',$rekord);
}
$rekord = preg_replace('/{stala:([^}]+)}/e', '$this->stalepetli["\\1"]', $rekord);
$this ->petla.=$rekord;
$this ->petla.="\n";
unset($this ->stalepetli);
unset($this ->warunkipetli);
unset($this ->iloscwarunkowpetli);
}
function Parsujpetle()
{
$this ->text = str_replace($this ->textpetli, $this ->petla, $this ->text);
unset($this ->petla);
unset($this ->textpetli);
}
function Parsuj()
{
$y=$this ->iloscwaronkow;
for ($x=0;$x<=$y;$x++)
{
$warunek=$this ->warunki[$x];
preg_match_all('/{warunek:'.$warunek.'}(.+){warunek:'.$warunek.'}/Ue', $this->text, $warunki);
for ($i=0; $i< count($warunki[0]); $i++)
{
$this->text = str_replace($warunki[0][$i],$warunki[1][$i],$this->text);
}
}
preg_match_all('/{warunek:([^}]+)}(.+){warunek:([^}]+)}/Ue', $this->text, $warunki);
for ($i=0; $i< count($warunki[0]); $i++)
{
$this->text = str_replace($warunki[0][$i],'',$this->text);
}
$this->text=preg_replace('/{stala:([^}]+)}/e', '$this->stale["\\1"]', $this->text);
return $this->text;
}
}
?>