mam nadzieje na ostrą krytyke
funkcja :
<? function tpl_parse(&$tpl_table, &$var_array) { $parseLevel = 0; $parseArray[$parseLevel] = true; { $offset = 0; $new_line = \"\"; while(true) { if ($open_tag_pos === false) { break; } if ($close_tag_pos === false) { break; } if ($function_pos<>0) { if ($function==\"if\") { $true = $parseArray[$parseLevel] && $var_array[$var]; $parseLevel++; $parseArray[$parseLevel] = $true; } else if ($function==\"fi\") { $parseLevel--; } } else { if ($parseArray[$parseLevel]) { $new_line .= $var_array[$var]; } } else { if ($parseArray[$parseLevel]) { $new_line .= \"{\".$var.\"}\"; } } $offset = $close_tag_pos + 1; } $out .= $new_line; } return $out; } ?>
plik wykorzystujacy funkcje:
<? // Biblioteka : Kameleon include(\"dna_kameleon.php\"); // Wczytanie szablonu TPL // Definicja zmiennych dla szablonu $vars = Array (\"varA\" => \"zmiennaA\", \"varB\" => \"A\", \"varC\" => true, \"varD\" => false); // Parser ?>
plik.tpl:
Kod
{varA}
{var{varB}}
{if(varC)} C = True {fi()}
{if(varD)} D = True {fi()}
{if(varD)}
{if(varC)} C i D = True {fi()}
{fi()}
{var{varB}}
{if(varC)} C = True {fi()}
{if(varD)} D = True {fi()}
{if(varD)}
{if(varC)} C i D = True {fi()}
{fi()}