mając paser:
<?php
/**
* Plik zawiera definicje klasy Templates
* @author Łukasz Janicki <darkspirit@strefaphp.net>
* @package msf
* @subpackage libs
* @version 1.0
* @copyright Łukasz Janicki 2004
*/
/**
* System szablonów
*
* System szablonów do strony, forum etc.
*/
class Templates
{
/**
* Przechowuje nie zamieniony kod stron.
* @var array
* @see load()
*/
var $unparsed = array ();
/**
* Przechowuje zamieniony kod stron.
* @var array
* @see parse()
*/
/**
* Przechowuje bloki do zamiany.
* @var array
*/
/**
* Przechowuje nazwę ostatnio wczytanego szablonu.
* @var string
* @see load()
*/
var $last_loaded = array();
/**
* Wczytuje szablon z pliku.
* @return void
*/
function load($plik)
{
if($plik == $last_loaded)
{
$this->unparsed[] = end($this->unparsed); }
{
$file = @fopen(F_TPL
.$plik.'.tpl',r
); $this->last_loaded = $plik;
}
else
echo 'Plik ' .$plik. ' nie istnieje.'; }
/**
* Parsuje szablon.
*
* Zamienia bloki z kodu strony na odpowiednie wartości zadeklarowane w
* atrybucie block()
* @return void
*/
function parse()
{
$i=0;
foreach ($this->unparsed as $template)
{
{
foreach($found[1] as $block)
{
$block_name = '{'.$block.'}';
$block_values = $this -> blocks[$i][$block];
$template = str_replace($block_name, $block_values, $template); }
}
$this -> parsed[] = $template;
$i++;
}
} #end function parse()
/**
* Wyświetlamy sparsowany szablon.
*
* Wyświetlamy sparsowany szablon. Mamy trzy możliwości wyświetlania.
* 1) Wyświetlenie wszystkich szablonów
* - wywołanie: $this->show_result();
* 2) Wyświetlenie pojedyńczego szablonu
* - wywołanie: $this->show_result(x); - za x wstawiamy numer
* szablonu(numeracja zaczyna się od 0)
* 3) Wyświetlanie szablonów z danego przedziału
* - wywołanie: $this->show_result(x,y); - wyświetlamy szablony z
* przedziałów:
* x <= y => od x do y
* x > y => od y do x
*/
function show_result($which="all",$to=-1)
{
if($which >= 0
&& $to > -1
&& $to <= count($this->parsed) && $which != 'all') {
if($which < $to)
{
while($which <= $to)
{
echo $this->parsed[$which]; $which++;
}
}
else
{
while($which >= $to)
{
echo $this->parsed[$which]; $which--;
}
}
}
elseif($which != 'all')
{
echo $this->parsed[$which]; }
else
{
foreach($this->parsed as $parsed)
{
}
}
} #end function show_result()
} #end class Templates
?>
oraz plik index.php
<?php
include('module/szablon.class.php');
$index_tytyl = 'a';
$index_slowa_kluczowe = 'a';
$index_opis_strony = 'a';
$index_stopka = 'a';
$templates = new Templates;
$templates->load('naglowek');
$tempaltes->blocks[] = array ( 'TYTUL' => $index_tytyl,
'SLOWA_KLUCZOWE' => $index_slowa_kluczowe,
'OPIS_STRONY' => $index_opis_strony,
);
$templates->load('stopka');
$tempaltes->blocks[] = array ( 'STOPKA' => $index_stopka,
);
$templates->parse();
$templates->show_result();
?>
W jaki sposób mogę wywołac plik includowany badz funkcje funkcja();
Ten post edytował matyskiewicz 5.11.2006, 19:26:09