Smarty parse variabel in TPL

Pagina: 1
Acties:

  • PSU_freak
  • Registratie: December 2005
  • Laatst online: 18:05
Hoi,

Ik heb een probleem namelijk:

Ik heb een index.php en daar wijs ik de variabel $test toe.
PHP:
1
2
3
$test = "<body><b>blaat</b><u>{include file="home.tpl"}</u>";
$smarty->assign('GEGEVENS',$test); 
$smarty->display('home.tpl');

En in home.tpl staat het volgende:
code:
1
2
3
4
5
6
7
8
9
<html>

<head>
<title>Test</title>
</head>
<body>
{$GEGEVENS}
</body>
</html>

Maar nu krijg ik als output op die plaats gewoon te staan: {include file="home.tpl"}. Want die variabel word niet geparst. Weet iemand hoe ik dat kan doen?

  • André
  • Registratie: Maart 2002
  • Laatst online: 08-04 16:23

André

Analytics dude

PHP = P&W :)

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
Wat ik eigenlijk niet snap:

1) Je gebruikt een template systeem maar je wil toch php & html mixen :?
2) Waarom home.tpl includen? Dat is gewoon de file die smarty zal laten zien ($smarty->display('home.tpl')).

March of the Eagles


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-03 14:33

NMe

Quia Ego Sic Dico.

Je kan geen Smarty code in een Smarty variabele stoppen, en dan verwachten dat het nog geparset wordt ook. Je bent zoals Hacku al zegt nogal ranzig bezig. Duik eens in de documentatie zou ik zeggen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • PSU_freak
  • Registratie: December 2005
  • Laatst online: 18:05
Dit omdat de variabel TEST is geparst door een UBB parser en daardoor HTML ontstaat. Deze komt uit een database

  • simon
  • Registratie: Maart 2002
  • Laatst online: 08-04 17:19
Ja, dat gaat niet werken, zul je je structuur moeten aanpassen (die zo te zien dus niet erg netjes is, het is niet verstandig executable code vanuit db op te halen).

[ Voor 45% gewijzigd door simon op 02-03-2006 13:58 ]

|>


  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Overigens zou deze een mooie parse error moeten opleveren:
PHP:
1
$test = "<body><b>blaat</b><u>{include file="home.tpl"}</u>";

--> Geen escape characters bij je " rond home.tpl

Overigens, zoals Simon al zegt, is het niet ideaal om in Smarty nog code te gaan proppen die moet worden uitgevoerd...

[ Voor 14% gewijzigd door maartenba op 02-03-2006 15:47 ]


Verwijderd

En als je dat toch met allergeweld zo smerig wilt doen heeft smarty de eval functie daar voor bedacht. Maar eval == evil :)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

PSU_freak schreef op donderdag 02 maart 2006 @ 12:42:
Hoi,

Ik heb een probleem namelijk:

Ik heb een index.php en daar wijs ik de variabel $test toe.
PHP:
1
2
3
$test = "<body><b>blaat</b><u>{include file="home.tpl"}</u>";
$smarty->assign('GEGEVENS',$test); 
$smarty->display('home.tpl');

En in home.tpl staat het volgende:
code:
1
2
3
4
5
6
7
8
9
<html>

<head>
<title>Test</title>
</head>
<body>
{$GEGEVENS}
</body>
</html>

Maar nu krijg ik als output op die plaats gewoon te staan: {include file="home.tpl"}. Want die variabel word niet geparst. Weet iemand hoe ik dat kan doen?
Je kan fetch gebruiken. In combinatie met resource handleing van smarty

http://smarty.php.net/manual/en/api.fetch.php
http://smarty.php.net/manual/en/template.resources.php
http://smarty.php.net/manual/en/plugins.resources.php

Programmer - an organism that turns coffee into software.

Pagina: 1