Mam klika pytań odnośnie tworzenia własnego systemu szablonów. Najpier podam kod:
Plik
templates_class.php<?php
class Templates
{
var $fiopen;
var $sciezka;
function NameFile($val, $sciezka)
{
$this->fiopen=$val;
$this->sciezka=$sciezka;
}
function OpenFile($value)
{
while(list
($klucz, $wartosc) = each($value)) {
$nazwa_zm[$klucz]=$klucz;
$wartosc_zm[$klucz]=$wartosc;
}
$p=$this->sciezka.$this->fiopen;
{
$plik = file($p); // Ładuje plik $linie = count($plik); // Zlicza linie for($n=0; $n<=$linie; $n++)
{
if (eregi(\"{(.*)}\", $plik[$n], $zm)); {
$plik[$n]=str_replace('{'.$nazwa_zm[$zm[1]].'}', $wartosc_zm[$zm[1
]], $plik[$n]);
}
}
}else{
printf($errormsg['nie ma pliku'], $p); }
}
}
?>
Plik
index.php<?php
include\"langpack/polski/errorpack/war_err.msg\";
include\"langpack/polski/main.lang\";
include\"include/templates_class.mod\";
$TEMPL= new Templates;
$TEMPL->NameFile(\"naglowek.tpl\", \"templates/SubSun/\");
\"Tytul\" => $lang['Tytul'],
\"Kodowanie\" => $lang['Kodowanie'],
\"Reply-to\" => $lang['Reply-to'],
\"Generator\" => $lang['Generator'],
\"Autor_script\" => $lang['Autor_script'],
\"Description\" => \"Tu bedzie jakis opis\"
));
$TEMPL->NameFile(\"home.tpl\", \"templates/SubSun/\");
'zm1' => \"Test 1\",
'zm2' => \"Test 2\"
));
$TEMPL->NameFile(\"stopka.tpl\", \"templates/SubSun/\");
\"INFO\" => \"<b>$tempver</b><br />© Copyrights phpSuNs 2005\"
));
?>
Plik
naglowek.tpl<!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; {Kodowanie}" /> <meta http-equiv="reply-to" content="{Reply-to}" /> <meta name="generator" content="{Generator}" /> <meta name="author" content="{Autor_script}" /> <meta name="description" content="{Description}" />
Plik
home.tpl<span style="font: 24px; font-family: Arial Black; color: #A52A2A">SuNsTEMPL v1.0
</span> System szablonów SuNsTEMPL jest prostym skryptem do zarządzania motywami na stronach www
{zm1}
{zm2}
Plik
stopka.tpl
Pytanie 1.Skrypt dział bez problemu, lecz jest jedna wada specjalne znaczniki, które interpretuje mój skrypt są zawarte w nawiasach klamrowych np. {nazwa_zmiennej} nie są interpretowane gdy są w tej samej linii jak tego się pozbyć?
Pytanie 2.Czy kod skryptu jest w miarę zrozumiały co wy byście w nim zmienili?
Pytanie 3.Jak w
preg_match_all odczytac taka formułe
{zmienna}---------------------------------------------------------------------------------------------
<?php
class Templates
{
var $fiopen;
var $sciezka;
function NameFile($val, $sciezka)
{
$this->fiopen=$val;
$this->sciezka=$sciezka;
}
function OpenFile($value)
{
while(list
($klucz, $wartosc) = each($value)) {
$nazwa_zm[$klucz]=$klucz;
$wartosc_zm[$klucz]=$wartosc;
}
$p=$this->sciezka.$this->fiopen;
{
$plik = file($p); // Ładuje plik $linie = count($plik); // Zlicza linie for($n=0; $n<=$linie; $n++)
{
for($i=0; $i <= 100; $i++)
$wartosc_zm[$zm[1][$i]],
$plik[$n]);
}
}else{
printf($errormsg['nie ma pliku'], $p); }
}
}
?>
No już problem rozwiązany odczytuje tyle ile chcem (IMG:
http://forum.php.pl/style_emoticons/default/smile.gif) , ale jak bardziej optymalnie można przerobić ten skrypt?
Ten post edytował Sali_ 31.01.2005, 23:49:38