<?PHP
require("../class.FastTemplate.php");
$tpl = new FastTemplate("../templates/");
$tpl->define(array(exempel=>"spel.tpl"));
$tpl->assign(TITLE, "Detta är ett exempel");
$tpl->assign(MAIN, "Detta är min hemsida!");
$tpl->parse(MAIN, exempel);
$tpl->Fastprint();
?>
Resultat när jag går till recension.php
<HTML>
<HEAD>
<Detta är ett exempel>{Detta är ett exempel}</Detta är ett exempel>
</HEAD>
<BODY>
{Detta är min hemsida!}
</BODY>
</HTML>
FastTemplate-klassen ersätter alltså alla "title" den hittar med "Detta är ett exempel" när den endast skall ersätta "{title}" med den texten.
vilket jag gjorde. Då fick jag istället ett par felmeddelanden:
Warning: Invalid content of \{\} in /home/matti/public_mk.st/spelarkivet/class.FastTemplate.php on line 199
Warning: Invalid content of \{\} in /home/matti/public_mk.st/spelarkivet/class.FastTemplate.php on line 199
ERROR: Nothing parsed, nothing printed
Har någon ett förslag på hur jag ska göra för att få det att fungera?
Det fungerar tydligen bättre för dig än vad det gjorde för mig, där fungerade ingenting. Mitt problem var att jag använder PHP4 medan Fasttemplate är byggt för PHP3.
Om du använder PHP4 så finns det på http://www.thewebmasters.net/php/FastTemplate.phtml beskrivet vilka ändringar som ska göras för PHP4. Orkar du inte göra dom själv kan du hämta hem http://www.phpbuilder.com/columns/kendall20001122.zip där det finns med en class.FastTemplate.php med ändringarna gjorda.
Vidare är man i PHP4 tvungen att använda citationstecken vid arraytilldelning mm. Ex.
$tpl->define(array("exempel"=>"spel.tpl"));
$tpl->assign("TITLE", "Detta är ett exempel");
Glömde säga att jag även testade med uppdateringen. Då får jag dessa felmeddelanden:
Warning: Invalid content of \{\} in ../class.FastTemplate.php on line 201
Warning: Invalid content of \{\} in ../class.FastTemplate.php on line 201
Warning: Invalid content of \{\} in ../class.FastTemplate.php on line 215
ERROR: Nothing parsed, nothing printed
(jag använder PHP4)
--------------
Hur gjorde du när Fasttemplate inte fungerade? Hittade du något fungerade template-system?
För min del får jag fellarm om jag inte använder citationstecken. Om jag tittat i manualen http://www.php.net/manual/en/function.array.php så säger den också att om man indexerar i en array med en sträng så ska man använda citationstecken.
Warning: Invalid content of \{\} in /home/matti/public_mk.st/temp/klasser/class.FastTemplate.php on line 190
Warning: Invalid content of \{\} in /home/matti/public_mk.st/temp/klasser/class.FastTemplate.php on line 190
Warning: Invalid content of \{\} in /home/matti/public_mk.st/temp/klasser/class.FastTemplate.php on line 203
ERROR: Nothing parsed, nothing printed
Fick din kod att fungera hos mig både med "min" FastTemplate och Chavez FastTemplate (misstänker att de är indentiska).
Detta under förutsättning att jag satte dit mina citationstecken, i annat fall visades fel/varningar före koden som fortfarande var rätt.
Om det kan ha någon betydelse kör jag Apache/Win95 lokalt och Apache/Linux på webservern. Båda med PHP installerat som Sapi-modul.
<?PHP
require("FastTemplate/class.FastTemplate.php");
$tpl = new FastTemplate("templates/");
$tpl->define(array("exempel"=>"spel.tpl"));
$tpl->assign("TITLE", "Detta är ett exempel");
$tpl->assign("MAIN", "Detta är min hemsida!");
$tpl->parse("MAIN", "exempel");
$tpl->Fastprint();
?>
Fast det är inte citationstecknen som är problemet för dig. Bristen på citationstecken ger först en rad varningar/fellarm om odefinierad konstant (där PHP också gör en kvalificerad gissning om vad man tänkt sig), men skriver efter det ut sidan som det är tänkt. Varningarna/fellarmen går att koppla bort, misstänker att det är vad Chavez m.fl. gjort.
Ditt problem ligger på ett annat plan. Har du gjort några ändringar i php.ini som kan tänkas påverka? Hur är PHP installerat exe-filen eller med dll-erna?
PS
Här är utfallet om jag inte använder citationstecken:
<br>
<b>Warning</b>: Use of undefined constant exempel - assumed 'exempel' in <b>c:\.....\recension.php</b> on line <b>4</b><br>
<br>
<b>Warning</b>: Use of undefined constant TITLE - assumed 'TITLE' in <b>c:\.....\recension.php</b> on line <b>5</b><br>
<br>
<b>Warning</b>: Use of undefined constant MAIN - assumed 'MAIN' in <b>c:\.....\recension.php</b> on line <b>7</b><br>
<br>
<b>Warning</b>: Use of undefined constant MAIN - assumed 'MAIN' in <b>c:\.....\recension.php</b> on line <b>9</b><br>
<HTML>
<HEAD>
<TITLE>Detta är ett exempel</TITLE>
</HEAD>
<BODY>
Detta är min hemsida!
</BODY>
</HTML>
Tja, det verkar inte ha varit till någon större hjälp ändå ;-)
Du får använda PHPLIB ett tag och sedan rapportera om hur det fungerar. Funderar på att gå över till det istället för FastTemplate. Främsta anledningen är att PHPLIB klarar dynamiska block i flera lagers "djup".