smarty: html tag előtt engedélyezni, hogyan?
Üdv!
Smarty-val akadt problémám:
A html tag előtti dolgokat a smarty figyelmen kívül hagyja. A templat-et generálom, többször használandó blokkokat capture-val helyezek el benne, külső forrásból. A smarty-n belül változóként van rá szükségem és mivel a blokkok tartalmazhatnak smarty kódot, változókat, csak így lehet megoldani, tudomásom szerint.
Ez a példa nem működik:
így már jó:
Gyors megoldás, hogy a kódot átírom, generálásnál a html tag után helyezze a dolgait, de a szép az lenne, ha maradhatna előtte. Tudtok erre valami megoldást? Googlizok, de semmi releváns infót nem tudtam kicsikarni.
Előre is köszi.
■ Smarty-val akadt problémám:
A html tag előtti dolgokat a smarty figyelmen kívül hagyja. A templat-et generálom, többször használandó blokkokat capture-val helyezek el benne, külső forrásból. A smarty-n belül változóként van rá szükségem és mivel a blokkok tartalmazhatnak smarty kódot, változókat, csak így lehet megoldani, tudomásom szerint.
Ez a példa nem működik:
{capture "blok1"}blok1{/capture}
<html>
<body>
{$smarty.capture.blok1}
</body>
</html>
<html>
<body>
{$smarty.capture.blok1}
</body>
</html>
így már jó:
<html>
{capture "blok1"}blok1{/capture}
<body>
{$smarty.capture.blok1}
</body>
</html>
{capture "blok1"}blok1{/capture}
<body>
{$smarty.capture.blok1}
</body>
</html>
Gyors megoldás, hogy a kódot átírom, generálásnál a html tag után helyezze a dolgait, de a szép az lenne, ha maradhatna előtte. Tudtok erre valami megoldást? Googlizok, de semmi releváns infót nem tudtam kicsikarni.
Előre is köszi.
Infó
Nem kötekedésből, de mit akarsz rakni a <html> elé?
Azért kérdezem, mert elvileg a böngésző az az utáni résszel foglalkozik.
A másik kérdésem, ami nem feltétlen fontos, de jól jöhet, hogy melyik Smarty verziót használod?
Közben kipróbáltam, nálam megy!
Be tudod másolni a kódodat, ahol példányosítod a smarty-t és feldolgozod a template fájlodat?
nem veszem kötekedésnek :),
smarty-s változókat akarok létrehozni amiket majd később elérek saját gyártott plugin-ben.
symfony projektről van szó,
Pontosítanék, csak a <body> részen belül létrehozott változókat stb. látom.
jó:
<body>
{assign var="a" value="b"}
{$a}
</body>
</html>
rossz:
{assign var="a" value="b"}
<body>
{$a}
</body>
</html>
kimásoltam az ide vágó részeket, semmi extra beállítás nincs benne.
Nem gondolnám, hogy a smarty
body
vagyhtml
tag, mivel általános célú templatekezelő. Azaz írhatsz vele XML-t, JSON-t, vagy bármi mást, nem kell a kimenetnek HTML-nek lennie, ezért nem lehet semmilyen feltétel arra, hogy csak abody
elemben lehet. Próbáld ki, hogy mi van, ha egy XHTML-esDOCTYPE
elemet beraksz az elejére, és azután azassign
. Vagy csak aDOCTYPE
után raksz pár tucat sortörést stb.Sry, én voltam a fasz,
Már meg volt az értelme, hogy írtam ide, át néztem azt a kódrészt amihez semmi kedvem nem lett volna :)
Köszi, és bocs