przeczytałem ten artykuł
http://www.php.org.pl/artykuly/3/16i przy próbie odpalenia głównego pliku wywala mi błąd Fatal error: Call to undefined function: set_files() in e:\usr\krasnal\www\moje\test.php on line 5
czyli ta linijka
<?php
$template -> set_files(
array('index' => 'index.tpl', 'header' => 'header.tpl',
'bottom' => 'bottom.tpl'
));
?>
jeśli to zablokuje wywala kolejny błąd tym razem w
<?php
$template -> assign_vars('header',
array('TITLE' => "Spokojnie, to tylko test!", 'META' => "",
'BGCOLOR' => '#f0f0f0',
'KODOWANIE' => 'iso-8859-2'
)
);
?>
jak dla mnie wygląda to tak jakby nie łączył się z tym plikiem teplates.php
co może tu być nie tak

cały kod strony głównej
<?
include "templates/teplates.php";
$template = new template('templates/');
$template -> set_files(
array('index' => 'index.tpl', 'header' => 'header.tpl',
'bottom' => 'bottom.tpl'
));
$template -> assign_vars('header',
array('TITLE' => "Spokojnie, to tylko test!", 'META' => "",
'BGCOLOR' => '#f0f0f0',
'KODOWANIE' => 'iso-8859-2'
)
);
$template -> assign_var('bottom','LINK',"http://www.komandor.brod.pl/~splatch/");
$template -> assign_vars('index',
array('HEADER', $template -> pparse
('header'), 'TRESC', "Tutaj powinna znajdować się właściwa treść strony :)",
'BOTTOM', $template -> pparse('bottom')
)
);
$template -> parse('index');
?>
a to teplates.php
<?php
/******************************************************************************
* miniTemplate v. 1.2
* Prosta klasa obsługi szablonów oparta na wzorze Splatch'a (splatch@wp.pl)
******************************************************************************/
class template
{
// Jak zauważyliście klasa posiada tylko dwa atrybuty - tablicę z wartościami wszystkich znaczników i z nazwami plików.
// Teraz prosty kontruktor klasy, który ustawi ścieżkę do szablonów.
function template($dir)
{
if($dir == "")
{
$this -> set_root("");
}
else
{
$this -> set_root($dir);
}
return true;
}
// Poniżej znajduje się funkcja, która umożliwi stworzenie pełnej ścieżki do plikó
w. W ten sposób nie musimy mozolnie definiować nazw plików jak poniżej:
// $tmp = new template(moj/katalog/i/plik.tpl);
// $tmp -> assign('znacznik', $wartosc);
// $tmp -> parse();
// Widzicie, że sposób ten jest kompletnie spalony, bo utrudnia obsługę wielu plik
ów. Dzięki zastosowaniu konstruktora i poniższej funkcji możemy łatwiej i szybcie
j definiować nazwy plików wraz z ich uchwytami. Dodatkowo nie jest już problemem
operowanie na trzech plikach na raz.
function set_root($dir)
{
if($dir != "")
{
{
die("Template: nie można znaleść ścieżki do szablonu."); }
else
{
$this -> root = $dir;
}
}
function set_files($files)
{
{
die("Template: funkcja set_files przyjmuje tylko tablice!"); }
else
{
while(list
($tpl_id,$file) = @each($files)) {
$this -> files[$tpl_id] = $this -> root ."". $file;
}
}
}
function set_file($tpl_id,$file)
{
$this -> files[$tpl_id] = $this -> root ."". $file;
}
function assign_vars($tpl_id,$values)
{
{
die("Template: funkcja assign_vars() przyjmuje wartsci tylko w tablicy."); }
else
{
while(list
($tag,$value) = @each($values)) {
$this -> template[$tpl_id][tag][$tag] = $value;
}
}
return true;
}
function assign_var($tpl_id,$tag, $value)
{
{
die("Template: w funkcji assign_var() musisz podać nazwę znacznika!"); }
$this -> template[$tpl_id][tag][$tag] = $value;
return true;
}
function compile($tpl_id,$code)
{
while(list
($key, $value) = @each($this -> template
[$tpl_id][tag
])) {
$tag = '{'.$key.'}';
{
die("Template: nie można znaleść znacznika $tag w pliku"); }
}
return $code;
}
function pparse($tpl_id)
{
if(empty($this -> files
[$tpl_id])) {
die("Template: tablica <i>files</i> dla wartości <i>$tpl_id</i> jest pusta."); }
$file = $this -> files[$tpl_id];
$gcode = $this-> compile($tpl_id,$code);
return($gcode);
}
function parse($tpl_id)
{
print($this -> pparse
($tpl_id)); }
}
}
?>