Sziasztok!
Adott egy admin felület amin a felhasználók wysiwyg editorral létrehozhat html lapokat. Ezeket mysql adatbázisban tárolom el. A megfelelő helyen kiolvasom a táblából és átadom a smartynak így. $s -> assign('valami',$valami');
Olyat szeretnék megvalósítani, hogy ha a user az editorba pl ezt írja bele {reg} akkor ahova beleírta illessze be a registration.tpl fájlt. Ezt úgy gondoltam megvalósítani, hogy a {reg} szöveget egyszerűen kicserélem erre. {include file=registration.tpl}. Viszont az a gond, hogy nem az űrlapot illeszti be hanem egyszerűen a szövegként jelenik meg. Hogyan lehet rávenni, hogy beillessze az űrlapot?
- 993 megtekintés
Hozzászólások
{include file="registration.tpl"}
- A hozzászóláshoz be kell jelentkezni
Kicsit keverednek a dolgok. Az adatbazisban tarolt html "lapokban" nem lehet smarty utasitas, mert annak tartalma egy template valtozo {$valami} ertekekent jelenik majd meg a sablonban. Tehat van egy template fajlod abban lehetnek vezerlesi utasitasok, ez a template fajl megkapja egy valtozoban a db-bol a html -t, de abba mar hiaba raksz olyan utasitast amit a smartynak kene ertelmeznie, mert azt nem fogja.
Sztem egy output filter plugin megoldhatja a problemad!
Vagy meg elegansabb, hogy mielott atadod a templatenak egy valtozoban a db-bol szedett html -t a {reg} jellel, megvizsgalod, hogy tartalmazza -e jelet (if...) es ha igen, befetch-cseled registration.tpl kimenetet, es erre a kimenetre csereled le a {reg} jelet, es ezt adod at a {$valami} valtozoban.
- A hozzászóláshoz be kell jelentkezni
Köszi!
Közben Megoldódott a probléma. Úgy csináltam meg, hogy a html eredményt kitettem fájlba azonosítóval ellátva. Így minden oldalnak külön fájl jön létre. Ebbe illesztettem bele az include sort majd ezt a létrejött fájlt includoltam be és így teljesen jól működik. Ott jelenik meg az űrlap ahol szeretném.
- A hozzászóláshoz be kell jelentkezni
Saját erőforrást regisztrálsz:
http://www.smarty.net/manual/en/template.resources.php
A regisztrált erőforrásban bármit meg lehet valósítani, előzetes módosítást, aztán ezt a smarty majd lefuttatja.
$smarty->fetch('vízivíg-db:123');
aztán a kapott eredményt beteszed az editorba.
- A hozzászóláshoz be kell jelentkezni
Nézegetem amit küldtél, de nem teljesen világos, hogy ez hogyan is orvosolja az az eredeti problémát. Tehát ha az editorba beleírom a {reg} szöveget akkor tudja ezt értelmezni a smarty?
Ez nem teljesen világos: $smarty->fetch('vízivíg-db:123'
Tudnád részletezni nekem? Előre is köszi.
- A hozzászóláshoz be kell jelentkezni