MattiMedlem sedan dec. 19996 592 inlägg Jag har problem med FastTemplate
spel.tpl
<HTML>
<HEAD>
<TITLE>{TITLE}</TITLE>
</HEAD>
<BODY>
{MAIN}
</BODY>
</HTML>
recension.php
<?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.
Någon sa att jag skulle byta ut
$template = ereg_replace("{$key}","$val","$template");
i Fasttemplate-klassen mot:
$template = ereg_replace("\{$key\}","$val","$template");
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?
[Redigerat av Matti den 09 aug 2001]
MatteMedlem sedan aug. 20002 975 inlägg 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");
------------------
Funktion är vackert
MattiMedlem sedan dec. 19996 592 inlägg 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?
ChavezMedlem sedan maj 20001 953 inlägg Vad det gäller "fungerande templates-system" så är hela PHPPortalen ett bevis på att det fungerar.
La upp exakt den filen som jag kör med där .. http://www.phpportalen.net/exempel/class.FastTemplate.zip
Sen kan jag säga att jag inte använder några " alls. Det fungerar ändå.
------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020
Första PHP portalen på svenska!!
MatteMedlem sedan aug. 20002 975 inlägg 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.
------------------
Funktion är vackert
MattiMedlem sedan dec. 19996 592 inlägg http://www.mk.st/temp/test.php
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
Använde PHPportalens FastTemplate-klass.
189 $key = '{'."$key".'}';
190 $template = ereg_replace("$key","$val","$template");
203 $template = ereg_replace("{([A-Z0-9_]+)}","",$template);
ChavezMedlem sedan maj 20001 953 inlägg Damn!
Då har jag ingen aning om vad som kan vara fel. Använder exakt den klassen både lokalt (med IIS - w2k) och på servern (med Apache - Unix).
------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020
Första PHP portalen på svenska!!
MatteMedlem sedan aug. 20002 975 inlägg 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.
------------------
Funktion är vackert
MattiMedlem sedan dec. 19996 592 inlägg Du har inte lust att posta koden du använde - med cituationstecken?
Tack
MatteMedlem sedan aug. 20002 975 inlägg <?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>
[Redigerat av Matte den 11 aug 2001]
MattiMedlem sedan dec. 19996 592 inlägg Jag fick aldrig Fasttemplate att fungera så jag testade PHPLIB och vet ni vad? Det fungerade perfekt.. :)
Tack för hjälpen båda två!
ChavezMedlem sedan maj 20001 953 inlägg 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".
------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020
Första PHP portalen på svenska!!